# 项目架构分析报告 ## 📋 项目概述 **项目名称**: 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 **分析范围**: 项目整体架构、技术栈、功能模块、数据库设计