谷粒商城微服务分布式高级篇ElasticSearch五——商城业务-商品上架
文章目录商品上架ES数据模型商品上架后台管理员对spu审核进行操作,点击上架。只有当商品上架才应该被检索,即需要导入商品数据到ES中。请求参数POST /product/spuinfo/{spuId}/up响应数据{"msg": "success","code": 0}ES数据模型搜索栏、分类进行搜索效果页面需要考虑三个点:1、哪些需要分词2、哪些词需要过滤3、需要显示哪些字段商品标题需要分词;平
·
商品上架
后台管理员对spu审核进行操作,点击上架。只有当商品上架才应该被检索,即需要导入商品数据到ES中。
请求参数
POST /product/spuinfo/{spuId}/up
响应数据
{
"msg": "success",
"code": 0
}
ES数据模型
搜索栏、分类进行搜索
效果页面
要考虑三个点:
1、哪些需要分词
2、哪些词需要过滤
3、需要显示哪些字段
所以设计为商城ES数据模型
转换成Java类
/**
* @description: 商品传输ES数据模型
* @author: DAIHAO
* @created: 2020/05/13 21:14
*/
@Data
public class SkuEsModel {
//商品ID
private Long spuId;
//sku_id
private Long skuId;
//标题
private String skuTitle;
//价格
private BigDecimal skuPrice;
//图片
private String skuImg;
//销售量
private Long saleCount;
//是否还有库存
private Boolean hasStock;
//热度评分
private Long hotScore;
//品牌ID
private Long brandId;
//品牌名
private String brandName;
//品牌图片
private String brandImg;
//分类ID
private Long catalogId;
//分类名
private String catalogName;
//属性
private List<Attrs> attrs;
@Data
public static class Attrs {
//属性ID
private Long attrId;
//属性名
private String attrName;
//属性值
private String attrValues;
}
}
上架流程
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>
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;
* }
* }
*/
更多推荐
所有评论(0)