# 包子铺商城系统 - 项目结构快速指南 ## 📁 项目整体结构 ``` 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` - **功能**: 直播间管理、礼物系统、粉丝管理 --- ## 🗄️ 数据库结构 ### 核心表: ```sql -- 商品相关 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. 启动后端(必须) ```bash cd baozi/ddn .\启动服务.bat ``` 或手动启动: ```bash cd baozi/ddn mvn clean package -DskipTests java -jar cxytw-admin/target/cxytw-admin.jar ``` ### 2. 启动前端管理后台 ```bash 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` --- ## 🔍 如何快速定位功能代码 ### 找后端接口: 1. 打开 `cxytw-admin/src/main/java/com/ddn/admin/controller/` 2. 根据功能找对应的Controller 3. 查看方法上的 `@RequestMapping` 注解 ### 找业务逻辑: 1. 在Controller中找到调用的Service 2. 打开 `cxytw-service/src/main/java/com/ddn/service/service/impl/` 3. 找到对应的ServiceImpl实现类 ### 找数据库操作: 1. 在ServiceImpl中找到调用的Dao 2. 打开 `cxytw-service/src/main/resources/mapper/` 3. 找到对应的XML文件查看SQL --- ## 💡 开发建议 ### 新增功能流程: 1. **数据库**: 在 `sql/` 目录创建SQL脚本 2. **实体类**: 在 `cxytw-common/model/` 创建实体 3. **Dao层**: 在 `cxytw-service/dao/` 创建Dao接口 4. **Mapper**: 在 `cxytw-service/resources/mapper/` 创建XML 5. **Service**: 在 `cxytw-service/service/` 创建Service接口和实现 6. **Controller**: 在 `cxytw-admin/controller/` 创建Controller 7. **前端**: 在 `admin/src/views/` 创建页面 ### 调试技巧: - 查看日志: `ddn/cxytw_admin_log/log_debug.log` - 使用Swagger测试API: http://localhost:20005/swagger-ui.html - 开启SQL日志: application.yml 中已配置 --- ## 📞 常见问题 ### Q: 如何找到某个功能的代码? A: 1. 先在前端找到对应的API调用 2. 根据API路径在Controller中找到对应方法 3. 跟踪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前端项目