|
|
@@ -0,0 +1,401 @@
|
|
|
+# 项目架构分析报告
|
|
|
+
|
|
|
+## 📋 项目概述
|
|
|
+
|
|
|
+**项目名称**: XINxiangqin(新相亲)
|
|
|
+**项目类型**: 婚恋社交平台
|
|
|
+**架构模式**: 微服务架构(Spring Cloud Gateway + 多服务模块)
|
|
|
+**开发时间**: 2024-2025
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🏗️ 技术架构
|
|
|
+
|
|
|
+### 后端技术栈
|
|
|
+
|
|
|
+#### 核心框架
|
|
|
+- **Spring Boot**: 2.7.15
|
|
|
+- **Spring Cloud**: 2021.0.8
|
|
|
+- **Spring Cloud Alibaba**: 2021.0.5.0
|
|
|
+- **Java版本**: JDK 8
|
|
|
+- **构建工具**: Maven
|
|
|
+
|
|
|
+#### 数据层
|
|
|
+- **ORM框架**: MyBatis-Plus 3.5.3
|
|
|
+- **数据库**: MySQL 8.0.33
|
|
|
+- **缓存**: Redis (Spring Data Redis)
|
|
|
+- **对象存储**: MinIO 7.1.0
|
|
|
+
|
|
|
+#### 其他技术
|
|
|
+- **WebSocket**: 实时聊天功能
|
|
|
+- **腾讯云IM SDK**: tim-wx-sdk 2.27.6 (用于小程序聊天)
|
|
|
+- **工具库**: Lombok 1.18.30
|
|
|
+
|
|
|
+### 前端技术栈
|
|
|
+
|
|
|
+#### 小程序端 (LiangZhiYUMao)
|
|
|
+- **框架**: uni-app (Vue 2)
|
|
|
+- **HTTP客户端**: Axios 1.12.2
|
|
|
+- **UI组件**: uni-ui组件库
|
|
|
+- **聊天SDK**: tim-wx-sdk 2.27.6
|
|
|
+
|
|
|
+#### 管理后台 (marriageAdmin-vue)
|
|
|
+- **框架**: Vue 3.5.22
|
|
|
+- **UI组件库**: Element Plus 2.11.5
|
|
|
+- **状态管理**: Pinia 3.0.3
|
|
|
+- **路由**: Vue Router 4.5.1
|
|
|
+- **构建工具**: Vite 7.1.7
|
|
|
+- **图表库**: ECharts 6.0.0
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🎯 系统架构设计
|
|
|
+
|
|
|
+### 微服务模块划分
|
|
|
+
|
|
|
+```
|
|
|
+XINxiangqin/
|
|
|
+├── gateway/ # API网关服务 (端口: 8083)
|
|
|
+├── common/ # 公共模块(实体类、工具类)
|
|
|
+└── service/ # 业务服务模块
|
|
|
+ ├── login/ # 登录服务
|
|
|
+ ├── homePage/ # 首页服务 (端口: 8081)
|
|
|
+ ├── dynamic/ # 动态服务 (端口: 8086)
|
|
|
+ ├── websocket/ # WebSocket聊天服务 (端口: 1004)
|
|
|
+ ├── randomMatch/ # 随机匹配服务 (端口: 1003)
|
|
|
+ ├── Essential/ # 基础服务(用户信息等)(端口: 1005)
|
|
|
+ ├── Recommend/ # 推荐服务
|
|
|
+ └── admin/ # 管理端服务 (端口: 8088)
|
|
|
+```
|
|
|
+
|
|
|
+### 网关路由配置
|
|
|
+
|
|
|
+网关统一入口:`http://localhost:8083`
|
|
|
+
|
|
|
+| 路由路径 | 目标服务 | 端口 | 说明 |
|
|
|
+|---------|---------|------|------|
|
|
|
+| `/admin/**` | admin服务 | 8088 | 管理端页面和API |
|
|
|
+| `/api/admin/**` | admin服务 | 8088 | 管理端API |
|
|
|
+| `/ws/chat/**` | websocket服务 | 1004 | WebSocket聊天 |
|
|
|
+| `/api/chat/**` | websocket服务 | 1004 | 聊天REST API |
|
|
|
+| `/match/**` | randomMatch服务 | 1003 | 匹配服务 |
|
|
|
+| `/api/announcement/**` | homePage服务 | 8081 | 公告服务 |
|
|
|
+| `/api/dynamic/**` | dynamic服务 | 8086 | 动态服务 |
|
|
|
+| `/media/**` | dynamic服务 | 8086 | 媒体文件 |
|
|
|
+| `/api/message/**` | dynamic服务 | 8086 | 系统消息 |
|
|
|
+| `/api/user/**` | Essential服务 | 1005 | 用户基础服务 |
|
|
|
+| `/api/**` | homePage服务 | 8081 | 首页服务(兜底路由) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📱 功能模块分析
|
|
|
+
|
|
|
+### 小程序端功能 (LiangZhiYUMao)
|
|
|
+
|
|
|
+#### 核心功能模块
|
|
|
+
|
|
|
+1. **用户认证模块**
|
|
|
+ - 微信授权登录
|
|
|
+ - 手机号绑定
|
|
|
+ - 身份证验证
|
|
|
+ - 用户资料管理
|
|
|
+
|
|
|
+2. **匹配推荐模块**
|
|
|
+ - 今日推荐
|
|
|
+ - 智能推荐
|
|
|
+ - 在线匹配
|
|
|
+ - 随机匹配
|
|
|
+ - 对象要求设置
|
|
|
+
|
|
|
+3. **社交功能模块**
|
|
|
+ - 动态广场(发布、浏览、点赞、评论)
|
|
|
+ - 消息系统(聊天、系统消息)
|
|
|
+ - 黑名单管理
|
|
|
+ - 举报功能
|
|
|
+
|
|
|
+4. **星命运算模块** ⭐
|
|
|
+ - 属相测算
|
|
|
+ - 星座卡片
|
|
|
+ - 星座配对
|
|
|
+ - 八字测算
|
|
|
+ - 八字配对
|
|
|
+ - MBTI测试
|
|
|
+
|
|
|
+5. **服务模块**
|
|
|
+ - 红娘服务(列表、详情)
|
|
|
+ - 活动管理(列表、详情、报名)
|
|
|
+ - 精品课程(列表、详情)
|
|
|
+ - 成功案例(列表、详情)
|
|
|
+ - 兼职红娘申请
|
|
|
+
|
|
|
+6. **会员功能**
|
|
|
+ - VIP会员
|
|
|
+ - 私人定制
|
|
|
+
|
|
|
+7. **个人中心**
|
|
|
+ - 我的资料
|
|
|
+ - 我的活动
|
|
|
+ - 设置中心
|
|
|
+
|
|
|
+#### 第三方API集成
|
|
|
+
|
|
|
+- **天行数据API**: 星座、生肖配对、八字查询
|
|
|
+- **极速数据API**: 专业八字排盘
|
|
|
+- **腾讯云IM**: 实时聊天功能
|
|
|
+
|
|
|
+### 管理后台功能 (marriageAdmin-vue)
|
|
|
+
|
|
|
+#### 管理功能模块
|
|
|
+
|
|
|
+1. **数据面板**
|
|
|
+ - 用户统计
|
|
|
+ - 活动统计
|
|
|
+ - 收入趋势
|
|
|
+ - ECharts图表展示
|
|
|
+
|
|
|
+2. **内容管理**
|
|
|
+ - 轮播图管理
|
|
|
+ - 小喇叭公告管理
|
|
|
+ - 活动管理(含报名统计)
|
|
|
+ - 红娘管理
|
|
|
+ - 课程管理
|
|
|
+ - 成功案例管理
|
|
|
+
|
|
|
+3. **用户管理**
|
|
|
+ - 用户列表
|
|
|
+ - VIP用户管理
|
|
|
+ - VIP套餐管理
|
|
|
+
|
|
|
+4. **审核管理**
|
|
|
+ - 动态审核
|
|
|
+ - 举报处理
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🗄️ 数据库设计
|
|
|
+
|
|
|
+### 核心数据表
|
|
|
+
|
|
|
+#### 用户相关
|
|
|
+- `users`: 用户主表
|
|
|
+ - 字段:userId, phone, email, nickname, password, gender, birthDate, avatarUrl, status等
|
|
|
+ - 安全:手机号AES-256加密,密码bcrypt加密
|
|
|
+
|
|
|
+- `user_profile`: 用户扩展信息表
|
|
|
+ - 字段:房产、车辆、身高、体重、星座、生肖、学历、工作、薪资等
|
|
|
+ - 认证:实名认证、学历认证、工作认证、婚姻状态认证
|
|
|
+
|
|
|
+- `vip`: VIP会员表
|
|
|
+- `blacklist`: 黑名单表
|
|
|
+- `checkin`: 签到表
|
|
|
+
|
|
|
+#### 社交相关
|
|
|
+- `user_dynamics`: 用户动态表
|
|
|
+- `dynamic_comments`: 动态评论表
|
|
|
+- `dynamic_likes`: 动态点赞表
|
|
|
+- `dynamic_reports`: 动态举报表
|
|
|
+
|
|
|
+#### 聊天相关
|
|
|
+- `chat_messages`: 聊天消息表
|
|
|
+- `chat_sessions`: 聊天会话表
|
|
|
+
|
|
|
+#### 业务相关
|
|
|
+- `activities`: 活动表
|
|
|
+- `activity_registrations`: 活动报名表
|
|
|
+- `matchmakers`: 红娘表
|
|
|
+- `courses`: 课程表
|
|
|
+- `success_cases`: 成功案例表
|
|
|
+- `announcements`: 公告表
|
|
|
+- `banners`: 轮播图表
|
|
|
+
|
|
|
+#### 管理相关
|
|
|
+- `admin_users`: 管理员用户表
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🔐 安全机制
|
|
|
+
|
|
|
+### 数据安全
|
|
|
+- **手机号加密**: AES-256加密存储
|
|
|
+- **密码加密**: bcrypt哈希加密
|
|
|
+- **Token认证**: JWT Token + Redis存储
|
|
|
+- **CORS配置**: 网关统一处理跨域
|
|
|
+
|
|
|
+### 认证流程
|
|
|
+1. 小程序:微信授权登录 → 获取openid/unionid → 生成Token
|
|
|
+2. 管理后台:用户名密码登录 → 验证 → 生成Token
|
|
|
+3. Token存储在Redis中,设置过期时间
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📡 API接口设计
|
|
|
+
|
|
|
+### 接口规范
|
|
|
+- **统一响应格式**: `{code, message, data}`
|
|
|
+- **统一错误处理**: 网关层统一处理
|
|
|
+- **RESTful风格**: 遵循REST规范
|
|
|
+
|
|
|
+### 主要接口分类
|
|
|
+
|
|
|
+#### 用户相关
|
|
|
+- `/api/user/**` - 用户信息、资料管理
|
|
|
+
|
|
|
+#### 动态相关
|
|
|
+- `/api/dynamic/**` - 动态CRUD、点赞、评论
|
|
|
+- `/api/message/**` - 系统消息
|
|
|
+
|
|
|
+#### 匹配相关
|
|
|
+- `/match/**` - 匹配算法、推荐
|
|
|
+
|
|
|
+#### 聊天相关
|
|
|
+- `/api/chat/**` - 聊天消息REST API
|
|
|
+- `/ws/chat/**` - WebSocket实时聊天
|
|
|
+
|
|
|
+#### 管理相关
|
|
|
+- `/admin/**` - 管理端页面和API
|
|
|
+- `/api/admin/**` - 管理端API
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🚀 部署架构
|
|
|
+
|
|
|
+### 服务端口分配
|
|
|
+
|
|
|
+| 服务 | 端口 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| Gateway | 8083 | API网关(统一入口) |
|
|
|
+| HomePage | 8081 | 首页服务 |
|
|
|
+| Dynamic | 8086 | 动态服务 |
|
|
|
+| WebSocket | 1004 | 聊天服务 |
|
|
|
+| RandomMatch | 1003 | 匹配服务 |
|
|
|
+| Essential | 1005 | 基础服务 |
|
|
|
+| Admin | 8088 | 管理端服务 |
|
|
|
+
|
|
|
+### 依赖服务
|
|
|
+- **MySQL**: 主数据库
|
|
|
+- **Redis**: 缓存和Token存储
|
|
|
+- **MinIO**: 对象存储(图片、文件)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🔧 开发环境配置
|
|
|
+
|
|
|
+### 小程序端配置
|
|
|
+- **API地址**: `config/api-config.js` 中配置
|
|
|
+- **第三方API**: 天行数据、极速数据API Key配置
|
|
|
+- **开发工具**: HBuilderX / 微信开发者工具
|
|
|
+
|
|
|
+### 管理后台配置
|
|
|
+- **API地址**: `src/config/api.js`
|
|
|
+- **开发服务器**: Vite Dev Server (端口: 5173)
|
|
|
+- **代理配置**: Vite代理到网关
|
|
|
+
|
|
|
+### 后端配置
|
|
|
+- **数据库**: 各服务`application.yml`中配置
|
|
|
+- **Redis**: 各服务独立配置
|
|
|
+- **MinIO**: 文件上传服务配置
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📊 项目特点
|
|
|
+
|
|
|
+### 优势
|
|
|
+1. **微服务架构**: 模块化设计,易于扩展和维护
|
|
|
+2. **前后端分离**: 小程序和管理后台独立开发
|
|
|
+3. **功能完整**: 涵盖婚恋平台核心功能
|
|
|
+4. **第三方集成**: 丰富的API集成(星座、八字、聊天等)
|
|
|
+5. **安全机制**: 完善的数据加密和认证体系
|
|
|
+
|
|
|
+### 技术亮点
|
|
|
+1. **网关统一管理**: Spring Cloud Gateway统一路由和CORS
|
|
|
+2. **实时通信**: WebSocket + 腾讯云IM双重保障
|
|
|
+3. **智能推荐**: 推荐算法服务独立
|
|
|
+4. **内容审核**: 动态审核机制
|
|
|
+5. **数据可视化**: ECharts图表展示
|
|
|
+
|
|
|
+### 待优化点
|
|
|
+1. **服务发现**: 当前使用硬编码URI,可引入Nacos/Eureka
|
|
|
+2. **配置中心**: 可引入配置中心统一管理配置
|
|
|
+3. **监控体系**: 可添加服务监控和链路追踪
|
|
|
+4. **API文档**: 可集成Swagger/Knife4j
|
|
|
+5. **测试覆盖**: 单元测试和集成测试
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🎯 后续修改建议
|
|
|
+
|
|
|
+### 代码层面
|
|
|
+1. **统一异常处理**: 各服务统一异常处理机制
|
|
|
+2. **API版本控制**: 引入版本号管理API
|
|
|
+3. **参数校验**: 统一使用Bean Validation
|
|
|
+4. **日志规范**: 统一日志格式和级别
|
|
|
+5. **代码规范**: 统一代码风格和命名规范
|
|
|
+
|
|
|
+### 架构层面
|
|
|
+1. **服务注册发现**: 引入Nacos或Eureka
|
|
|
+2. **配置中心**: 使用Nacos Config或Spring Cloud Config
|
|
|
+3. **API网关增强**: 添加限流、熔断、降级
|
|
|
+4. **分布式事务**: 引入Seata处理分布式事务
|
|
|
+5. **消息队列**: 引入RabbitMQ/Kafka处理异步任务
|
|
|
+
|
|
|
+### 功能层面
|
|
|
+1. **搜索功能**: 用户搜索、动态搜索
|
|
|
+2. **推荐算法优化**: 基于机器学习的推荐
|
|
|
+3. **数据分析**: 用户行为分析、匹配成功率分析
|
|
|
+4. **消息推送**: 集成推送服务(极光推送等)
|
|
|
+5. **支付功能**: 集成支付功能(微信支付、支付宝)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📝 关键文件位置
|
|
|
+
|
|
|
+### 配置文件
|
|
|
+- 网关配置: `gateway/src/main/resources/application.yml`
|
|
|
+- 小程序API配置: `LiangZhiYUMao/config/api-config.js`
|
|
|
+- 管理后台API配置: `marriageAdmin-vue/src/config/api.js`
|
|
|
+- 小程序路由: `LiangZhiYUMao/pages.json`
|
|
|
+- 管理后台路由: `marriageAdmin-vue/src/router/index.js`
|
|
|
+
|
|
|
+### 核心代码
|
|
|
+- 公共实体: `common/src/main/java/com/zhentao/pojo/`
|
|
|
+- 小程序工具: `LiangZhiYUMao/utils/`
|
|
|
+- 管理后台组件: `marriageAdmin-vue/src/components/`
|
|
|
+- 管理后台页面: `marriageAdmin-vue/src/views/`
|
|
|
+
|
|
|
+### 数据库脚本
|
|
|
+- 各服务SQL脚本: `service/*/src/main/resources/sql/`
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🔍 问题诊断指南
|
|
|
+
|
|
|
+### 常见问题
|
|
|
+1. **跨域问题**: 检查网关CORS配置
|
|
|
+2. **路由404**: 检查网关路由配置顺序
|
|
|
+3. **Token失效**: 检查Redis连接和Token过期时间
|
|
|
+4. **API调用失败**: 检查服务端口和网关路由
|
|
|
+5. **文件上传失败**: 检查MinIO配置和权限
|
|
|
+
|
|
|
+### 调试建议
|
|
|
+1. 开启网关DEBUG日志查看路由转发
|
|
|
+2. 检查各服务日志文件
|
|
|
+3. 使用Postman测试API接口
|
|
|
+4. 检查Redis和MySQL连接状态
|
|
|
+5. 查看小程序网络请求日志
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📚 相关文档
|
|
|
+
|
|
|
+项目包含丰富的文档:
|
|
|
+- API接口说明文档
|
|
|
+- 第三方API集成指南
|
|
|
+- 功能说明文档
|
|
|
+- 问题诊断文档
|
|
|
+- 样式优化文档
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+**报告生成时间**: 2025-01-27
|
|
|
+**分析范围**: 项目整体架构、技术栈、功能模块、数据库设计
|
|
|
+
|