10 KiB
10 KiB
包子铺商城系统 - 项目结构快速指南
📁 项目整体结构
baozi/
├── admin/ # 前端管理后台(Vue + Element UI)
├── ddn/ # 后端Java项目(核心)
│ ├── cxytw-admin/ # 后台管理API模块(端口20005)
│ ├── cxytw-front/ # 前端小程序API模块(端口20004)
│ ├── cxytw-service/ # 业务服务层(核心业务逻辑)
│ ├── cxytw-common/ # 公共模块(实体类、工具类)
│ ├── cxytw-websocket/ # WebSocket服务(端口20014)
│ └── sql/ # 数据库脚本
└── 各种SQL脚本和文档
🎯 后端核心模块详解
1. cxytw-admin - 后台管理API(最重要)
端口: 20005
作用: 提供管理后台所有API接口
目录结构:
cxytw-admin/
├── src/main/java/com/ddn/admin/
│ ├── controller/ # 控制器层(API接口)
│ │ ├── AdminLoginController.java # 管理员登录
│ │ ├── StoreProductController.java # 商品管理
│ │ ├── StoreOrderController.java # 订单管理
│ │ ├── UserController.java # 用户管理
│ │ ├── SystemStoreController.java # 门店/提货点管理
│ │ ├── CommunityController.java # 小区管理
│ │ ├── StoreCouponController.java # 优惠券管理
│ │ ├── LiveRoomController.java # 直播管理
│ │ └── ... 80+ 控制器
│ │
│ ├── service/ # 服务层(业务逻辑)
│ ├── dao/ # 数据访问层
│ ├── model/ # 数据模型
│ ├── vo/ # 视图对象
│ ├── config/ # 配置类
│ ├── filter/ # 过滤器
│ └── CxytwAdminApplication.java # 启动类
│
└── src/main/resources/
├── application.yml # 主配置文件
├── mapper/ # MyBatis XML映射文件
└── logback-spring.xml # 日志配置
2. cxytw-front - 前端小程序API
端口: 20004
作用: 提供小程序/H5端所有API接口
主要功能:
- 用户登录注册
- 商品浏览购买
- 订单创建支付
- 购物车管理
- 地址管理
- 优惠券领取
3. cxytw-service - 业务服务层(核心)
作用: 所有业务逻辑的实现
目录结构:
cxytw-service/
├── src/main/java/com/ddn/service/
│ ├── service/ # 服务接口
│ │ ├── StoreProductService.java # 商品服务
│ │ ├── StoreOrderService.java # 订单服务
│ │ ├── UserService.java # 用户服务
│ │ ├── SystemStoreService.java # 门店服务
│ │ ├── CommunityService.java # 小区服务
│ │ └── ... 100+ 服务接口
│ │
│ ├── service/impl/ # 服务实现类
│ ├── dao/ # 数据访问层
│ └── ...
│
└── src/main/resources/
└── mapper/ # MyBatis XML映射文件
├── product/ # 商品相关SQL
├── order/ # 订单相关SQL
├── user/ # 用户相关SQL
└── system/ # 系统相关SQL
4. cxytw-common - 公共模块
作用: 所有模块共享的代码
包含内容:
cxytw-common/
├── model/ # 实体类
│ ├── product/ # 商品实体
│ ├── order/ # 订单实体
│ ├── user/ # 用户实体
│ └── system/ # 系统实体
│
├── request/ # 请求参数类
├── response/ # 响应结果类
├── vo/ # 视图对象
├── constants/ # 常量定义
├── utils/ # 工具类
└── exception/ # 异常类
5. cxytw-websocket - WebSocket服务
端口: 20014
作用: 实时通信(直播、聊天)
🔑 核心业务模块
商品管理
- Controller:
StoreProductController.java - Service:
StoreProductService.java - 功能: 商品增删改查、上下架、分类管理
订单管理
- Controller:
StoreOrderController.java - Service:
StoreOrderService.java - 功能: 订单创建、支付、发货、退款
用户管理
- Controller:
UserController.java - Service:
UserService.java - 功能: 用户注册、登录、资料管理、积分管理
门店/提货点管理
- Controller:
SystemStoreController.java - Service:
SystemStoreService.java - 功能: 门店管理、提货点管理、附近门店查询
小区管理
- Controller:
CommunityController.java - Service:
CommunityService.java - 功能: 小区信息管理、关联门店
优惠券管理
- Controller:
StoreCouponController.java - Service:
StoreCouponService.java - 功能: 优惠券创建、发放、使用
直播管理
- Controller:
LiveRoomController.java - Service:
LiveRoomService.java - 功能: 直播间管理、礼物系统、粉丝管理
🗄️ 数据库结构
核心表:
-- 商品相关
eb_store_product # 商品表
eb_store_product_attr # 商品规格表
eb_store_category # 商品分类表
-- 订单相关
eb_store_order # 订单表
eb_store_order_info # 订单详情表
eb_store_order_status # 订单状态表
-- 用户相关
eb_user # 用户表
eb_user_address # 用户地址表
eb_user_bill # 用户账单表
-- 系统相关
eb_system_store # 门店/提货点表
eb_community # 小区表
eb_system_config # 系统配置表
eb_system_admin # 管理员表
eb_system_role # 角色表
eb_system_menu # 菜单表
-- 营销相关
eb_store_coupon # 优惠券表
eb_store_coupon_user # 用户优惠券表
eb_store_bargain # 砍价活动表
eb_store_combination # 拼团活动表
eb_store_seckill # 秒杀活动表
🚀 快速启动流程
1. 启动后端(必须)
cd baozi/ddn
.\启动服务.bat
或手动启动:
cd baozi/ddn
mvn clean package -DskipTests
java -jar cxytw-admin/target/cxytw-admin.jar
2. 启动前端管理后台
cd baozi/admin
npm install
npm run dev
3. 访问系统
- 管理后台: http://localhost:9527
- API文档: http://localhost:20005/swagger-ui.html
- 账号: admin / 123456
📊 技术栈
后端
- 框架: Spring Boot 2.2.6
- ORM: MyBatis Plus 3.3.1
- 数据库: MySQL 5.7
- 缓存: Redis(可选)
- 安全: Spring Security
- API文档: Swagger
前端
- 框架: Vue 2.x
- UI库: Element UI 2.13
- 构建工具: Webpack
- 状态管理: Vuex
- 路由: Vue Router
🎯 核心API接口路径
管理后台API(端口20005)
/api/admin/login # 管理员登录
/api/admin/product/** # 商品管理
/api/admin/order/** # 订单管理
/api/admin/user/** # 用户管理
/api/admin/system/store/** # 门店管理
/api/admin/system/community/** # 小区管理
/api/admin/coupon/** # 优惠券管理
前端小程序API(端口20004)
/api/front/login # 用户登录
/api/front/product/** # 商品浏览
/api/front/order/** # 订单操作
/api/front/cart/** # 购物车
/api/front/store/** # 门店查询
/api/front/community/** # 小区查询
📝 配置文件位置
后端配置
- 主配置:
ddn/cxytw-admin/src/main/resources/application.yml - 数据库配置: 在 application.yml 中
- 日志配置:
ddn/cxytw-admin/src/main/resources/logback-spring.xml
前端配置
- 环境配置:
admin/.env.development - API地址:
admin/src/utils/request.js - 路由配置:
admin/src/router/index.js
🔍 如何快速定位功能代码
找后端接口:
- 打开
cxytw-admin/src/main/java/com/ddn/admin/controller/ - 根据功能找对应的Controller
- 查看方法上的
@RequestMapping注解
找业务逻辑:
- 在Controller中找到调用的Service
- 打开
cxytw-service/src/main/java/com/ddn/service/service/impl/ - 找到对应的ServiceImpl实现类
找数据库操作:
- 在ServiceImpl中找到调用的Dao
- 打开
cxytw-service/src/main/resources/mapper/ - 找到对应的XML文件查看SQL
💡 开发建议
新增功能流程:
- 数据库: 在
sql/目录创建SQL脚本 - 实体类: 在
cxytw-common/model/创建实体 - Dao层: 在
cxytw-service/dao/创建Dao接口 - Mapper: 在
cxytw-service/resources/mapper/创建XML - Service: 在
cxytw-service/service/创建Service接口和实现 - Controller: 在
cxytw-admin/controller/创建Controller - 前端: 在
admin/src/views/创建页面
调试技巧:
- 查看日志:
ddn/cxytw_admin_log/log_debug.log - 使用Swagger测试API: http://localhost:20005/swagger-ui.html
- 开启SQL日志: application.yml 中已配置
📞 常见问题
Q: 如何找到某个功能的代码?
A:
- 先在前端找到对应的API调用
- 根据API路径在Controller中找到对应方法
- 跟踪Service调用链
Q: 如何修改数据库配置?
A: 编辑 ddn/cxytw-admin/src/main/resources/application.yml
Q: 如何添加新的API接口?
A: 在对应的Controller中添加方法,使用 @RequestMapping 注解
Q: 前端如何调用后端API?
A: 在 admin/src/api/ 目录中定义API方法
🎉 总结
这是一个标准的Spring Boot + Vue前后端分离项目:
- 后端: 采用分层架构(Controller → Service → Dao)
- 前端: 采用组件化开发(Vue + Element UI)
- 数据库: 使用MyBatis Plus进行ORM映射
- API: RESTful风格,使用Swagger文档
核心就是: ddn/ 目录下的Java后端项目 + admin/ 目录下的Vue前端项目