17 KiB
17 KiB
项目结构分析报告
📋 项目概述
项目名称: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/ # 心理测评Mapper(20+个)
│ │ └── Sys*.java # 系统Mapper
│ └── service/ # 业务逻辑层
│ ├── psychology/ # 心理测评Service接口(25个)
│ └── impl/ # Service实现类
│ ├── psychology/ # 心理测评Service实现(24个)
│ └── Sys*.java # 系统Service实现
└── src/main/resources/mapper/ # MyBatis XML映射文件
├── psychology/ # 心理测评Mapper XML(39个)
└── 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/ # 心理测评API(19个)
│ │ │ ├── scale.js # 量表API
│ │ │ ├── assessment.js # 测评API
│ │ │ ├── report.js # 报告API
│ │ │ ├── questionnaire.js # 问卷API
│ │ │ └── ...
│ │ ├── system/ # 系统API(10个)
│ │ └── monitor/ # 监控API(7个)
│ ├── 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+个)
-
量表相关
psy_scale- 量表基本信息psy_scale_item- 量表题目psy_scale_option- 题目选项psy_scale_permission- 量表权限
-
测评相关
psy_assessment- 测评记录psy_assessment_answer- 测评答案psy_assessment_report- 测评报告
-
因子与计分
psy_factor- 因子定义psy_factor_rule- 因子计分规则psy_factor_score- 因子得分psy_result_interpretation- 结果解释
-
扩展功能
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+ 个
🎯 项目特点
- 模块化设计:前后端分离,Maven多模块架构
- 功能完整:覆盖心理测评全流程
- 扩展性强:支持自定义问卷、用户档案扩展
- 安全可靠:完善的权限控制和数据安全
- 多端支持:Web端 + 移动端
- 易于维护:代码规范,文档完善
📝 开发状态
已完成功能 ✅
- 第一阶段:数据库设计与初始化
- 第二阶段:核心功能模块(量表、测评、报告)
- 第三阶段D3-1:用户档案管理
- 第三阶段D3-2:自定义问卷基础功能
- 第三阶段D3-3:二维码管理功能
进行中功能 🟡
- 第三阶段剩余模块(心理网站、数据统计等)
🔗 相关文档
- 技术架构设计:
z_Project change/进度汇总/3-技术架构设计.md - 开发计划:
z_Project change/进度汇总/1-开发计划.md - 使用指南:
使用指南-*.md - 项目改造说明:
项目介绍/项目改造说明.md
报告生成时间:2025-01-27
项目版本:1.0.0
分析状态:✅ 完成