Selaa lähdekoodia

评论区和评论数不一致的bug

caojp 1 kuukausi sitten
vanhempi
commit
add927c878

+ 227 - 0
marriageAdmin-vue/src/views/course/CourseDetail.vue

@@ -0,0 +1,227 @@
+<template>
+  <div class="course-detail-container">
+    <h2 class="page-title">课程详情</h2>
+    
+    <el-card shadow="never">
+      <div v-loading="loading" class="detail-content">
+        <el-descriptions :column="2" border>
+          <el-descriptions-item label="课程名称" :span="2">
+            <span class="detail-value">{{ course.name || '-' }}</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="情感分类">
+            <el-tag type="info">{{ course.categoryName || course.category_name || '-' }}</el-tag>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="讲师">
+            <span class="detail-value">{{ course.instructor || '-' }}</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程时长">
+            <span class="detail-value">{{ course.duration || 0 }} 分钟</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程价格">
+            <span v-if="course.price > 0" class="amount-text">¥{{ course.price }}</span>
+            <el-tag v-else type="success" size="small">免费</el-tag>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程评分">
+            <el-rate v-model="course.rating" :max="5" disabled allow-half />
+            <span style="margin-left: 10px;">{{ course.rating || '-' }}</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="是否推荐">
+            <el-tag :type="(course.isRecommended || course.is_recommended) === 1 ? 'success' : 'info'">
+              {{ (course.isRecommended || course.is_recommended) === 1 ? '推荐' : '普通' }}
+            </el-tag>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="状态">
+            <el-tag :type="course.status === 1 ? 'success' : 'danger'">
+              {{ course.status === 1 ? '上架' : '下架' }}
+            </el-tag>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="报名人数">
+            <span class="detail-value">{{ course.participants || 0 }} 人</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程封面" :span="2">
+            <div v-if="coverImage" class="cover-display">
+              <el-image
+                :src="coverImage"
+                fit="cover"
+                class="cover-preview-large"
+                :preview-src-list="[coverImage]"
+                preview-teleported
+                hide-on-click-modal
+              >
+                <template #error>
+                  <div class="image-error">
+                    <el-icon><Picture /></el-icon>
+                    <span>加载失败</span>
+                  </div>
+                </template>
+              </el-image>
+            </div>
+            <span v-else class="text-muted">暂无封面</span>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程描述" :span="2">
+            <div class="text-content">{{ course.description || '暂无描述' }}</div>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="课程内容" :span="2">
+            <div class="text-content">{{ course.content || '暂无内容' }}</div>
+          </el-descriptions-item>
+          
+          <el-descriptions-item label="创建时间" :span="2">
+            <span class="detail-value">{{ course.createdTime || course.created_time || '-' }}</span>
+          </el-descriptions-item>
+        </el-descriptions>
+      </div>
+      
+      <div class="detail-actions">
+        <el-button type="primary" @click="handleEdit">编辑课程</el-button>
+        <el-button @click="$router.back()">返回</el-button>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script setup>
+import { ref, computed, onMounted } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { ElMessage } from 'element-plus'
+import { Picture } from '@element-plus/icons-vue'
+import request from '@/utils/request'
+import { API_ENDPOINTS } from '@/config/api'
+
+const route = useRoute()
+const router = useRouter()
+const loading = ref(false)
+const course = ref({})
+
+// 计算封面图片URL
+const coverImage = computed(() => {
+  return course.value.coverImage || course.value.cover_image || course.value.cover || ''
+})
+
+const loadDetail = async (id) => {
+  loading.value = true
+  try {
+    const response = await request.get(`${API_ENDPOINTS.COURSE_DETAIL}/${id}`)
+    if (response.code === 200) {
+      course.value = response.data || {}
+    } else {
+      ElMessage.error(response.message || '加载详情失败')
+    }
+  } catch (error) {
+    console.error('加载详情失败:', error)
+    ElMessage.error('加载详情失败:' + (error.message || '网络错误'))
+  } finally {
+    loading.value = false
+  }
+}
+
+const handleEdit = () => {
+  if (course.value.id) {
+    router.push(`/course/edit/${course.value.id}`)
+  }
+}
+
+onMounted(() => {
+  if (route.params.id) {
+    loadDetail(route.params.id)
+  } else {
+    ElMessage.error('缺少课程ID')
+    router.back()
+  }
+})
+</script>
+
+<style scoped>
+.course-detail-container {
+  padding: 0;
+}
+
+.page-title {
+  font-size: 24px;
+  font-weight: bold;
+  color: #333;
+  margin: 0 0 20px 0;
+}
+
+.detail-content {
+  min-height: 200px;
+}
+
+.detail-value {
+  color: #333;
+  font-weight: 500;
+}
+
+.amount-text {
+  color: #f56c6c;
+  font-size: 16px;
+  font-weight: bold;
+}
+
+.text-content {
+  color: #666;
+  line-height: 1.8;
+  white-space: pre-wrap;
+  word-break: break-word;
+}
+
+.text-muted {
+  color: #999;
+}
+
+.cover-display {
+  margin-top: 10px;
+}
+
+.cover-preview-large {
+  width: 300px;
+  height: 168px;
+  border-radius: 6px;
+  border: 1px solid #dcdfe6;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.cover-preview-large:hover {
+  border-color: #409eff;
+  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
+}
+
+.image-error {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
+  color: #909399;
+  font-size: 14px;
+}
+
+.image-error .el-icon {
+  font-size: 32px;
+  margin-bottom: 8px;
+}
+
+.detail-actions {
+  margin-top: 30px;
+  padding-top: 20px;
+  border-top: 1px solid #ebeef5;
+  text-align: right;
+}
+
+.detail-actions .el-button {
+  margin-left: 10px;
+}
+</style>
+

+ 40 - 0
service/admin/src/main/java/com/zhentao/vo/UserVipListVO.java

@@ -0,0 +1,40 @@
+package com.zhentao.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * VIP用户列表VO - 用于返回VIP用户列表信息
+ */
+@Data
+public class UserVipListVO implements Serializable {
+    
+    private static final long serialVersionUID = 1L;
+    
+    // 用户基本信息
+    @JsonProperty("userId")
+    private Integer userId;
+    
+    @JsonProperty("nickname")
+    private String nickname;
+    
+    // VIP信息
+    @JsonProperty("vipLevel")
+    private String vipLevel;  // VIP等级名称(如:月度VIP、季度VIP、年度VIP)
+    
+    @JsonProperty("vipStartTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime vipStartTime;  // VIP开通时间
+    
+    @JsonProperty("vipEndTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime vipEndTime;  // VIP到期时间
+    
+    @JsonProperty("remainingDays")
+    private Integer remainingDays;  // VIP剩余天数
+}
+

+ 251 - 0
技术栈快速参考.md

@@ -0,0 +1,251 @@
+# 技术栈快速参考
+
+## 🎯 一、项目结构
+
+```
+XINxiangqin/
+├── gateway/              # API网关 (Spring Cloud Gateway)
+├── common/               # 公共模块
+├── service/              # 业务服务
+│   ├── login/           # 登录服务
+│   ├── homePage/        # 首页服务 (8081)
+│   ├── dynamic/         # 动态服务 (8086)
+│   ├── websocket/       # 聊天服务 (1004)
+│   ├── randomMatch/     # 匹配服务 (1003)
+│   ├── Essential/       # 基础服务 (1005)
+│   ├── Recommend/       # 推荐服务
+│   └── admin/           # 管理端服务 (8088)
+├── LiangZhiYUMao/        # 小程序前端 (uni-app)
+└── marriageAdmin-vue/    # 管理后台 (Vue3)
+```
+
+## 🔧 二、技术栈清单
+
+### 后端技术栈
+
+| 技术 | 版本 | 用途 |
+|------|------|------|
+| Java | 8 | 开发语言 |
+| Spring Boot | 2.7.15 | 核心框架 |
+| Spring Cloud | 2021.0.8 | 微服务框架 |
+| Spring Cloud Alibaba | 2021.0.5.0 | 阿里云组件 |
+| MyBatis-Plus | 3.5.3 | ORM框架 |
+| MySQL | 8.0.33 | 数据库 |
+| Redis | - | 缓存/Token存储 |
+| MinIO | 7.1.0 | 对象存储 |
+| Lombok | 1.18.30 | 代码简化 |
+| Maven | - | 构建工具 |
+
+### 前端技术栈
+
+#### 小程序端
+| 技术 | 版本 | 用途 |
+|------|------|------|
+| uni-app | - | 跨平台框架 |
+| Vue | 2 | 前端框架 |
+| Axios | 1.12.2 | HTTP客户端 |
+| tim-wx-sdk | 2.27.6 | 腾讯云IM |
+
+#### 管理后台
+| 技术 | 版本 | 用途 |
+|------|------|------|
+| Vue | 3.5.22 | 前端框架 |
+| Element Plus | 2.11.5 | UI组件库 |
+| Pinia | 3.0.3 | 状态管理 |
+| Vue Router | 4.5.1 | 路由管理 |
+| Vite | 7.1.7 | 构建工具 |
+| ECharts | 6.0.0 | 图表库 |
+| Axios | 1.12.2 | HTTP客户端 |
+
+## 🌐 三、服务端口映射
+
+| 服务名称 | 端口 | 路由前缀 | 说明 |
+|---------|------|---------|------|
+| Gateway | 8083 | - | API网关(统一入口) |
+| HomePage | 8081 | `/api/**` | 首页、公告服务 |
+| Dynamic | 8086 | `/api/dynamic/**` | 动态、系统消息 |
+| WebSocket | 1004 | `/ws/chat/**`, `/api/chat/**` | 聊天服务 |
+| RandomMatch | 1003 | `/match/**` | 匹配服务 |
+| Essential | 1005 | `/api/user/**` | 用户基础服务 |
+| Admin | 8088 | `/admin/**`, `/api/admin/**` | 管理端服务 |
+
+## 📁 四、关键目录结构
+
+### 后端关键目录
+```
+service/{module}/src/main/java/com/zhentao/
+├── controller/          # 控制器层
+├── service/             # 服务层
+├── mapper/              # 数据访问层
+├── pojo/                # 实体类
+└── config/              # 配置类
+
+service/{module}/src/main/resources/
+├── application.yml      # 服务配置
+└── sql/                 # SQL脚本
+```
+
+### 小程序关键目录
+```
+LiangZhiYUMao/
+├── pages/               # 页面文件
+├── components/          # 组件
+├── utils/               # 工具函数
+│   ├── api.js          # API封装
+│   ├── chat-api.js     # 聊天API
+│   └── userAuth.js     # 用户认证
+├── config/              # 配置文件
+│   ├── api-config.js   # API配置
+│   └── match-config.js  # 匹配配置
+└── static/              # 静态资源
+```
+
+### 管理后台关键目录
+```
+marriageAdmin-vue/src/
+├── views/               # 页面组件
+├── components/         # 通用组件
+├── router/              # 路由配置
+├── stores/              # 状态管理
+├── utils/               # 工具函数
+└── config/              # 配置文件
+    └── api.js          # API配置
+```
+
+## 🔑 五、核心配置文件
+
+### 1. 网关配置
+**文件**: `gateway/src/main/resources/application.yml`
+- 路由规则
+- CORS配置
+- WebSocket支持
+
+### 2. 小程序API配置
+**文件**: `LiangZhiYUMao/config/api-config.js`
+- 天行数据API配置
+- 极速数据API配置
+- 第三方API Key
+
+### 3. 管理后台API配置
+**文件**: `marriageAdmin-vue/src/config/api.js`
+- API基础地址
+- 接口端点定义
+
+### 4. 小程序路由配置
+**文件**: `LiangZhiYUMao/pages.json`
+- 页面路由
+- 导航栏配置
+
+### 5. 管理后台路由配置
+**文件**: `marriageAdmin-vue/src/router/index.js`
+- 路由定义
+- 路由守卫
+
+## 🗄️ 六、核心数据表
+
+### 用户相关
+- `users` - 用户主表
+- `user_profile` - 用户扩展信息
+- `vip` - VIP会员
+- `blacklist` - 黑名单
+
+### 社交相关
+- `user_dynamics` - 用户动态
+- `dynamic_comments` - 动态评论
+- `dynamic_likes` - 动态点赞
+- `dynamic_reports` - 动态举报
+
+### 聊天相关
+- `chat_messages` - 聊天消息
+- `chat_sessions` - 聊天会话
+
+### 业务相关
+- `activities` - 活动
+- `matchmakers` - 红娘
+- `courses` - 课程
+- `success_cases` - 成功案例
+- `announcements` - 公告
+- `banners` - 轮播图
+
+## 🔐 七、安全机制
+
+| 安全措施 | 实现方式 |
+|---------|---------|
+| 手机号加密 | AES-256加密 |
+| 密码加密 | bcrypt哈希 |
+| Token认证 | JWT + Redis |
+| CORS | 网关统一处理 |
+| 跨域 | 网关配置 |
+
+## 📡 八、API接口分类
+
+### 用户相关
+- `/api/user/**` - 用户信息、资料管理
+
+### 动态相关
+- `/api/dynamic/**` - 动态CRUD
+- `/api/message/**` - 系统消息
+
+### 匹配相关
+- `/match/**` - 匹配算法
+
+### 聊天相关
+- `/api/chat/**` - 聊天REST API
+- `/ws/chat/**` - WebSocket实时聊天
+
+### 管理相关
+- `/admin/**` - 管理端页面
+- `/api/admin/**` - 管理端API
+
+## 🚀 九、启动顺序建议
+
+1. **基础服务**
+   - MySQL数据库
+   - Redis缓存
+   - MinIO对象存储
+
+2. **后端服务**(按依赖顺序)
+   - common模块(公共模块)
+   - Essential服务(基础服务)
+   - HomePage服务
+   - Dynamic服务
+   - WebSocket服务
+   - RandomMatch服务
+   - Recommend服务
+   - Admin服务
+   - Gateway网关(最后启动)
+
+3. **前端服务**
+   - 管理后台:`npm run dev` (端口: 5173)
+   - 小程序:使用HBuilderX或微信开发者工具
+
+## 🔍 十、常见问题排查
+
+| 问题 | 检查项 |
+|------|--------|
+| 跨域问题 | 网关CORS配置 |
+| 路由404 | 网关路由配置顺序 |
+| Token失效 | Redis连接、Token过期时间 |
+| API调用失败 | 服务端口、网关路由 |
+| 文件上传失败 | MinIO配置、权限 |
+
+## 📚 十一、第三方服务
+
+| 服务 | 用途 | 配置位置 |
+|------|------|---------|
+| 天行数据API | 星座、生肖、八字 | `LiangZhiYUMao/config/api-config.js` |
+| 极速数据API | 八字排盘 | `LiangZhiYUMao/config/api-config.js` |
+| 腾讯云IM | 实时聊天 | `LiangZhiYUMao/utils/tim-manager.js` |
+
+## 🎯 十二、开发工具推荐
+
+- **后端**: IntelliJ IDEA
+- **前端**: VS Code / HBuilderX
+- **数据库**: Navicat / DBeaver
+- **API测试**: Postman
+- **版本控制**: Git
+
+---
+
+**最后更新**: 2025-01-27
+

+ 401 - 0
项目架构分析报告.md

@@ -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  
+**分析范围**: 项目整体架构、技术栈、功能模块、数据库设计
+