peixue-dev/Archive/Value/需求/项目结构说明.md

10 KiB
Raw Permalink Blame History

包子铺商城系统 - 项目结构快速指南

📁 项目整体结构

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. 访问系统


📊 技术栈

后端

  • 框架: 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/ 创建页面

调试技巧:


📞 常见问题

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前端项目