谷粒商城微服务分布式高级篇ElasticSearch五——商城业务-商品上架

商品上架

后台管理员对spu审核进行操作,点击上架。只有当商品上架才应该被检索,即需要导入商品数据到ES中。

请求参数

POST /product/spuinfo/{spuId}/up

   
   
  • 1

响应数据

{
	"msg": "success",
	"code": 0
}

   
   
  • 1
  • 2
  • 3
  • 4

ES数据模型

搜索栏、分类进行搜索
在这里插入图片描述
效果页面
在这里插入图片描述
要考虑三个点:

1、哪些需要分词
2、哪些词需要过滤
3、需要显示哪些字段

所以设计为商城ES数据模型

Elasticsearch Nested类型

转换成Java类

/**
 * @description: 商品传输ES数据模型
 * @author: DAIHAO
 * @created: 2020/05/13 21:14
 */
@Data
public class SkuEsModel {
<span class="token comment">//商品ID</span>
<span class="token keyword">private</span> Long spuId<span class="token punctuation">;</span>
<span class="token comment">//sku_id</span>
<span class="token keyword">private</span> Long skuId<span class="token punctuation">;</span>
<span class="token comment">//标题</span>
<span class="token keyword">private</span> String skuTitle<span class="token punctuation">;</span>
<span class="token comment">//价格</span>
<span class="token keyword">private</span> BigDecimal skuPrice<span class="token punctuation">;</span>
<span class="token comment">//图片</span>
<span class="token keyword">private</span> String skuImg<span class="token punctuation">;</span>
<span class="token comment">//销售量</span>
<span class="token keyword">private</span> Long saleCount<span class="token punctuation">;</span>
<span class="token comment">//是否还有库存</span>
<span class="token keyword">private</span> Boolean hasStock<span class="token punctuation">;</span>
<span class="token comment">//热度评分</span>
<span class="token keyword">private</span> Long hotScore<span class="token punctuation">;</span>
<span class="token comment">//品牌ID</span>
<span class="token keyword">private</span> Long brandId<span class="token punctuation">;</span>
<span class="token comment">//品牌名</span>
<span class="token keyword">private</span> String brandName<span class="token punctuation">;</span>
<span class="token comment">//品牌图片</span>
<span class="token keyword">private</span> String brandImg<span class="token punctuation">;</span>
<span class="token comment">//分类ID</span>
<span class="token keyword">private</span> Long catalogId<span class="token punctuation">;</span>
<span class="token comment">//分类名</span>
<span class="token keyword">private</span> String catalogName<span class="token punctuation">;</span>
<span class="token comment">//属性</span>
<span class="token keyword">private</span> List<span class="token generics function"><span class="token punctuation">&lt;</span>Attrs<span class="token punctuation">&gt;</span></span> attrs<span class="token punctuation">;</span>

<span class="token annotation punctuation">@Data</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">class</span> <span class="token class-name">Attrs</span> <span class="token punctuation">{</span>
	<span class="token comment">//属性ID</span>
	<span class="token keyword">private</span> Long attrId<span class="token punctuation">;</span>
	<span class="token comment">//属性名</span>
	<span class="token keyword">private</span> String attrName<span class="token punctuation">;</span>
	<span class="token comment">//属性值</span>
	<span class="token keyword">private</span> String attrValues<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

上架流程

在这里插入图片描述

mybatis之foreach用法

<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT *
  FROM POST P
  WHERE ID in
  <foreach item="item" index="index" collection="list"
      open="(" separator="," close=")">
        #{item}
  </foreach>
</select>

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

foreach 元素的功能是非常强大的,它允许你指定一个集合,声明可以用在元素体内的集合项和索引变量。它也允许你指定开闭匹配的字符串以及在迭代中间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。

注意 你可以将一个 List 实例或者数组作为参数对象传给 MyBatis,当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中并以名称为键。List 实例将会以"list"作为键,而数组实例的键将是"array"。

TypeReference

Java中TypeReference用法说明

Feign调用流程

伪代码

	/**
	*1 、构造请求数据,将对象转为json;
	* RequestTemplate template = buildTemplateFromArgs.create(argv);
	* 2、发送请求进行执行(执行成功会解码响应数据)
	* executeAndDecode(template);
	* veregnjava
	* 3、执行请求会有重试机制 默认请求5次
	* 伪代码:   while (true) {
	*                 try {
	*                     executeAndDecode(template);
	*                 } catch () {
	*                     try {
	*                         retryer.continueOrPropagate(e);
	*                     } catch () {
	*                         throw ex;
	*                     }
	*                     continue;
	*                 }
	*             }
	*/

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

Spring Cloud Feign设计原理

                                </div><div><div></div></div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值