# tmall **Repository Path**: trsunmu/tmall ## Basic Information - **Project Name**: tmall - **Description**: 高仿天猫项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2022-02-26 - **Last Updated**: 2024-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tmall 高仿天猫商城是一个基于Spring Boot的综合性`B2C`电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单、订单支付,确认收货,评价等一系列操作。 作为迷你天猫商城的核心组成部分之一,天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。 > 所有页面均兼容`IE10`及以上现代浏览器。 ## 访问方式 - 用户PC端地址:http://localhost:8080/tmall - 后台管理地址:http://localhost:8080/tmall/admin ## 前端功能 - 首页信息 ![](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets/homepage.png) - 登录 ![](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets//login.png) - 注册 - 按照商品类型搜索 - 按照关键字搜索 - 商品详情 ![](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets/productDetail.png) - 加入购物车 - 购物车列表 ![](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets/purchaseCar.png) - 立即购买 - 购买/结算(付款) - 提交订单 - 立即支付 - 订单列表 - 评价 - 产品评价列表 ## 后端功能 - 登录、修改密码、退出当前账号 - 产品管理(添加、列表搜索、分页查询、产品详情修改) - 产品类管理(添加、分页查询,产品类型详情修改) - 用户管理(按条件分页查询) - 订单管理(按条件分页查询、发货) - 打赏管理(按天骄分页查询) - 我的账户 ## 第一版 ### 技术栈 后端:`Spring Boot`、`MyBatis` 前端:`jsp`渲染 数据库:`MySQL` ## 第二版 ### 技术栈 后端:`Spring Boot`、`MyBatis`、`Redis`、`RabbitMQ` 前端:`jsp`渲染 数据库:`MySQL` ### 修改点 - 产品增加库存量 - 修复潜在风险:缓存穿透 - 用户信息存到Redis中 - 提交订单扣减控制(todo) - 促销商品下单未支付的,定时清理或给用户发信息(todo) - 加入购物车后,如果产品已经售卖完了,定时删除购物车订单(设置为无效、过期)(todo) ### 亮点 已实现: 集成`Redis`作为缓存、分布式锁 集成`RabbitMQ`作为异步、解耦 ## 第三版 ### 技术栈 后端:`Spring Boot`、`MyBatis`、`Redis`、`RabbitMQ`、`Dubbo`、`Zookeeper` 前端:`jsp`渲染 数据库:`MySQL` ### 架构图 ![图片](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets/640.png) ### 流程概览图 ![图片](https://gitee.com/trsunmu/tmall/raw/b0aacfea7e2fbb59fd071aee3bda40956716b07b/assets/640-1645869756641.png) ## 第四版 ### 技术栈 后端:Spring Boot、Spring Cloud(注册中心、服务调用、熔断、网关、分布式配置中心)`MyBatis`、`Redis`、`RabbitMQ` 前端:`jsp`渲染 数据库:`MySQL` ## Java目录 #### config目录 本目录下是所有相关配置文件加载:`Redis`、`RabbitMQ`等。 #### controller目录 本目录分为管理端和用户端目录,全部都是controller,所以也没什么好说的。 #### dao目录 本目录存放`MyBatis`相关`mapper`接口。 #### entity目录 本目录存放数据库表对应的实体类。 #### enums目录 本目录存放项目中所有枚举类。 #### filter目录 本目录存放过滤器,用户登录,拦截之类的处理。 #### lock 目录 本目录存放分布式锁存放目录,暂时是使用`Redis`实现的分布式锁(`Redisson`)。 #### `mq`目录 本目录存放消息队列`MQ`,消息发送和消息消费(暂时挂在一个目录下,下个版本改升级,拆分出去)。 #### service目录 本目录存放所有业务处理。 #### task目录 本目录存放项目中所有定时任务:订单过期、产品已售完等(暂时挂在一个目录下,下个版本升级,拆分出去)。 #### `util`目录 本目录存放项目中所有工具类。 ## resources目录 该目录存放所有配置文件,外带了两个异常错误页面。 #### `mybatis`目录 本目录存放所有`MyBatis`的`mapper.xml`文件。 #### application.properties 项目中的相关配置项 #### `redisson-single.yml` `Redis`集群配置项 ## `webapp`目录 > 说明:前端是`JSP`,所以相关文件存放于`webapp`目录下 ## 拆分规划 目前项目还是处于一个单体架构,由于业务量不断增大,所以,计划把项目进行拆分。 #### 拆分 计划拆分成如下模块: - 用户服务:管理用户信息、用户登录、注册 - 管理系统:管理员(商家)后台管理相关 - 产品服务:存放产品相关信息 - 订单服务:存放订单相关信息 - 消息消费系统:处理一些业务解耦、异步 - 定时任务系统:定时处理订单过期、产品售卖完等。 - 商城系统-web:商城页面显示相关内容 #### 技术难点 这里面会涉及到一些技术难点: - 服务间调用 - 分布式事务 - 安全校验 暂时就想到这么多,后面逐步完善。 ## 项目参考 项目原始版: > https://gitee.com/project_team/Tmall_demo?_from=gitee_search #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)