# 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.js` 或 `marriageAdmin-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

