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

news2024/11/15 13:41:55

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

【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端(属于显式操作)  

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

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人脸特征点检测入门

基础 人脸特征点可以用来做脸型、眼睛形状、鼻子形状等分析,从而对人脸的特定位置进行修饰加工,实现人脸的特效美颜。人脸识别等算法可以通过对人脸的姿态进行对齐从而提高模型的精度。 68点标注是现今最通用的一种标注方案,早期在1999年的…

Effective C++条款30:透彻了解inlining的里里外外(Understand the ins and outs of inlining)

Effective C条款30:透彻了解inlining的里里外外(Understand the ins and outs of inlining)条款30:透彻了解inlining的里里外外1、inline函数的优缺点2、隐式内联和显式内联2.1 隐式内联2.2 显式内联3、函数模板必须inline么&…

自动驾驶之3D点云聚类算法调研

1. 方法 总共分为4类 基于欧式距离的聚类Supervoxel 聚类深度(Depth) 聚类Scanline Run 聚类 1.1 基于欧氏距离的聚类 思路: 在点云上构造kd-tree, 然后在某个半径阈值(例如0.5m), 则分割为一个实例。 相似算法: RBNN (radially bounded nearest neighbor graph), 2008. …

在 Ubuntu 上安装 Discourse 开发环境

本指南只针对 Discourse 开发环境的配置,如果你需要在生产环境中安装 Discourse ,请访问页面:Install Discourse in production with the official, supported instructions - sysadmin - Discourse Meta 中的内容。 有关开发环境的设置英文原…

[Java EE初阶] 进程调度的基本过程

纪念Java EE初阶开篇文章,不放弃,不摆烂,踏平所有障碍吧!少年!奥利给!(操作系统这方面的所有文章均不作为操作系统的专业课知识学习) 文章目录1. 进程的概念2. PCB --- 进程控制块3. 并发与并行4. 进程调度的相关属性5. 内存管理总结1. 进程的概念 进程,就是跑起来的程序,我们…

【学习笔记】《Python深度学习》第七章:高级的深度学习最佳实践

文章目录1 Keras 函数式 API1.1 函数式 API 简介1.2 多输入模型1.3 多输出模型1.4 层组成的有向无环图1.5 共享层权重1.6 将模型作为层2 使用 Keras 回调函数 和 TensorBoard 检查并监控深度学习模型2.1 训练过程中将回调函数作用于模型2.2 TensorBoard 简介:Tensor…

【Lilishop商城】No3-4.模块详细设计,店铺店员(店铺店员、店铺部门、店铺角色)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码…

exfat文件系统

DBR: DBR偏移量 字段长度(字节) 说明 0x40 - 0x47 8 分区的起始扇区号(隐藏扇区数) 0x48 - 0x4F 8 分区总扇区数 0x50 - 0x53 4 FAT表起始扇区号(从DBR到FAT表的扇区个数) 0x54 - 0x57 4…

【Redis】持久化操作

一、RDB(Redis Database) 1、持久化 redis一般是将数据写到内存中,但也可以将数据写到磁盘中,这个过程称之为持久化 2、什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘中 3、RDB是如何执行备份操作的 redis会单独创建(fork)一个子进程进行…

FPGA 20个例程篇:18.SD卡存放音频WAV播放(下)

第七章 实战项目提升,完善简历 18.SD卡存放音频WAV播放(下) 进一步地我们再结合图1的示意图来分析wav_play模块的时序逻辑设计,大家可以清楚地看到WM8731在Right justified和主从时钟模式下,是先发左声道后发右声道数…

【LeetCode】专题一 二叉树层序遍历

二叉树层序遍历 在本文中,我将会选取LeetCode上二叉树层序遍历的多道例题,并给出解答,通过多道题我们就可以发现,二叉树的层序遍历并不复杂,并且有着共通点。 102. 二叉树的层序遍历 给你二叉树的根节点 root &…

【Labivew】简易计算器

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

Secure CRT远程连接很快断线问题

问题描述 我们使用Secure CRT连接远程主机时可能会遇到几分钟没操作就无法操作了,需要断开重新连接,非常的麻烦,假如客户端或者服务端能够在快要超时的时候给对方发送一个心跳,得到对方响应就重置下超时时间,这样就能…

arm架构 --- 中断

ARM的异常 终止程序的正常执行过程而不得不去完成的一些特殊工作 中断是异常的一种,包括外部硬件产生的异常和芯片内部硬件产生的内部中断。 ARM有七种处理器模式,其中用户模式和系统模式之外的5钟处理器模式叫做异常模式,用户模式之外的6…

osgEarth示例分析——osgearth_terrainprofile

前言 osgearth_terrainprofile示例,涉及到一个新的类 TerrainProfileCalculator(地形轮廓计算器类),用来计算两个点连线之间的地形数据。左下角会根据点击的起点和终点进行计算,并更新显示地形信息。 效果 拖动地球,到某一个视…

[附源码]Python计算机毕业设计SSM基于的智慧校园安防综合管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

软件安全测试-Web安全测试详解-XSS攻击

目录 1. XSS攻击 1.1 XSS攻击原理 1.2 XSS能做什么 1.3 XSS三种类型 1.4 XSS三种途径 1.5 XSS测试方法 1.5.1 查看代码 1.5.2 准备测试脚本 1.5.3 自动化测试XSS漏洞 1.5.4 XSS注入常用语句 1.6 XSS漏洞防范h3 1.6.1 对输入和URL参数进行过滤(白名单和黑名单) 1.6.…

tensorflow入门(一) 计算图、张量、会话的概念

1、计算图 计算图是tensorflow中最基本的一个概念,tensorflow中的所有计算都被转化成计算图上的节点。tensorflow的名字已经说明了它最重要的两个概念------tensor和flow。张量这个概念在数学或者物理学中可以有不同的解释,在tensorflow中,张…

基于tensorflow的深层神经网络(三)如何用tensorflow优化神经网络

1、神经网络优化算法 梯度下降算法主要用户优化单个参数的取值,而反向传播算法给出了一个高效的方式在所有参数上使用梯度下降算法,从而使神经网络模型在训练数据上的损失函数尽可能小。反向传播算法是训练神经网络的核心算法,它可以根据定义…

红黑树的插入过程

一棵红黑树是一种特殊的二叉查找树,具有以下性质: 每个节点要么是红色,要么是黑色。根节点是黑色。每个叶子节点(NIL)是黑色。如果一个节点是红色的,那么它的两个儿子都是黑色的。从任意一个节点到其每个叶…