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

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


首先先看一下项目的开发架构,都需要哪些技术,都按照哪些规范,都哪些模块涉及哪些架构。然后看一下数据库间的关联,确定数据结构。

目录

A1.项目结构

B1.代码架构

C1.framework:架构/ 核心代码

C2.common-api:基础API

C3.buyer-api :买家API、manager-api:管理端API、seller-api:店铺API

C4.consumer 消费者,消费mq,定时任务延时任务

C5.xxl-job:定时器

A2.数据结构

B1.运营用户模块

B2.运营的系统配置

B3.店铺的设置

B4.店铺店员

B5.会员信息

B6.商品

B7.订单

B8.促销

B9.消息

遇到的坎儿:

1.用户认证授权逻辑


A1.项目结构

项目README里面写清楚了后台技术选型如下

说明 框架 说明 框架
基础框架 Spring Boot MVC框架 Spring MVC
持久框架 Mybatis-Plus 程序构建 Maven
关系型数据库 MySQL 消息中间件AMQP RocketMQ
缓存 Redis +MongoDB 搜索引擎 Elasticsearch
安全框架 Spring Security 数据库连接池 Druid
数据库分库分表 sharding 定时任务 xxl-job
负载均衡 Nginx 静态资源 阿里云OSS
短信 阿里云短信 认证 JWT
日志处理 Log4j 接口规范 RESTful

开发规范和架构文档也都给出来了,也挺详细的

后端开发规范 · GitBook

接下来我就重点根据代码写一下代码架构,先搞清楚里面的逻辑,这样才好理解最终的数据结构~

B1.代码架构

官方文档中代码架构如下,就是介绍了主目录

framework:架构/ 核心代码

common-api:基础API

buyer-api :买家API

manager-api:管理端API

seller-api:店铺API

consumer 消费者,消费mq,定时任务延时任务

xxl-job:定时器

admin:springboot-admin 运行监控,管理和监控SpringBoot应用程序

config:整个项目的config包下配置文件,优先级最高

DB:数据库文件

C1.framework:架构/ 核心代码

这里重点就是 module 包,里面按照模块划分了三端的所有的业务逻辑。

C2.common-api:基础API

是基础公共接口的项目,不是依赖包,是单独的项目

C3.buyer-api :买家API、manager-api:管理端API、seller-api:店铺API

这三个端的后端接口都是一样的

C4.consumer 消费者,消费mq,定时任务延时任务

根据后续业务进行

C5.xxl-job:定时器

jar包运行

A2.数据结构

先看主流程关联的内容,其余的后面慢慢填补~

1.白色底纹:两表的关联表

2.绿色底纹:业务表

3.蓝色底纹:重复的表

B1.运营用户模块

这一块没啥好说的,就是普遍的 RBAC 结构。

说明一点,这里一个管理用户只对应一个部门~

B2.运营的系统配置

1.配置表里面是一些系统配置,有一个字符类型的唯一标识,和对应json类型的value

2.行政区划表是按照高德地图的规范来的,可以看:行政区域查询-API文档-开发指南-Web服务 API | 高德地图API

3.物流公司里面有个电子面单表单,可暂时忽略,系统中也没说明;

B3.店铺的设置

店铺这儿没啥好说的,就是店铺会关联一个店主(就是一个会员)

B4.店铺店员

会员与店铺之间的关联,就靠店员表,一个会员只能加入一个店铺,无论他是店主还是店员。

剩下的角色、部门、菜单就与运营用户模块一样了

B5.会员信息

这里需要注意一点,用户积分直接存到了会员表里面,会在新表里记录积分更改历史;

而余额信息是单独存的表,因为涉及到资金冻结等操作,同时也会在新表里记录余额更改历史;

B6.商品

商品这里有挺多东西的,要注意分清哪些是运营管理的,哪些是店铺使用的;

最重要的就是商品表和商品sku表;

说明一下,商品分为虚拟的和实物的,虚拟的不需要物流;

实物商品又分为批发的和零售的,这一块逻辑要分清楚哦,批发的sku部分属性是按照批发类型走的

B7.订单

订单这里三类表:交易表、订单表、子订单表;

一次付款生成一份交易单:包括本次付款的所有商品;

一份交易单根据店铺分为多个订单:每份订单包含本次交易下的一个店铺下的所有商品;

一份订单根据商品分为多个子订单:每份子订单包含当前订单下的一个商品;

售后是针对与一个子订单和商品sku的,不是针对于订单的;

投诉和评价是针对于商品sku的,不是针对于订单、子订单的哦

B8.促销

由于促销大部分都是围绕着商品来的,每类活动也大多相似,所以可以将活动的相似属性设置为一致的。我看后端代码结构也是这样的,会抽象出活动相似的东西,来实现~

这里要清楚每类促销的属性,否则就很容易缺少字段或者缺少关联,后期补充很麻烦的~

积分商品:一个活动对应一个商品                                (运营发布)
优惠券    :一个活动对应多个商品/多个商品分类        (运营、店铺发布)
券活动    :一个活动对应多个优惠券                           (运营、店铺发布)
满额活动:一个活动对应多个商品                                (店铺发布)
拼团        :一个活动对应多个商品                                (店铺发布)
秒杀        :一个活动对应多个商品                                (系统发布、店铺添加商品)
砍价        :一个活动对应一个商品                                (运营发布)

所以根据上面可以再添加一个促销活动商品表,来记录某个活动的关联商品;

B9.消息

系统消息模板就是类似系统发布的,例如商品审核不通过、订单取消;

消息就是指运营发布的站内信,指定发给某些会员或者某些店铺;

原来我看的的消息机构,就一张表,里面包含接收人和发送人,这样的话单独查询的系统发布的站内信时就需要转化一下。分为两张表后,可以先保存发送信息,然后通过rocketMQ发送接受的信息~这样更清晰


遇到的坎儿:

1.用户认证授权逻辑

一开始没搞清楚,安全认证这里他用的是 WebSecurityConfigurerAdapter、BasicAuthenticationFilter,BasicAuthenticationFilter之前没用过,网上搜也没看到相关信息,打断点也没找到,由于这个类也是security的,于是就把WebSecurityConfigurerAdapter的又了解了一遍深入理解 WebSecurityConfigurerAdapter【源码篇】__江南一点雨的博客-CSDN博客

【Lilishop商城】No2-1.确定项目结构和数据结构(用户、商品、订单、促销等模块)相关推荐

  1. Java04-day04【IDEA(概述、启动配置、项目结构、内容辅助键、快捷键、模块操作)、数组(定义详解、动态初始化、访问)、内存分配、数组内存图】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  2. JAVA项目实战开发电商项目案例(十)订单与支付模块

    文章目录 1项目架构 2项目采用技术 3订单与支付模块功能演示 4如何开发支付宝的支付模块以及订单模块 4.1首先需要编写前端页面以及JS文件 4.2其次需要编写JAVA后台接口 4.3支付模块分析 ...

  3. 【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计

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

  4. 【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发

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

  5. 【Lilishop商城】记录一下B2B2C商城系统学习笔记~

    做了也有几个小项目了,想提升一下自己,现在学一下新的商城项目,增强一下经验! Lilishop商城 gitee 地址: lilishop商城 电商 java商城系统: lilishop商城基于Spri ...

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

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

  7. 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)

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

  8. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  9. 【thinkphp5商城系统】01项目框架搭建

    为了提升自身实力,实现自己的梦想--money,没办法,我是一个比较庸俗的人,决定研究一iwebshop,tinyshop,tpshop等一些优秀的开源php电商系统,自己开发一个基于thinkphp ...

最新文章

  1. 相邻记录日期差 oracle,sql 相邻2条记录时间差比较
  2. WSUS 3.0 STEP BY STEP 配置手册
  3. JSP——JSTL语法总结
  4. q超级会员都有什么鸿蒙,超级会员+豪华绿钻,超值四开!
  5. 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
  6. 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念
  7. c语言字符全排列数组,使用c语言递归实现字符串的全排列
  8. SQL系列(二)—— 查询(select)
  9. Quartz入门到精通
  10. Spring 各种包功能
  11. c++ 中 try catch throw异常
  12. vscode设置tab为4个空格_动图炫技23个鲜为人知的VS Code快捷键
  13. 在Java编程中,为什么char类型数组可以直接用数组名打印,而其他类型数组打印结果而是地址值。
  14. video.js播放视频
  15. [3D分割 Benchmak] ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes
  16. 解决win10新建文本文档内容可以打开但显示图标不对的问题
  17. 聊一聊我在腾讯的外包同事
  18. HTML5网页编辑基础(简介+基础标签使用)
  19. Android 扫码盒子全局接收付款码
  20. 阿里云服务器web项目启动连接mysql_eclipse web项目部署到阿里云服务器

热门文章

  1. [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量安装eclipse
  2. 文献阅读---对β-三酮除草剂具有广谱抗性的一个水稻基因研究
  3. vmware启动虚拟机提示“无法连接虚拟设备ide1:0,主机上没有相对应的设备“
  4. Mysql单表查询30个经典案例
  5. Ubuntu断点续存之wget
  6. 模具设计分型面创建的10大原则
  7. 读取手机内存和SD卡的空间大小
  8. java编译(打包)完成,导致Excel文件损坏的问题
  9. 计算机工作自动化的特点,计算机内部自动化操作等特点.doc
  10. JAVA基础学习博客007