大家好,田哥
之前,有很多人找我聊说:自己没有实际项目经验,面试的时候心里都很发慌。
于是,ta来了,名字咱们就叫他:快购商城
项目介绍
本项目命名为快购商城,分为两个端:用户端
和商家端
。
前台商城系统(用户端):包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、提醒发货、订单取消、个人订单管理、会员中心、个人积分、帮助中心等。
商家管理系统(商家端):包含数据面板、轮播图管理、商品管理、订单管理、会员管理、积分管理、分类管理、订单提醒处理等。
功能会逐步优化和完善,本项目现在是构建了第二个版本。第一个版本是单体架构,关于单体项目这里就不少了。
技术栈
项目中运用到的技术栈:
Spring Boot
:构建项目基础Dubbo
:服务治理和调用Zookeeper
:注册中心、分布式锁Mybatis
:数据库持久化thymeleaf
:前端渲染引擎Redis
:缓存、分布式锁、排行榜等MySQL
:数据存储RabbitMQ
:消息队列异步化、解耦Seata
:分布式事务OSS
:图片存储
开发工具:
IDEA
JDK1.8
Navicat for MySQL
Typora
文档编写ZooInspector zk
看客户端
数据库表
整个项目目前共有10张表(后面肯定会继续扩展的,所以表也会不断增多的):
tb_mall_admin_user
管理员表tb_mall_carousel
首页轮播商品表tb_mall_goods_category
物品分类表tb_mall_goods_info
物品详情表tb_mall_index_config
首页配置表tb_mall_order
订单表tb_mall_order_item
订单详情表tb_mall_shopping_cart_item
购物车tb_mall_user
用户表tb_user_points
用户积分表tb_login_log
用户登录日志表tb_order_remind
提醒商家发货
项目结构介绍
happy-shopping-v2 模块介绍
mall-web
用户端展示项目
由于本项目不是前后端分离,前端渲染使用的是Thymeleaf
,所以就会存在这么一个前端web服务,也可以当做是一个网关系统,不做具体业务,只是调用服务,数组整合然后展示。
mall-admin
商家端展示项目
同mall-web系统类似,这里就不再赘述了。
mall-goods
商品服务
商品服务包含以下内容:
- 首页展示的轮播图
- 商品种类
- 首页配置展示
- 商品信息
以Dubbo
服务形式供外部调用。
mall-order
订单服务
订单服务包含以下内容:
- 订单
- 订单详情
- 购物车
- 提醒商家
以Dubbo
服务形式供外部调用。
mall-job
定时任务服务
定时任务规划内容:
- 定时查询支付单状态
- 定时扫描订单超时未支付:用户订单提交了,但已超过应支付时间
- 购物车商品下架:用户已加入购物车的商品下架,对应购物车商品也失效。
定时任务处理相关,项目以单独Spring Boot项目存在
mall-mq
消息队列服务
消息队列项目包含以下内容:
- 登录日志记录:用户每次登录进行日志记录
- 购物车数量更新:每次加入购物车、订单提交等都应该更新购物车数量。
- .....
以单独Spring Boot项目存在
mall-common
公共服务
公共服务暂时还没实现具体功能,目前只是做一个统一工具类,然后其他服务就可以引用该jar包了。
后期可能会做一些服务,比如:分布式生成ID
目前就是一个单独的jar包,后期规划成Dubbo服务供外部系统调用。
mall-user
用户服务
用户服务主要包含以下内容:
- 用户信息
- 商家信息
- 用户积分
该服务以
Dubbo
服务供外部系统调用
系统功能点
用户端功能点
- 首页商品展示
- 首页商品搜索
- 商品详情
- 注册
- 登录
- 退出
- 添加到购物车
- 查看购物车
- 提交订单
- 订单支付
- 取消订单
- 我的订单列表
- 我的积分
- 提醒发货
后台管理端功能点
- 商品添加
- 商品修改
- 商品下架
- 商品上架
- 首页轮播图配置
- 首页热销商品配置
- 首页新品上线配置
- 首页推送商品配置
- 用户管理
- 商品分类管理
- 禁用
- 解除禁用
- 订单修改
- 订单查询
- 配货完成
- 出库
- 关闭订单
- 积分管理
- 消息管理
- 修改密码
- 退出
暂时想到这些,后面想到了继续完善。
项目收获
通过上面这个项目,你将可以收获如下技能包:
- 分布式锁在项目中如何用
- 线程池在项目中如何使用
- 缓存如何在项目使用
- 如何防止缓存穿透
- 分布式
session
如何处理 - 分布式事务在项目中如何运用
- 如何利用
Spring Boot Dubbo Zookeeper MyBatis MySQL Redis Rabbitmq
构建一个微服务架构 - ......
好吧,就这么多了。
我会把每个功能是怎么实现的,都整理出来,调用逻辑流程图等,最后都以文档形式呈现给大家。