xinli/项目结构分析报告.md
2025-11-26 14:14:19 +08:00

491 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目结构分析报告
## 📋 项目概述
**项目名称**AI心理健康测评系统 (ry-xinli)
**项目类型**:心理健康测评管理系统
**技术架构**:前后端分离 + 移动端
**开发框架**:基于 RuoYi-Vue 框架改造
**版本**1.0.0
**开发者**wanxiubin
---
## 🏗️ 整体架构
### 架构分层
```
┌─────────────────────────────────────────────────────────────┐
│ 用户层 │
│ 桌面浏览器 │ 移动浏览器 │ 微信小程序 │ 第三方系统API │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 前端应用层 │
│ Vue 2.6 + Element UI + Vuex + Router │
└─────────────────────────────────────────────────────────────┘
↕ (HTTP/RESTful API)
┌─────────────────────────────────────────────────────────────┐
│ 应用服务层 │
│ Spring Boot 2.5 + Spring Security │
│ Controller层 → Service层 → Mapper层 (MyBatis) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────────┬──────────────┬──────────────┐ │
│ │ MySQL │ Redis │ 文件存储 │ │
│ │ (数据持久) │ (缓存/会话) │ (报告/音频) │ │
│ └──────────────┴──────────────┴──────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
---
## 📦 后端模块结构
### Maven 多模块架构
```
ry-xinli (根模块)
├── ry-xinli-admin # 启动模块Web入口
├── ry-xinli-system # 系统模块(业务逻辑)
├── ry-xinli-framework # 框架模块(安全配置)
├── ry-xinli-common # 公共模块(工具类)
├── ry-xinli-generator # 代码生成器
└── ry-xinli-quartz # 定时任务
```
### 模块详细说明
#### 1. ry-xinli-admin启动模块
**路径**`ry-xinli-admin/`
**职责**Web 应用入口,包含 Controller 层和配置
**结构**
```
ry-xinli-admin/
├── src/main/java/com/ddnai/
│ ├── XinliApplication.java # 启动类
│ └── web/controller/ # 控制器层
│ ├── psychology/ # 心理测评控制器20个
│ │ ├── PsyScaleController.java
│ │ ├── PsyAssessmentController.java
│ │ ├── PsyAssessmentReportController.java
│ │ ├── PsyFactorController.java
│ │ ├── PsyQrcodeController.java
│ │ ├── PsyQuestionnaireController.java
│ │ ├── PsyUserProfileController.java
│ │ ├── PsyWarningController.java
│ │ └── ...
│ ├── system/ # 系统管理控制器15个
│ │ ├── SysUserController.java
│ │ ├── SysRoleController.java
│ │ ├── SysMenuController.java
│ │ └── ...
│ ├── monitor/ # 监控控制器5个
│ ├── common/ # 通用控制器
│ └── api/ # 开放API
└── src/main/resources/
├── application.yml # 应用配置
└── mapper/ # MyBatis映射文件
```
**关键配置**
- 服务端口30081
- 文件上传路径:`D:\wwwroot\xinli_web\web\profile\uploadPath`
- Redis 缓存配置
- 数据库连接配置
#### 2. ry-xinli-system系统模块
**路径**`ry-xinli-system/`
**职责**:核心业务逻辑,包含 Domain、Mapper、Service
**结构**
```
ry-xinli-system/
├── src/main/java/com/ddnai/system/
│ ├── domain/ # 实体类
│ │ ├── psychology/ # 心理测评实体20+个)
│ │ │ ├── PsyScale.java # 量表
│ │ │ ├── PsyScaleItem.java # 量表题目
│ │ │ ├── PsyScaleOption.java # 题目选项
│ │ │ ├── PsyAssessment.java # 测评记录
│ │ │ ├── PsyAssessmentAnswer.java # 测评答案
│ │ │ ├── PsyAssessmentReport.java # 测评报告
│ │ │ ├── PsyFactor.java # 因子
│ │ │ ├── PsyFactorRule.java # 因子规则
│ │ │ ├── PsyQrcode.java # 二维码
│ │ │ ├── PsyQuestionnaire.java # 自定义问卷
│ │ │ ├── PsyUserProfile.java # 用户档案
│ │ │ ├── PsyWarning.java # 危机预警
│ │ │ └── ...
│ │ └── vo/ # 视图对象
│ ├── mapper/ # 数据访问层
│ │ ├── psychology/ # 心理测评Mapper20+个)
│ │ └── Sys*.java # 系统Mapper
│ └── service/ # 业务逻辑层
│ ├── psychology/ # 心理测评Service接口25个
│ └── impl/ # Service实现类
│ ├── psychology/ # 心理测评Service实现24个
│ └── Sys*.java # 系统Service实现
└── src/main/resources/mapper/ # MyBatis XML映射文件
├── psychology/ # 心理测评Mapper XML39个
└── system/ # 系统Mapper XML
```
#### 3. ry-xinli-framework框架模块
**路径**`ry-xinli-framework/`
**职责**:框架配置、安全、通用组件
**主要功能**
- Spring Security 安全配置
- 系统配置管理
- 通用 Web 组件
- 拦截器、过滤器
#### 4. ry-xinli-common公共模块
**路径**`ry-xinli-common/`
**职责**:公共工具类、常量、核心类
**结构**
```
ry-xinli-common/
├── src/main/java/com/ddnai/common/
│ ├── core/ # 核心类
│ ├── utils/ # 工具类
│ │ ├── file/ # 文件工具
│ │ ├── http/ # HTTP工具
│ │ ├── ip/ # IP工具
│ │ ├── poi/ # Excel工具
│ │ ├── sign/ # 签名工具
│ │ └── ...
│ ├── constants/ # 常量
│ └── config/ # 配置类
```
#### 5. ry-xinli-generator代码生成器
**路径**`ry-xinli-generator/`
**职责**:代码自动生成工具
#### 6. ry-xinli-quartz定时任务
**路径**`ry-xinli-quartz/`
**职责**:定时任务调度
---
## 🎨 前端模块结构
### Vue 前端项目
**路径**`xinli-ui/`
**技术栈**
- Vue 2.6.12
- Element UI 2.15.14
- Vuex 3.6.0
- Vue Router 3.4.9
- Axios 0.28.1
- ECharts 5.4.0
**结构**
```
xinli-ui/
├── src/
│ ├── api/ # API接口定义40个文件
│ │ ├── psychology/ # 心理测评API19个
│ │ │ ├── scale.js # 量表API
│ │ │ ├── assessment.js # 测评API
│ │ │ ├── report.js # 报告API
│ │ │ ├── questionnaire.js # 问卷API
│ │ │ └── ...
│ │ ├── system/ # 系统API10个
│ │ └── monitor/ # 监控API7个
│ ├── views/ # 页面视图76个Vue文件
│ │ ├── psychology/ # 心理测评页面
│ │ │ ├── scale/ # 量表管理
│ │ │ ├── assessment/ # 测评执行
│ │ │ ├── report/ # 测评报告
│ │ │ ├── questionnaire/ # 自定义问卷
│ │ │ ├── qrcode/ # 二维码管理
│ │ │ ├── userProfile/ # 用户档案
│ │ │ ├── warning/ # 危机预警
│ │ │ └── website/ # 心理网站
│ │ └── system/ # 系统管理页面
│ ├── components/ # 组件32个
│ │ ├── Psychology/ # 心理测评组件
│ │ └── RuoYi/ # 若依通用组件
│ ├── store/ # Vuex状态管理8个文件
│ ├── router/ # 路由配置
│ ├── utils/ # 工具函数24个文件
│ ├── assets/ # 静态资源
│ │ ├── icons/ # 图标89个SVG
│ │ ├── images/ # 图片
│ │ └── styles/ # 样式文件
│ └── main.js # 入口文件
├── public/ # 公共资源
└── package.json # 依赖配置
```
---
## 📱 移动端项目
### Android 应用
**路径**`xinli-App/`
**技术栈**Android + Gradle
**结构**
```
xinli-App/
├── app/
│ ├── src/main/
│ │ ├── java/ # Java代码
│ │ ├── res/ # 资源文件
│ │ └── AndroidManifest.xml # 清单文件
│ └── build.gradle # 构建配置
├── build.gradle # 项目构建配置
├── gradle/ # Gradle配置
└── README.md # 说明文档
```
---
## 🗄️ 数据库设计
### 核心表结构
#### 心理测评核心表20+个)
1. **量表相关**
- `psy_scale` - 量表基本信息
- `psy_scale_item` - 量表题目
- `psy_scale_option` - 题目选项
- `psy_scale_permission` - 量表权限
2. **测评相关**
- `psy_assessment` - 测评记录
- `psy_assessment_answer` - 测评答案
- `psy_assessment_report` - 测评报告
3. **因子与计分**
- `psy_factor` - 因子定义
- `psy_factor_rule` - 因子计分规则
- `psy_factor_score` - 因子得分
- `psy_result_interpretation` - 结果解释
4. **扩展功能**
- `psy_questionnaire` - 自定义问卷
- `psy_questionnaire_item` - 问卷题目
- `psy_questionnaire_answer` - 问卷答案
- `psy_user_profile` - 用户档案
- `psy_qrcode` - 二维码管理
- `psy_warning` - 危机预警
- `psy_website_content` - 心理网站内容
#### 系统管理表
- `sys_user` - 用户表
- `sys_role` - 角色表
- `sys_menu` - 菜单表
- `sys_dept` - 部门表
- `sys_config` - 系统配置
- `sys_dict_*` - 字典表
---
## 🔧 技术栈详情
### 后端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Spring Boot | 2.5.15 | 应用框架 |
| Spring Security | 5.7.14 | 安全框架 |
| MyBatis | - | ORM框架 |
| MySQL | - | 数据库 |
| Redis | - | 缓存/会话 |
| Druid | 1.2.23 | 数据库连接池 |
| JWT | 0.9.1 | 令牌认证 |
| Swagger | 3.0.0 | API文档 |
| Apache POI | 4.1.2 | Excel处理 |
| PDFBox | 2.0.29 | PDF处理 |
| ZXing | 3.5.1 | 二维码生成 |
### 前端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Vue | 2.6.12 | 前端框架 |
| Element UI | 2.15.14 | UI组件库 |
| Vuex | 3.6.0 | 状态管理 |
| Vue Router | 3.4.9 | 路由管理 |
| Axios | 0.28.1 | HTTP客户端 |
| ECharts | 5.4.0 | 图表库 |
| Quill | 2.0.2 | 富文本编辑器 |
---
## 📊 核心功能模块
### 1. 量表管理模块 ✅
- 量表CRUD操作
- 量表导入导出Excel
- 量表状态管理
- 量表权限控制
### 2. 题目管理模块 ✅
- 题目编辑(富文本)
- 选项配置
- 批量导入题目
- 题目排序拖拽
### 3. 因子与计分模块 ✅
- 因子配置
- 因子公式设置
- 权重配置
- 反向计分设置
### 4. 测评执行模块 ✅
- 开始测评
- 暂停/恢复测评
- 提交测评
- 防重复提交
- 断点续测
### 5. 报告生成模块 ✅
- 自动生成报告
- 因子分计算
- 结果解释
- 报告导出PDF/Excel
### 6. 用户档案管理 ✅
- 档案字段自定义
- 不同年龄段模板
- 档案信息CRUD
- 档案导入导出
### 7. 自定义问卷模块 ✅
- 问卷创建/编辑
- 多种题目类型支持9种
- 自动计分
- 成绩排名统计
### 8. 二维码功能 ✅
- 生成测评二维码
- 扫码测试
- 扫码查看报告
- 扫码注册/登录
### 9. 危机预警模块
- 预警规则设置
- 预警记录管理
- 预警解除记录
### 10. 心理网站模块
- 文章发布/编辑
- 栏目管理
- 留言评论
- 个性化配置
---
## 📁 项目目录结构总览
```
xinli/
├── bin/ # 构建脚本
│ ├── clean.bat
│ ├── package.bat
│ └── run.bat
├── doc/ # 文档
├── pom.xml # Maven根配置
├── ry-xinli-admin/ # 启动模块
├── ry-xinli-system/ # 系统模块
├── ry-xinli-framework/ # 框架模块
├── ry-xinli-common/ # 公共模块
├── ry-xinli-generator/ # 代码生成器
├── ry-xinli-quartz/ # 定时任务
├── xinli-ui/ # Vue前端
├── xinli-App/ # Android移动端
├── sql/ # SQL脚本
├── z_Project change/ # 项目变更文档
│ ├── 进度汇总/ # 开发进度文档
│ └── 量表示例/ # 量表示例数据
└── 项目介绍/ # 项目介绍文档
```
---
## 🔐 安全配置
- Spring Security 认证授权
- JWT Token 机制
- 密码加密存储
- XSS 攻击防护
- 防盗链配置
- 操作日志记录
---
## 📈 项目规模统计
### 代码统计(估算)
| 模块 | Java文件 | Vue文件 | 总行数(估算) |
|------|---------|---------|---------------|
| 后端 | 400+ | - | 50,000+ |
| 前端 | - | 76 | 30,000+ |
| 移动端 | 1 | - | 1,000+ |
| **总计** | **400+** | **76** | **80,000+** |
### 功能模块统计
- **Controller**: 40+ 个
- **Service**: 50+ 个
- **Mapper**: 60+ 个
- **实体类**: 30+ 个
- **前端页面**: 76 个
- **API接口**: 100+ 个
---
## 🎯 项目特点
1. **模块化设计**前后端分离Maven多模块架构
2. **功能完整**:覆盖心理测评全流程
3. **扩展性强**:支持自定义问卷、用户档案扩展
4. **安全可靠**:完善的权限控制和数据安全
5. **多端支持**Web端 + 移动端
6. **易于维护**:代码规范,文档完善
---
## 📝 开发状态
### 已完成功能 ✅
- 第一阶段:数据库设计与初始化
- 第二阶段:核心功能模块(量表、测评、报告)
- 第三阶段D3-1用户档案管理
- 第三阶段D3-2自定义问卷基础功能
- 第三阶段D3-3二维码管理功能
### 进行中功能 🟡
- 第三阶段剩余模块(心理网站、数据统计等)
---
## 🔗 相关文档
- 技术架构设计:`z_Project change/进度汇总/3-技术架构设计.md`
- 开发计划:`z_Project change/进度汇总/1-开发计划.md`
- 使用指南:`使用指南-*.md`
- 项目改造说明:`项目介绍/项目改造说明.md`
---
**报告生成时间**2025-01-27
**项目版本**1.0.0
**分析状态**:✅ 完成