【Lilishop商城】No2-1.确定项目结构和数据结构(用户、商品、订单、促销等模块)
仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在:
【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.确定项目结构和数据结构(用户、商品、订单、促销等模块)相关推荐
- Java04-day04【IDEA(概述、启动配置、项目结构、内容辅助键、快捷键、模块操作)、数组(定义详解、动态初始化、访问)、内存分配、数组内存图】
java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] &qu ...
- JAVA项目实战开发电商项目案例(十)订单与支付模块
文章目录 1项目架构 2项目采用技术 3订单与支付模块功能演示 4如何开发支付宝的支付模块以及订单模块 4.1首先需要编写前端页面以及JS文件 4.2其次需要编写JAVA后台接口 4.3支付模块分析 ...
- 【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计
仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接 ...
- 【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发
仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口 ...
- 【Lilishop商城】记录一下B2B2C商城系统学习笔记~
做了也有几个小项目了,想提升一下自己,现在学一下新的商城项目,增强一下经验! Lilishop商城 gitee 地址: lilishop商城 电商 java商城系统: lilishop商城基于Spri ...
- 【Lilishop商城】No3-3.模块详细设计,会员信息(会员基本信息)、店铺设置(店铺信息、配送模板)的详细设计
仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括 ...
- 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)
仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口 ...
- Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...
- 【thinkphp5商城系统】01项目框架搭建
为了提升自身实力,实现自己的梦想--money,没办法,我是一个比较庸俗的人,决定研究一iwebshop,tinyshop,tpshop等一些优秀的开源php电商系统,自己开发一个基于thinkphp ...
最新文章
- 相邻记录日期差 oracle,sql 相邻2条记录时间差比较
- WSUS 3.0 STEP BY STEP 配置手册
- JSP——JSTL语法总结
- q超级会员都有什么鸿蒙,超级会员+豪华绿钻,超值四开!
- 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
- 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念
- c语言字符全排列数组,使用c语言递归实现字符串的全排列
- SQL系列(二)—— 查询(select)
- Quartz入门到精通
- Spring 各种包功能
- c++ 中 try catch throw异常
- vscode设置tab为4个空格_动图炫技23个鲜为人知的VS Code快捷键
- 在Java编程中,为什么char类型数组可以直接用数组名打印,而其他类型数组打印结果而是地址值。
- video.js播放视频
- [3D分割 Benchmak] ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes
- 解决win10新建文本文档内容可以打开但显示图标不对的问题
- 聊一聊我在腾讯的外包同事
- HTML5网页编辑基础(简介+基础标签使用)
- Android 扫码盒子全局接收付款码
- 阿里云服务器web项目启动连接mysql_eclipse web项目部署到阿里云服务器
热门文章
- [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量安装eclipse
- 文献阅读---对β-三酮除草剂具有广谱抗性的一个水稻基因研究
- vmware启动虚拟机提示“无法连接虚拟设备ide1:0,主机上没有相对应的设备“
- Mysql单表查询30个经典案例
- Ubuntu断点续存之wget
- 模具设计分型面创建的10大原则
- 读取手机内存和SD卡的空间大小
- java编译(打包)完成,导致Excel文件损坏的问题
- 计算机工作自动化的特点,计算机内部自动化操作等特点.doc
- JAVA基础学习博客007