代码结构详解.md 19 KB

XINxiangqin 代码结构详解

详细的代码组织结构说明,帮助快速定位代码位置


📂 一、项目根目录结构

XINxiangqin/
├── gateway/                    # API网关服务
├── common/                     # 公共模块
├── service/                    # 业务服务模块(Maven聚合)
│   ├── login/                 # 登录服务
│   ├── homePage/              # 首页服务
│   ├── dynamic/               # 动态服务
│   ├── websocket/             # WebSocket聊天服务
│   ├── randomMatch/           # 随机匹配服务
│   ├── Essential/             # 基础服务
│   ├── Recommend/            # 推荐服务
│   └── admin/                 # 管理端服务
├── LiangZhiYUMao/             # 小程序前端(uni-app)
├── marriageAdmin-vue/         # 管理后台(Vue 3)
├── pom.xml                    # Maven父项目配置
└── 项目文档/                   # 项目文档目录

🔧 二、后端代码结构

2.1 Gateway服务结构

gateway/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/zhentao/
│   │   │       └── gateway/
│   │   │           ├── GatewayApplication.java    # 启动类
│   │   │           └── config/
│   │   │               └── CorsConfig.java        # CORS配置
│   │   └── resources/
│   │       └── application.yml                    # 网关路由配置(重要!)
│   └── test/

关键文件:

  • application.yml - 所有路由规则、CORS配置、WebSocket支持

2.2 Common公共模块结构

common/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/zhentao/
│   │   │       ├── pojo/                         # 公共实体类
│   │   │       │   ├── Users.java                # 用户实体
│   │   │       │   ├── PartnerRequirement.java   # 择偶要求实体
│   │   │       │   └── MatchmakerApply.java      # 红娘申请实体
│   │   │       ├── mapper/                       # 数据访问层
│   │   │       │   ├── UsersMapper.java
│   │   │       │   ├── PartnerRequirementMapper.java
│   │   │       │   └── MatchmakerApplyMapper.java
│   │   │       └── service/                      # 公共服务接口
│   │   │           ├── UsersService.java
│   │   │           ├── PartnerRequirementService.java
│   │   │           └── MatchmakerApplyService.java
│   │   └── resources/
│   └── test/

关键文件:

  • pojo/ - 所有服务共享的实体类
  • mapper/ - MyBatis Mapper接口
  • service/ - 公共服务接口和实现

2.3 业务服务标准结构

每个业务服务(login、homePage、dynamic等)都遵循相同的结构:

service/{module}/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/zhentao/
│   │   │       ├── controller/                   # 控制器层(REST API)
│   │   │       │   └── XxxController.java        # 处理HTTP请求
│   │   │       ├── service/                       # 服务层(业务逻辑)
│   │   │       │   ├── XxxService.java           # 服务接口
│   │   │       │   └── impl/
│   │   │       │       └── XxxServiceImpl.java  # 服务实现
│   │   │       ├── mapper/                        # 数据访问层
│   │   │       │   └── XxxMapper.java            # MyBatis Mapper接口
│   │   │       ├── pojo/                          # 实体类(本服务专用)
│   │   │       │   └── Xxx.java
│   │   │       ├── config/                        # 配置类
│   │   │       │   ├── RedisConfig.java          # Redis配置
│   │   │       │   ├── MinIOConfig.java          # MinIO配置
│   │   │       │   └── MybatisPlusConfig.java    # MyBatis-Plus配置
│   │   │       └── {Module}Application.java      # 启动类
│   │   └── resources/
│   │       ├── application.yml                    # 服务配置(数据库、Redis等)
│   │       ├── mapper/                            # MyBatis XML映射文件
│   │       │   └── XxxMapper.xml
│   │       └── sql/                               # SQL脚本
│   │           └── xxx.sql
│   └── test/
├── pom.xml                                        # Maven配置
└── target/                                        # 编译输出

2.4 各服务详细说明

HomePage服务 (端口: 8081)

service/homePage/
├── controller/
│   ├── ActivityController.java        # 活动管理
│   ├── BannerController.java         # 轮播图
│   ├── AnnouncementController.java    # 公告
│   ├── MatchmakerController.java      # 红娘
│   ├── CourseController.java         # 课程
│   └── SuccessCaseController.java    # 成功案例
└── ...

Dynamic服务 (端口: 8086)

service/dynamic/
├── controller/
│   ├── DynamicController.java         # 动态管理
│   ├── CommentController.java         # 评论
│   ├── LikeController.java            # 点赞
│   └── ReportController.java          # 举报
└── ...

WebSocket服务 (端口: 1004)

service/websocket/
├── controller/
│   ├── ChatController.java            # 聊天REST API
│   ├── OnlineController.java         # 在线状态
│   └── IMController.java              # 腾讯云IM
├── config/
│   └── WebSocketConfig.java          # WebSocket配置
└── ...

Essential服务 (端口: 1005)

service/Essential/
├── controller/
│   ├── UserController.java            # 用户信息
│   ├── ProfileController.java         # 用户资料
│   ├── VipController.java             # VIP管理
│   ├── CheckinController.java         # 签到
│   └── FeedbackController.java        # 反馈
└── ...

Admin服务 (端口: 8088)

service/admin/
├── controller/
│   ├── AdminUserController.java       # 管理员管理
│   ├── DashboardController.java       # 数据面板
│   ├── DynamicAuditController.java    # 动态审核
│   └── ReportController.java          # 举报处理
└── ...

📱 三、前端代码结构

3.1 小程序端结构 (LiangZhiYUMao)

LiangZhiYUMao/
├── pages/                              # 页面目录
│   ├── index/                          # 首页
│   │   └── index.vue
│   ├── match/                          # 匹配
│   │   └── index.vue
│   ├── recommend/                      # 推荐
│   │   ├── index.vue
│   │   ├── user-detail.vue
│   │   └── user-dynamics.vue
│   ├── plaza/                          # 动态广场
│   │   ├── index.vue
│   │   ├── detail.vue
│   │   ├── publish.vue
│   │   └── report.vue
│   ├── message/                        # 消息
│   │   ├── index.vue
│   │   ├── chat.vue
│   │   └── system.vue
│   ├── astrology/                      # 星命运算
│   │   ├── index.vue
│   │   ├── zodiac.vue                  # 属相
│   │   ├── constellation.vue           # 星座
│   │   ├── constellation-match.vue     # 星座配对
│   │   ├── bazi.vue                    # 八字
│   │   ├── bazi-match.vue              # 八字配对
│   │   └── mbti.vue                    # MBTI
│   ├── matchmaker-workbench/           # 红娘工作台
│   │   ├── index.vue
│   │   ├── my-resources.vue
│   │   ├── resource-input.vue
│   │   ├── client-detail.vue
│   │   ├── precise-match.vue
│   │   ├── quality-resources.vue
│   │   ├── points-mall.vue
│   │   ├── courses.vue
│   │   ├── ranking.vue
│   │   ├── message.vue
│   │   ├── system-messages.vue
│   │   └── audit-records.vue
│   ├── activities/                     # 活动
│   │   ├── list.vue
│   │   └── detail.vue
│   ├── matchmakers/                     # 红娘
│   │   ├── list.vue
│   │   └── detail.vue
│   ├── courses/                         # 课程
│   │   ├── list.vue
│   │   └── detail.vue
│   ├── success-case/                    # 成功案例
│   │   ├── list.vue
│   │   └── detail.vue
│   ├── profile/                         # 个人资料
│   │   └── index.vue
│   ├── mine/                            # 我的
│   │   ├── index.vue
│   │   ├── my-activities.vue
│   │   └── my-dynamics.vue
│   ├── settings/                        # 设置
│   │   ├── index.vue
│   │   ├── id-verification.vue
│   │   └── phone-binding.vue
│   ├── vip/                             # VIP
│   │   └── index.vue
│   ├── customize/                       # 私人定制
│   │   └── index.vue
│   ├── blacklist/                       # 黑名单
│   │   └── index.vue
│   ├── feedback/                        # 反馈
│   │   └── index.vue
│   └── partner-requirement/             # 择偶要求
│       └── index.vue
├── components/                          # 组件
│   └── butlogin.vue                     # 登录按钮组件
├── utils/                               # 工具函数
│   ├── api.js                           # API封装(重要!)
│   ├── chat-api.js                      # 聊天API
│   ├── userAuth.js                      # 用户认证
│   ├── tim-manager.js                   # 腾讯云IM管理
│   ├── tim-presence-manager.js          # 在线状态管理
│   ├── websocket.js                     # WebSocket封装
│   ├── bazi.js                          # 八字工具
│   ├── constellation.js                 # 星座工具
│   ├── mbti.js                          # MBTI工具
│   ├── zodiac.js                       # 生肖工具
│   ├── zodiac-api.js                   # 生肖API
│   ├── zodiac-enhanced.js              # 生肖增强
│   └── util.js                         # 通用工具
├── config/                              # 配置文件
│   ├── api-config.js                   # API配置(重要!)
│   ├── match-config.js                 # 匹配配置
│   └── index.js                        # 主配置
├── store/                               # 状态管理
│   └── index.js
├── pages.json                           # 页面路由配置(重要!)
├── manifest.json                        # 应用配置
├── App.vue                              # 根组件
└── main.js                              # 入口文件

关键文件说明:

  • utils/api.js - 所有API请求的封装,包含Token处理、错误处理
  • config/api-config.js - 第三方API配置(天行数据、极速数据)
  • pages.json - 页面路由配置,定义所有页面路径和导航栏
  • utils/tim-manager.js - 腾讯云IM SDK封装

3.2 管理后台结构 (marriageAdmin-vue)

marriageAdmin-vue/
├── src/
│   ├── views/                           # 页面组件
│   │   ├── Login.vue                    # 登录页
│   │   ├── Dashboard.vue                # 数据面板
│   │   ├── banner/                       # 轮播图管理
│   │   │   └── BannerList.vue
│   │   ├── announcement/                # 公告管理
│   │   │   └── AnnouncementList.vue
│   │   ├── activity/                    # 活动管理
│   │   │   ├── ActivityList.vue
│   │   │   ├── ActivityForm.vue
│   │   │   └── ActivityRegistrations.vue
│   │   ├── matchmaker/                  # 红娘管理
│   │   │   ├── MatchmakerList.vue
│   │   │   ├── MatchmakerForm.vue
│   │   │   ├── MatchmakerAudit.vue
│   │   │   ├── CaseAudit.vue
│   │   │   ├── PointsOrderList.vue
│   │   │   └── ResourceList.vue
│   │   ├── course/                      # 课程管理
│   │   │   ├── CourseList.vue
│   │   │   ├── CourseForm.vue
│   │   │   └── CourseDetail.vue
│   │   ├── success-case/                # 成功案例
│   │   │   ├── SuccessCaseList.vue
│   │   │   └── SuccessCaseForm.vue
│   │   ├── user/                        # 用户管理
│   │   │   ├── UserList.vue
│   │   │   └── UserVipList.vue
│   │   ├── vip/                         # VIP管理
│   │   │   └── VipPackageList.vue
│   │   ├── dynamic/                     # 动态管理
│   │   │   ├── DynamicList.vue
│   │   │   └── DynamicDetail.vue
│   │   ├── report/                      # 举报管理
│   │   │   └── ReportList.vue
│   │   ├── admin/                       # 管理员管理
│   │   │   └── AdminUserList.vue
│   │   └── 404.vue                      # 404页面
│   ├── components/                      # 通用组件
│   │   ├── MainLayout.vue               # 主布局
│   │   ├── Sidebar.vue                  # 侧边栏
│   │   ├── Header.vue                   # 头部
│   │   └── ...
│   ├── router/                          # 路由配置
│   │   └── index.js                     # 路由定义和守卫(重要!)
│   ├── stores/                          # Pinia状态管理
│   │   ├── user.js                      # 用户状态(重要!)
│   │   └── counter.js
│   ├── utils/                           # 工具函数
│   │   └── request.js                   # Axios封装(重要!)
│   ├── config/                          # 配置文件
│   │   └── api.js                       # API端点定义(重要!)
│   ├── assets/                          # 静态资源
│   │   ├── css/                         # 样式文件
│   │   └── images/                      # 图片
│   ├── layouts/                         # 布局组件
│   │   └── MainLayout.vue
│   ├── App.vue                          # 根组件
│   └── main.js                          # 入口文件
├── public/                              # 公共资源
├── vite.config.js                       # Vite配置
├── package.json                         # 依赖配置
└── README.md                            # 说明文档

关键文件说明:

  • src/config/api.js - 所有API端点定义
  • src/utils/request.js - Axios请求封装,包含Token处理、错误处理
  • src/router/index.js - 路由配置和权限守卫
  • src/stores/user.js - 用户状态管理(Token、用户信息、权限)

🔍 四、代码查找指南

4.1 如何查找功能代码

查找API接口

  1. 小程序端: 查看 LiangZhiYUMao/utils/api.js
  2. 管理后台: 查看 marriageAdmin-vue/src/config/api.js
  3. 后端接口: 查看对应服务的 controller/ 目录

查找业务逻辑

  1. 后端: 查看对应服务的 service/impl/ 目录
  2. 前端: 查看对应页面的 .vue 文件

查找数据库操作

  1. Mapper接口: 查看 mapper/ 目录
  2. SQL映射: 查看 resources/mapper/ 目录
  3. SQL脚本: 查看 resources/sql/ 目录

查找配置

  1. 网关路由: gateway/src/main/resources/application.yml
  2. 服务配置: service/{module}/src/main/resources/application.yml
  3. 前端API配置: LiangZhiYUMao/config/api-config.jsmarriageAdmin-vue/src/config/api.js

4.2 常见功能代码位置

功能 后端位置 前端位置
用户登录 service/login/ LiangZhiYUMao/utils/userAuth.js
用户信息 service/Essential/controller/UserController.java LiangZhiYUMao/pages/profile/
动态管理 service/dynamic/controller/DynamicController.java LiangZhiYUMao/pages/plaza/
聊天功能 service/websocket/ LiangZhiYUMao/pages/message/
匹配推荐 service/randomMatch/ LiangZhiYUMao/pages/match/
活动管理 service/homePage/controller/ActivityController.java LiangZhiYUMao/pages/activities/
管理后台登录 service/admin/controller/AdminAuthController.java marriageAdmin-vue/src/views/Login.vue
数据面板 service/admin/controller/DashboardController.java marriageAdmin-vue/src/views/Dashboard.vue

📝 五、代码组织规范

5.1 后端代码规范

Controller层

  • 职责: 处理HTTP请求,参数校验,调用Service
  • 命名: XxxController.java
  • 注解: @RestController, @RequestMapping

Service层

  • 职责: 业务逻辑处理
  • 命名: XxxService.java (接口), XxxServiceImpl.java (实现)
  • 注解: @Service

Mapper层

  • 职责: 数据库操作
  • 命名: XxxMapper.java (接口), XxxMapper.xml (SQL映射)
  • 注解: @Mapper 或继承 BaseMapper<T>

Pojo层

  • 职责: 实体类定义
  • 命名: 实体名(如 User.java
  • 注解: @Data, @TableName, @TableId

5.2 前端代码规范

小程序端

  • 页面: pages/ 目录下,使用 .vue 文件
  • 组件: components/ 目录下
  • 工具: utils/ 目录下
  • 配置: config/ 目录下

管理后台

  • 页面: src/views/ 目录下
  • 组件: src/components/ 目录下
  • 工具: src/utils/ 目录下
  • 配置: src/config/ 目录下
  • 状态: src/stores/ 目录下(Pinia)

🎯 六、开发建议

6.1 添加新功能

后端

  1. 在对应服务的 pojo/ 创建实体类
  2. mapper/ 创建Mapper接口
  3. resources/mapper/ 创建SQL映射文件
  4. service/ 创建Service接口和实现
  5. controller/ 创建Controller
  6. 在网关 application.yml 添加路由(如需要)

前端(小程序)

  1. pages/ 创建页面文件
  2. pages.json 添加路由配置
  3. utils/api.js 添加API方法
  4. 在页面中调用API

前端(管理后台)

  1. src/views/ 创建页面组件
  2. src/router/index.js 添加路由
  3. src/config/api.js 添加API端点
  4. 在页面中调用API

6.2 修改现有功能

  1. 定位代码: 使用本文档的"代码查找指南"
  2. 理解结构: 查看相关文件,理解代码组织
  3. 修改代码: 遵循现有代码规范
  4. 测试验证: 修改后充分测试

📚 七、相关文档

  • 项目全面分析报告.md - 详细的项目分析
  • 项目快速参考手册.md - 快速查找参考
  • 项目架构分析报告.md - 架构设计说明
  • 技术栈快速参考.md - 技术栈清单

最后更新: 2025-01-27