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

商品上架

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

请求参数

POST /product/spuinfo/{spuId}/up

响应数据

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

ES数据模型

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

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

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

Elasticsearch Nested类型

转换成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

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;
	*                 }
	*             }
	*/

Spring Cloud Feign设计原理

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值