商品上架
后台管理员对spu审核进行操作,点击上架。只有当商品上架才应该被检索,即需要导入商品数据到ES中。
请求参数
POST /product/spuinfo/{spuId}/up
- 1
响应数据
{
"msg": "success",
"code": 0
}
- 1
- 2
- 3
- 4
ES数据模型
搜索栏、分类进行搜索
效果页面
要考虑三个点:
1、哪些需要分词
2、哪些词需要过滤
3、需要显示哪些字段
所以设计为商城ES数据模型
转换成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"><</span>Attrs<span class="token punctuation">></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
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
</div><div><div></div></div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
</div>