分享

【微服务】164:商品微服务需要提供的接口

 刘小爱v 2020-09-23

今天是刘小爱自学Java的第164天。

感谢你的观看,谢谢你。

学习计划安排如下:

昨天分析了索引库中需要的数据格式,今天就编写并补全对应的后台业务代码。

一、搜索微服务与商品微服务

虽然说现在是在实现搜索相关的业务,但是其本质上还是对于商品的操作。

也就是说在搜索微服务中调用商品微服务中已经实现了的操作即可。。

做个简单的回顾,搜索需要的数据有两种:展示数据和过滤数据。

其中将涉及到的数据表做一个整理:

①展示数据涉及到的表

SPU信息表、SPU的详情表以及SKU信息表。

②过滤数据涉及到的表

商品分类表、品牌表以及规格参数表、

根据上述实体类我们可以判断出,搜索中需要到的数据库查询包括:

  • 分页查询SPU表。
  • 根据spuId查询sku
  • 根据spuId查询SpuDetail
  • 根据商品分类id查询商品分类
  • 规格参数的查询
  • 根据Id查询品牌

上述这些查询方式有的我们已经实现过了,有的还没有,现在做一个完整的回顾与补全。

二、商品微服务Java代码编写

对商品的相关操作是编写在商品微服务中的。

1分页查询SPU表

该业务在第151天学习笔记中有记载:

因为涉及到一个分页查询,所以service层的代码较为复杂,当时详细编写并讲解过其代码实现,在此不再赘述。

2根据spuid查询sku表

该业务是在修改商品中实现的,笔记中我并没有做说明,这里做一个代码的补全:

因为这类使用的是通用mapper,其实无外乎就是controller层和service层的代码编写。

Controller代码中确定和请求相关的内容。

Service层代码中编写具体的业务逻辑,同时调用mapper层完成数据的查询。

上述涉及到了Stream流的应用以及通用Mapper批量查询,这个我在第152天学习笔记中详细讲解过。

注意:每次查询完数据后要对结果做非空判断,如果为空要抛出异常,这是个好习惯。

3根据spuId查询SpuDetail

spuId本身就是spuDetail表的主键,所以该业务实现起来也就非常的简单了。

直接使用通用mapper中的主键查询即可。

4根据商品分类id查询商品分类

这些在第152天学习笔记中学习通用mapper批量查询和stream流的时候就是写的根据多个id批量查询商品分类。

只不过当时只是编写了service层代码,并没有写controller层的代码,现在将其补全。

5根据id查询品牌

这个和第④点一样,在第152天学习笔记中有说明,当时是实现商品的分页时编写了其对应的业务逻辑。

当然该业务非常简单,重写一遍问题也不大。

6规格参数的查询

第154天学习笔记中也有涉及到对规格参数的说明。

emm感觉今天没学啥,全都用来回顾以前所实现的业务了,因为我的学习进度拉扯的太长。

比如分页查询Spu都是两个星期前实现的了,很多都忘记了,所以今天算是做了一个回顾与整理。

后续写搜索相关的业务时,也好用今天整合的做一个对应。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多