【Lilishop商城】No3-3.模块详细设计,会员信息(会员基本信息)、店铺设置(店铺信息、配送模板)的详细设计

news2025/1/9 16:28:33

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

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


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

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

目录

A1.会员信息

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

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

A2.店铺信息

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

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

B3.B端(属于显式操作)

A3.配送模板

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


A1.会员基本信息

由于店铺是通过会员创建的,所以这里先把会员的基本信息接口设计出来。与会员相关的收货地址、钱包等信息放到会员模块详细设计~

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

运营M端可以查看所有会员信息,也可以新增会员账号。同时还可以查看会员的订单、积分等信息,方便运营。这些小的模块的查看接口可不是在这里哦,所以就放到对应模块开发时说明了,例如积分就都放到积分模块说明。

注意哦,下面强调一下业务逻辑,在某些业务操作,例如新增用户时,不仅会创建用户信息,还会给该用进行一些额外的操作,比如增加注册积分、初始化钱包、增加注册活动优惠券等等,这些逻辑的实现如果直接放到业务代码中耦合度会增加的!所以shop项目中是使用了 Spring事件发布与监听,当用户增加完成就发布后面的事件~而事件监听类中也没有直接实现逻辑,而是封装成消息交给了RocketMQ去处理,我想这样将小业务交出去,更能提高系统性能。所以这样的逻辑就放到后面文章中解析哦~

所以会员模块的接口只有增查改删。

  • 会员分页列表、通过ID获取会员信息、添加会员、修改会员基本信息、修改会员状态,开启关闭会员、根据条件查询会员总数

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

买方B端的会员信息,基本的就是注册、登录、注销、获取当前用户信息、修改用户信息、修改密码,这里先说基本的用户名登录

  • 登录接口 、注销接口、注册用户、修改密码、获取当前登录用户接口、修改用户自己资料

A2.店铺信息

店铺信息可以是运营M端新增,也可以是买方B端的会员自己申请的,店铺信息包含基础信息和经营信息,店铺入驻后可以修改基本信息,而经营信息只能由运营M端申请。

PS:正常来说,店铺的营业信息应该每年检查,shop项目里面没有相关的业务逻辑。

注意:店铺S端的店主/店员也是买方B端的会员~

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

M端就包含增查改,一般来说不会有删除操作,店铺异常直接关闭即可。

跟平台店铺相关的在 li_store 表,跟店铺经营信息相关的在 li_store_detail 表里~

  • 获取店铺分页列表、获取店铺详情、添加店铺、编辑店铺、审核店铺申请、关闭店铺、开启店铺、根据会员id查询店铺信息

 

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

店铺S端能够修改自己的店铺信息。

而且这里将店铺信息的修改拆分为了多个接口。

  • 获取店铺基本信息、获取店铺退货收件地址、获取店铺发货地址、修改店铺基本信置、修改店铺库存预警数量、修改商家退货收件地址、修改商家发货地址、修改客服设置

B3.B端(属于显式操作)

买方B端会员登录之后就可以申请店铺入驻,这里也是调用了多个接口进行保存。并且如果审核不通过,还要在这里继续申请提交的,所以有获取某会员店铺信息的接口。

咱们这里只先说B端会员后台的接口,也就是只有申请入驻相关接口,B端前台显示的接口在后面说~

  • 获取当前登录会员的店铺信息-入驻店铺、申请店铺第一步-填写企业信息、申请店铺第二步-填写银行信息、申请店铺第三步-填写其他信息

获取当前登录会员的店铺信息-入驻店铺接口里面包含店铺状态,所以这个接口既可以判断会员是否有入驻店铺,也可以判断现在店铺是什么状态。

A3.配送模板

配送模板完全是由店铺S端管理,发布商品(实物)时就会关联一个配送模板,然后B端会员下单商品时会根据商品关联的配送模板来判断是否配送,和配送邮费~

一个配送模板有包邮、按件计费、按重量计费,包邮的是全地区包邮,按件计费、按重量计费是可选择地区进行配置,可配置多个。

这里的地区是从行政区划里面选取的 li_region,保存时只需要保存地区id,逗号","隔开

PS:这样的话,如果某个模板只想要河北包邮,其余地方按件计费就需要配置两个地区~

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

  •  商家运费模板列表、获取商家运费模板详情、添加商家运费模板、修改商家运费模板、删除商家运费模板

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

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

相关文章

Briefings in Bioinformatics2021 | 从头药物设计的深度生成模型的综合性评估

论文标题:Comprehensive assessment of deep generative architectures for de novo drug design 论文地址:Comprehensive assessment of deep generative architectures for de novo drug design | Briefings in Bioinformatics | Oxford Academic 一…

JMeter的三种参数化方式

一、 用户定义的变量 1.线程组-配置元件添加用户定义的变量 2.引用变量 ${变量} 二、 csv Data Set config (1)csv Data Set config之.CSV 1.造.csv格式文件的数据 2.设置CSV数据文件 3.消息体数据,引用变量名.{变量名} 4.设置线程组&…

关于Elasticsearch查询(match、match_phrase、query_string和term)

由上图看出, QueryBuilder 是整个查询操作的核心,决定了查询什么样的数据和期望得到什么结果这些核心的问题。 QueryBuilder 只是一个接口,需要具体的实体类才可以。那么如何创建 QueryBuilder 的实例呢?有两种方式 通过 QueryB…

AOP开发明确的的事项

12.2. AOP开发明确的的事项 12.2.1、需要编写的内容 编写核心业务代码(目标类的目标方法) 编写切面类,切面类中有通知(增强功能方法) 在配置文件中,配置织入关系,即将哪些通知与哪些连接点进行结合 12.2.2、AOP 技…

什么是MinIO

本文为joshua317原创文章,转载请注明:转载自joshua317博客 什么是MinIO - joshua317的博客 什么是MinIO? MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。 MinIO提…

容灾演练月报 | 福莱特集团核心系统完成“跨云”容灾切换演练

11月,美创科技携手福莱特集团、金华银行、稠州银行、慈溪市卫健委及医疗行业等总计19家用户完成容灾切换演练,其中完成2次灾难切换,有效验证了各用户单位容灾系统的可靠性及高可用性! 本月典型案例:福莱特集团 福莱特集…

CANoe.DiVa简单配置

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

RK3588核心板显示资源分配实操竟如此简单!飞凌嵌入式

前言 眼睛作为人类最重要的感觉器官,通过“视觉”帮助我们接收了大部分的外界信息,“视觉效果的好坏”直接影响着我们日常生产和生活质量的高低,因此“显示能力”成为了评价产品优劣的一项重要指标。在影音、游戏、智慧办公、工业自动化和交通…

OpenAI ChatGPT微信接入教程

OpenAI ChatGPT微信接入教程 OpenAI ChatGPT 接入 个人WeChat(微信),让AI互动更方便! 准备工作 Ⅰ,OpenAI 账号,参考ChatGPT注册试用全攻略 Ⅱ,微信账号(需要绑定支付方式,需支持网页登录&am…

JVM篇之牛刀小试(三)年轻代参数优化探索

前言 在JVM 篇之 牛刀小试 (一)我们谈到了关于年轻代参数的问题,就是当我没有设置-Xmn的时候,gc时间居然比我设置了500m的时候,时间还短,然后当时我就停止了探索。 后来我在公司飞书文档写了一篇文章分享&…

Java的注解和注解解析器是什么,运行方法如何,架构师必会知识体系

文章目录什么是[元数据](https://so.csdn.net/so/search?q元数据&spm1001.2101.3001.7020)(metadata)什么是注解(Annotation)?元注解自定义注解注解处理器什么是元数据(metadata) ​ 元数据由metadata译来,所谓的元数据就是“关于数据的数据”,更通俗的说就是…

网络篇汇总

路由器:属于网关设备,通过路由器可以将各种局域网、城域网、广域网连接起来,一般工作于网络层。它会根据信号的情况自动选择和设定路由,以最佳路径,按照前后顺序发送信号。路由器可连接多个逻辑上分开的网络&#xff0…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java随骑共享系统m7i8o

要对当前自己的学校对于计算机毕业设计的要求以及严格程度有所了解,这个主要是借助上一届已经毕业的学长学姐了解一下,但是有一点要注意的是,对于每一届毕业生的毕业设计的处理,学校都有很大的调整,这一点尤其重要。其…

静态HTML个人博客主页 简单个人网页设计作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

力扣(LeetCode)139. 单词拆分(C++)

字符串哈希&动态规划 一眼暴力,发现根本做不了,想着想着,发现 dpdpdp 很好想,来试试。 枚举字符串 sss 的所有位置作为起始点,如图状态转移。 规定 : f[0]f[0]f[0] 表示空字符的集合,可以用空串组成…

【数据结构与算法】模拟实现LinkedList类

文章目录LinkedList简介头插法创建链表尾插法创建链表任意位置插入,第一个数据节点为0号下标查找是否包含关键字key是否在链表当中删除第一次出现关键字为key的节点删除所有值为key的节点得到链表的长度打印链表清空链表完整代码:总结:LinkedList简介 Java LinkedLi…

SAP PS 第6节 项目产成品产出

SAP PS 第6节 项目产成品产出及差异处理1 模拟场景说明1.1 拖拽负库存1.2 发料原材料及报工1.3 执行副产品入库migo发预留1.4 CNS0交货1.5 后面开票产生收入按照项目结算即可项目上有一类比较另类的玩法,就是舍弃PP,依靠网络活动的负库存,实现…

Android Edittext密码类型显示字符串修改实现

Android Edittext密码类型显示字符串修改实现 文章目录Android Edittext密码类型显示字符串修改实现一、前言:二、效果三、实现1、系统级设置2、应用级设置3、单个EditText设置(1)自定义显示符合类(2)EditText使用自定…

认识一下 Kubernetes 多集群服务 API

由于各种原因,采用 Kubernetes 的企业内部存在着几个、几十甚至上百个集群。比如处于研发流程上的考虑,不同环境下都存在独立的集群;监管层面的考虑,就地存储的用户数据需要搭配应用集群;单个集群的容量限制&#xff0…

(四)Redis的持久化

一 什么是redis持久化 因为Redis数据是基于内存读写,为防止Redis服务器关闭或者宕机造成数据的丢失,我们通常需要对redis做持久化,即:把内存中的数据(命令)保存一份到磁盘中来做一份备份,当redis服务关闭或宕机后,在Redis服务器重启后将数据从磁盘加载到内存中,不至于造成数据…