【Lilishop商城】No3-5.模块详细设计,商品模块-1(商品分类、品牌管理、规格管理、参数、计量单位、店铺分类)的详细设计

  仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在:

【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客


全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码分析,读起来也不复杂~

谨慎:源代码中有一些注释是错误的,有的注释意思完全相反,有的注释对不上号,我在阅读过程中就顺手更新了,并且在我不会的地方添加了新的注释,所以在读源代码过程中一定要谨慎啊!

 

目录

A1.计量单位

B1.M端(属于显式操作) 

B2.S端(属于显式操作)  

A2.品牌管理

B1.M端(属于显式操作)  

A3.规格管理

B1.M端(属于显式操作)  

B2.S端(属于显式操作)  

A4.参数(强属于商品分类)

B1.M端(属于显式操作)  

 C1.商品分类参数组的接口

 C2.商品分类参数组里面的参数的接口

B2.S端(属于显式操作)  

A5.商品分类

B1.M端(属于显式操作)  

C1.商品分类接口

C2.商品分类-品牌接口

C3.商品分类-规格接口

C4.商品分类-参数接口

B2.S端(属于显式操作) 

C1.商品分类接口(里面包含了查询所关联品牌接口)

C2.商品分类-规格接口

C3.商品分类-参数组接口

A6.店铺分类

B1.S端(属于显式操作)  


商品信息的管理主要在店铺S端,商品关联的附属信息例如商品分类等是由运营M端和店铺S端共同管理的,买方B端主要是查看、下单会用到,所以本篇不包含B端的查看接口,买方B端前台的接口回单开一篇文章说明的。【但是购物车、下单这些会跟随地订单一起说明的~】

开始前先说一下这几个模块之间的关联:

1.规格和商品分类里面的参数,虽然跟商品分类强关联,但是由于跟商品是弱关联(规格直接转化成json保存到goods_sku里面,参数转化成json保存到goods里面),所以他们的修改不影响分类和商品;计量单位也是,直接保存值到goods里面;

2.品牌直接与商品关联,并且还与商品分类关联,商品和商品分类又是直接对展示操作,所以删除/禁用品牌需要判断是否有关联的商品与分类,删除商品分类需要判断是呦呦关联的商品(禁用之所以不影响是因为禁不禁用不影响前端查看,到时候商品再重新选择罢了)

3.商品的相关联信息,例如图册、sku等等,都是依附于商品,并且不会单独修改。

 接下来先从关联最小的模块说起~~~商品放到下一篇~~~

A1.计量单位

这个没啥好说的,就是计量单位的增查改删,而且商品选择时直接保存的文本内容不是id(没有必要绑定id,因为不需要那么强的绑定关系)

B1.M端(属于显式操作) 

  • 分页获取商品计量单位、获取商品计量单位、添加商品计量单位、编辑商品计量单位、删除商品计量单位

 

B2.S端(属于显式操作)  

只在发布商品页面获取单位列表,这里后端用了分页,但是前端没有进行分页或懒加载,所以前端还是获取的所有~

  • 分页获取商品计量单位

A2.品牌管理

运营M端管理品牌,然后将品牌绑定到商品分类里面。店铺S端发布商品时先选择商品分类,然后再获取该商品分类绑定的品牌,进行选择绑定。所以品牌是通过商品分类绑定到商品上面的。

品牌和商品分类的这一块的操作在商品分类(见商品分类)。

删除/禁用品牌需要判断是否有关联的商品与分类~~~这个放在代码开发中

B1.M端(属于显式操作)  

运营M端管理品牌

  •  通过id获取品牌详情、获取所有未禁用品牌、分页获取、新增品牌、更新数据、后台启用/禁用品牌、批量删除

获取所有未禁用品牌用于商品分类页面调用 

  

   

B2.S端(此端不需要接口)  

S端本身就是根据商品分类获取的品牌,所以未提供专门的controller,并且把这个接口放到了商品分类里面(见商品分类S端)

  

 

A3.规格管理

之前也说了规格与商品的联系,是可选择商品分类里面的规格的。而且,发布商品时的规格是可以自定义的,也就是说这里的规格就是个方便快捷的选择,自然不用与商品强关联。

规格和商品分类的这一块的操作在商品分类(见商品分类)。

B1.M端(属于显式操作)  

规则值使用逗号分割更方便。

  • 获取所有可用规格、分页搜索规格、保存规格、更改规格、批量删除

获取所有可用规格用于商品分类页面调用 

  

B2.S端(属于显式操作)  

S端的只会在发布商品页面查看

  • 根据categoryId获取分类规格

   

A4.参数(强属于商品分类)

之前也提过了,商品分类与参数、规格、品牌关联,现在还差一个参数。

参数模块由参数组和参数组成,一个商品分类可以添加多个参数组;数据表见:li_category_parameter_group、li_parameters【这两个表的名字都放不到一起去,很难关联想像】

B1.M端(属于显式操作)  

 C1.商品分类参数组的接口

  • 查询某分类下绑定的参数组信息、保存参数组数据、更新参数组数据、通过id删除参数组

 

 C2.商品分类参数组里面的参数的接口

  • 添加参数、编辑参数、通过id删除参数 

但是要注意哦,代码里有bug, 参数里面应该有个参数类型,用来标注该参数是可选择的还是手动填写的,数据库表里面也有,但是实体类里面却没有这个字段,所以最终保存时这个参数就是null,如果想要恢复使用可自行添加

    

   

B2.S端(属于显式操作)  

S端也是根据商品分类获取的,并且只能编辑参数值,不能自定义参数项。

S端的只会在发布商品页面查看。

  • 查询某分类下绑定的参数信息  

A5.商品分类

商品分类与参数、规格、品牌关联,并且关联操作与分类的增查改删是分开的,所以商品分类单独的controller接口,其余的关联有自己的controller接口

B1.M端(属于显式操作)  

C1.商品分类接口

  • 查询某分类下的全部子分类列表、添加商品分类、修改商品分类、通过id删除分类、后台 禁用/启用 分类

   

C2.商品分类-品牌接口

  • 查询某分类下绑定的品牌信息、保存某分类下绑定的品牌信息

   

C3.商品分类-规格接口

  • 查询某分类下绑定的规格信息、保存某分类下绑定的规格信息

   

C4.商品分类-参数接口

就是A4.里面的参数接口~

  

B2.S端(属于显式操作) 

C1.商品分类接口(里面包含了查询所关联品牌接口)

店铺S端发布商品时先获取商品分类,这个商品分类时注册时选择的经营分类里面的,不是平台所有的哦~ 

  • 获取店铺经营的分类、获取所选分类关联的品牌信息

  

C2.商品分类-规格接口

  • 查询某分类下绑定的规格信息

   

C3.商品分类-参数组接口

  • 查询某分类下绑定的参数信息

  

A6.店铺分类

店铺分类时只属于店铺管理的,用于在B端前台店铺主页展示,这个就很简单了。是按照层级分类。

在业务逻辑上来说,发布商品时可以绑定店铺分类,而删除店铺分类时,绑定他的商品不会有影响,因为在任意端不会影响查看~所以不会强关联影响~~~

B1.S端(属于显式操作)  

  • 获取当前店铺商品分类列表、获取店铺商品分类详情、添加店铺商品分类、修改店铺商品分类、删除店铺商品分类

   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值