562 lines
20 KiB
Markdown
562 lines
20 KiB
Markdown
|
|
# 心理测评系统技术架构设计
|
|||
|
|
|
|||
|
|
## 系统架构概述
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 用户层 │
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ 桌面浏览器 │ 移动浏览器 │ 微信小程序 │ 第三方系统API │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
↕
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 前端应用层 │
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ Vue 2.6 + Element UI + Vuex + Router │
|
|||
|
|
│ ┌────────────┬──────────────┬──────────────┬────────────┐ │
|
|||
|
|
│ │量表管理模块│ 测评执行模块 │ 统计报表模块 │ 系统配置 │ │
|
|||
|
|
│ └────────────┴──────────────┴──────────────┴────────────┘ │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
↕ (HTTP/RESTful API)
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 网关/负载均衡 │
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ Nginx / 反向代理 │
|
|||
|
|
│ ┌────────────┬──────────────┬──────────────┐ │
|
|||
|
|
│ │静态资源 │ 请求转发 │ SSL/TLS │ │
|
|||
|
|
│ └────────────┴──────────────┴──────────────┘ │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
↕
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 应用服务层 │
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ Spring Boot 2.5 + Spring Security │
|
|||
|
|
│ ┌──────────────────────────────────────────────────────┐ │
|
|||
|
|
│ │ Controller层 │ │
|
|||
|
|
│ │ ┌────────────┬──────────────┬──────────────┐ │ │
|
|||
|
|
│ │ │量表管理Controller│测评Controller│报告Controller│ │ │
|
|||
|
|
│ │ └────────────┴──────────────┴──────────────┘ │ │
|
|||
|
|
│ ├──────────────────────────────────────────────────────┤ │
|
|||
|
|
│ │ Service层 │ │
|
|||
|
|
│ │ ┌────────────┬──────────────┬──────────────┐ │ │
|
|||
|
|
│ │ │量表服务 │ 测评服务 │ 报告服务 │ │ │
|
|||
|
|
│ │ └────────────┴──────────────┴──────────────┘ │ │
|
|||
|
|
│ ├──────────────────────────────────────────────────────┤ │
|
|||
|
|
│ │ Mapper层 (MyBatis) │ │
|
|||
|
|
│ │ ┌────────────┬──────────────┬──────────────┐ │ │
|
|||
|
|
│ │ │量表Mapper │ 测评Mapper │ 报告Mapper │ │ │
|
|||
|
|
│ │ └────────────┴──────────────┴──────────────┘ │ │
|
|||
|
|
│ └──────────────────────────────────────────────────────┘ │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
↕
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 数据存储层 │
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ ┌──────────────┬──────────────┬──────────────┬─────────┐ │
|
|||
|
|
│ │ MySQL │ Redis │ 文件存储 │ TTS │ │
|
|||
|
|
│ │ (数据持久) │ (缓存/会话) │ (报告/音频) │ (语音) │ │
|
|||
|
|
│ └──────────────┴──────────────┴──────────────┴─────────┘ │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 模块划分
|
|||
|
|
|
|||
|
|
### 后端模块结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ry-news (根模块)
|
|||
|
|
├── ry-news-admin (启动模块)
|
|||
|
|
│ ├── controller (控制器层)
|
|||
|
|
│ │ ├── psychology (心理测评)
|
|||
|
|
│ │ │ ├── PsyScaleController
|
|||
|
|
│ │ │ ├── PsyAssessmentController
|
|||
|
|
│ │ │ ├── PsyReportController
|
|||
|
|
│ │ │ ├── PsyWarningController
|
|||
|
|
│ │ │ └── ...
|
|||
|
|
│ │ └── api (开放API)
|
|||
|
|
│ │ └── ApiController
|
|||
|
|
│ └── core (配置)
|
|||
|
|
│
|
|||
|
|
├── ry-news-system (系统模块)
|
|||
|
|
│ └── psychology (心理测评业务逻辑)
|
|||
|
|
│ ├── domain (实体类)
|
|||
|
|
│ │ ├── PsyScale
|
|||
|
|
│ │ ├── PsyAssessment
|
|||
|
|
│ │ └── ...
|
|||
|
|
│ ├── mapper (数据访问)
|
|||
|
|
│ │ ├── PsyScaleMapper
|
|||
|
|
│ │ ├── PsyAssessmentMapper
|
|||
|
|
│ │ └── ...
|
|||
|
|
│ ├── service (业务逻辑接口)
|
|||
|
|
│ │ ├── IPsyScaleService
|
|||
|
|
│ │ ├── IPsyAssessmentService
|
|||
|
|
│ │ └── ...
|
|||
|
|
│ └── service.impl (业务逻辑实现)
|
|||
|
|
│ ├── PsyScaleServiceImpl
|
|||
|
|
│ ├── PsyAssessmentServiceImpl
|
|||
|
|
│ └── ...
|
|||
|
|
│
|
|||
|
|
├── ry-news-framework (框架模块)
|
|||
|
|
│ ├── security (安全配置)
|
|||
|
|
│ ├── config (系统配置)
|
|||
|
|
│ └── web (通用组件)
|
|||
|
|
│
|
|||
|
|
├── ry-news-common (公共模块)
|
|||
|
|
│ ├── core (核心类)
|
|||
|
|
│ ├── utils (工具类)
|
|||
|
|
│ └── constants (常量)
|
|||
|
|
│
|
|||
|
|
├── ry-news-generator (代码生成器)
|
|||
|
|
│
|
|||
|
|
└── ry-news-quartz (定时任务)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端模块结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ruoyi-ui
|
|||
|
|
├── src
|
|||
|
|
│ ├── views
|
|||
|
|
│ │ ├── psychology (心理测评模块)
|
|||
|
|
│ │ │ ├── scale (量表管理)
|
|||
|
|
│ │ │ │ ├── index.vue (列表页)
|
|||
|
|
│ │ │ │ └── form.vue (表单页)
|
|||
|
|
│ │ │ ├── assessment (测评执行)
|
|||
|
|
│ │ │ │ ├── index.vue (测评页面)
|
|||
|
|
│ │ │ │ └── history.vue (历史记录)
|
|||
|
|
│ │ │ ├── report (测评报告)
|
|||
|
|
│ │ │ │ ├── list.vue (报告列表)
|
|||
|
|
│ │ │ │ └── detail.vue (报告详情)
|
|||
|
|
│ │ │ ├── statistics (统计分析)
|
|||
|
|
│ │ │ │ ├── group.vue (团体统计)
|
|||
|
|
│ │ │ │ └── individual.vue (个体统计)
|
|||
|
|
│ │ │ ├── warning (危机预警)
|
|||
|
|
│ │ │ │ └── index.vue (预警管理)
|
|||
|
|
│ │ │ ├── questionnaire (自定义问卷)
|
|||
|
|
│ │ │ │ └── ...
|
|||
|
|
│ │ │ ├── website (心理网站)
|
|||
|
|
│ │ │ │ └── ...
|
|||
|
|
│ │ │ └── config (系统配置)
|
|||
|
|
│ │ │ └── ...
|
|||
|
|
│ │ └── system (现有系统模块)
|
|||
|
|
│ │
|
|||
|
|
│ ├── api
|
|||
|
|
│ │ ├── psychology (测评API)
|
|||
|
|
│ │ │ ├── scale.js
|
|||
|
|
│ │ │ ├── assessment.js
|
|||
|
|
│ │ │ └── ...
|
|||
|
|
│ │ └── system (系统API)
|
|||
|
|
│ │
|
|||
|
|
│ ├── components
|
|||
|
|
│ │ ├── Psychology (测评组件)
|
|||
|
|
│ │ │ ├── ItemEditor (题目编辑器)
|
|||
|
|
│ │ │ ├── AudioPlayer (语音播放器)
|
|||
|
|
│ │ │ ├── ReportViewer (报告查看器)
|
|||
|
|
│ │ │ └── QRCodeGenerator (二维码生成器)
|
|||
|
|
│ │ └── RuoYi (现有组件)
|
|||
|
|
│ │
|
|||
|
|
│ └── assets
|
|||
|
|
│ ├── audio (语音文件)
|
|||
|
|
│ └── images (图片资源)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 数据库设计
|
|||
|
|
|
|||
|
|
### 核心表关系
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
sys_user (用户表)
|
|||
|
|
↓ (1:N)
|
|||
|
|
psy_assessment (测评记录表)
|
|||
|
|
↓ (1:N) ↓ (1:N)
|
|||
|
|
psy_assessment_answer psy_assessment_report
|
|||
|
|
↓ (N:1) ↓ (1:1)
|
|||
|
|
psy_scale_item psy_result_interpretation
|
|||
|
|
↓ (N:1) ↓ (1:1)
|
|||
|
|
psy_scale (量表表) psy_factor (因子表)
|
|||
|
|
↓ (1:N) ↓ (1:N)
|
|||
|
|
psy_factor_rule psy_factor_score
|
|||
|
|
↓ (N:1)
|
|||
|
|
psy_scale_item
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 关键表说明
|
|||
|
|
|
|||
|
|
**1. psy_scale (量表表)**
|
|||
|
|
- 存储量表基本信息
|
|||
|
|
- 关联量表类型、作者、来源
|
|||
|
|
- 支持版本管理
|
|||
|
|
|
|||
|
|
**2. psy_scale_item (题目表)**
|
|||
|
|
- 量表题目内容
|
|||
|
|
- 题目类型、是否必填、反向计分
|
|||
|
|
- 与量表多对一关系
|
|||
|
|
|
|||
|
|
**3. psy_scale_option (选项表)**
|
|||
|
|
- 题目选项内容
|
|||
|
|
- 选项分值
|
|||
|
|
- 与题目多对一关系
|
|||
|
|
|
|||
|
|
**4. psy_factor (因子表)**
|
|||
|
|
- 量表因子/维度
|
|||
|
|
- 因子描述、解释
|
|||
|
|
- 与量表多对一关系
|
|||
|
|
|
|||
|
|
**5. psy_factor_rule (因子计分规则表)**
|
|||
|
|
- 定义因子计算方法
|
|||
|
|
- 题目与因子的关系
|
|||
|
|
- 权重、计算方式
|
|||
|
|
|
|||
|
|
**6. psy_assessment (测评记录表)**
|
|||
|
|
- 测评基本信息
|
|||
|
|
- 开始/提交时间、状态
|
|||
|
|
- 用户关联(支持匿名)
|
|||
|
|
|
|||
|
|
**7. psy_assessment_answer (测评答案表)**
|
|||
|
|
- 答题记录
|
|||
|
|
- 选项/文本答案
|
|||
|
|
- 得分
|
|||
|
|
|
|||
|
|
**8. psy_factor_score (因子得分表)**
|
|||
|
|
- 各因子得分
|
|||
|
|
- 标准分、百分位
|
|||
|
|
- 与测评记录关联
|
|||
|
|
|
|||
|
|
**9. psy_assessment_report (测评报告表)**
|
|||
|
|
- 报告内容(HTML)
|
|||
|
|
- 图表数据(JSON)
|
|||
|
|
- PDF路径
|
|||
|
|
|
|||
|
|
**10. psy_warning (危机预警表)**
|
|||
|
|
- 预警记录
|
|||
|
|
- 预警因子、得分
|
|||
|
|
- 预警状态(未处理/已处理)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 核心业务流程
|
|||
|
|
|
|||
|
|
### 测评流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
sequenceDiagram
|
|||
|
|
participant User as 用户
|
|||
|
|
participant Frontend as 前端
|
|||
|
|
participant Backend as 后端
|
|||
|
|
participant DB as 数据库
|
|||
|
|
participant Redis as Redis缓存
|
|||
|
|
participant TTS as TTS服务
|
|||
|
|
|
|||
|
|
User->>Frontend: 选择量表
|
|||
|
|
Frontend->>Backend: 创建测评记录
|
|||
|
|
Backend->>DB: 插入assessment
|
|||
|
|
Backend-->>Frontend: 返回assessmentId
|
|||
|
|
|
|||
|
|
loop 答题循环
|
|||
|
|
Frontend->>Backend: 获取题目列表
|
|||
|
|
Backend->>DB: 查询题目+选项
|
|||
|
|
Backend-->>Frontend: 返回题目数据
|
|||
|
|
|
|||
|
|
Frontend->>Backend: 请求语音(TTS/缓存)
|
|||
|
|
alt 缓存有语音
|
|||
|
|
Backend->>Redis: 获取语音URL
|
|||
|
|
else 需要生成语音
|
|||
|
|
Backend->>TTS: 生成语音
|
|||
|
|
Backend->>Redis: 缓存语音URL
|
|||
|
|
end
|
|||
|
|
Backend-->>Frontend: 返回语音URL
|
|||
|
|
|
|||
|
|
User->>Frontend: 选择答案
|
|||
|
|
Frontend->>Backend: 保存答案(可暂停)
|
|||
|
|
Backend->>DB: 保存answer
|
|||
|
|
Backend-->>Frontend: 返回成功
|
|||
|
|
|
|||
|
|
alt 用户暂停
|
|||
|
|
Backend->>DB: 更新状态为暂停
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
User->>Frontend: 提交测评
|
|||
|
|
Frontend->>Backend: 提交评估
|
|||
|
|
Backend->>Backend: 计算总分
|
|||
|
|
Backend->>Backend: 计算因子分
|
|||
|
|
Backend->>DB: 保存因子得分
|
|||
|
|
|
|||
|
|
Backend->>Backend: 检测危机预警
|
|||
|
|
alt 触发预警
|
|||
|
|
Backend->>DB: 插入预警记录
|
|||
|
|
Backend->>Backend: 通知管理员
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
Backend->>Backend: 生成报告
|
|||
|
|
Backend->>DB: 保存报告
|
|||
|
|
Backend-->>Frontend: 返回报告ID
|
|||
|
|
|
|||
|
|
Frontend->>User: 展示测评报告
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 预警流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
sequenceDiagram
|
|||
|
|
participant Assessment as 测评提交
|
|||
|
|
participant Calculator as 计分服务
|
|||
|
|
participant Warning as 预警服务
|
|||
|
|
participant DB as 数据库
|
|||
|
|
participant Admin as 管理员
|
|||
|
|
|
|||
|
|
Assessment->>Calculator: 提交测评数据
|
|||
|
|
Calculator->>Calculator: 计算因子得分
|
|||
|
|
Calculator->>DB: 保存因子得分
|
|||
|
|
Calculator->>Warning: 触发预警检测
|
|||
|
|
|
|||
|
|
Warning->>DB: 查询预警规则
|
|||
|
|
Warning->>Warning: 匹配预警条件
|
|||
|
|
|
|||
|
|
alt 触发预警
|
|||
|
|
Warning->>DB: 插入预警记录
|
|||
|
|
Warning->>Admin: 发送预警通知(邮件/短信)
|
|||
|
|
Admin->>Warning: 查看预警详情
|
|||
|
|
Admin->>Warning: 处理预警
|
|||
|
|
|
|||
|
|
Note over Admin,Warning: 用户接受干预后
|
|||
|
|
Admin->>Assessment: 请求复查
|
|||
|
|
Assessment->>Warning: 提交复查结果
|
|||
|
|
Warning->>Warning: 判断是否解除预警
|
|||
|
|
|
|||
|
|
alt 解除预警
|
|||
|
|
Warning->>DB: 更新预警状态为已解除
|
|||
|
|
Warning->>Warning: 记录解除原因
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 技术选型
|
|||
|
|
|
|||
|
|
### 后端技术栈
|
|||
|
|
|
|||
|
|
| 技术 | 版本 | 用途 | 备注 |
|
|||
|
|
|------|------|------|------|
|
|||
|
|
| Spring Boot | 2.5.15 | 框架 | 稳定版本 |
|
|||
|
|
| Spring Security | 5.7 | 安全认证 | JWT + 权限控制 |
|
|||
|
|
| MyBatis | 3.x | ORM | 性能优良 |
|
|||
|
|
| MySQL | 5.7+ | 数据库 | 主存储 |
|
|||
|
|
| Redis | 6.x | 缓存 | 会话/数据缓存 |
|
|||
|
|
| Druid | 1.2.23 | 连接池 | 监控支持 |
|
|||
|
|
| JWT | 0.9.1 | 认证 | 无状态认证 |
|
|||
|
|
| POI | 4.1.2 | Excel | 导入导出 |
|
|||
|
|
| Swagger | 3.0.0 | API文档 | 接口文档 |
|
|||
|
|
| TTS | - | 语音 | 阿里云/腾讯云 |
|
|||
|
|
|
|||
|
|
### 前端技术栈
|
|||
|
|
|
|||
|
|
| 技术 | 版本 | 用途 | 备注 |
|
|||
|
|
|------|------|------|------|
|
|||
|
|
| Vue | 2.6.12 | 框架 | 稳定版本 |
|
|||
|
|
| Element UI | 2.15 | UI组件 | 丰富组件 |
|
|||
|
|
| Vuex | 3.6.0 | 状态管理 | 全局状态 |
|
|||
|
|
| Vue Router | 3.4.9 | 路由 | 单页应用 |
|
|||
|
|
| Axios | 0.28.1 | HTTP请求 | 拦截器 |
|
|||
|
|
| ECharts | 5.4.0 | 图表 | 数据可视化 |
|
|||
|
|
| QRCode | - | 二维码 | 生成扫码 |
|
|||
|
|
|
|||
|
|
### 第三方服务
|
|||
|
|
|
|||
|
|
| 服务 | 用途 | 成本 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| TTS (可选) | 语音合成 | 按量计费 |
|
|||
|
|
| OSS (可选) | 对象存储 | 按量计费 |
|
|||
|
|
| 短信服务 (可选) | 预警通知 | 按量计费 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 安全设计
|
|||
|
|
|
|||
|
|
### 1. 认证授权
|
|||
|
|
|
|||
|
|
- **JWT Token**:无状态认证
|
|||
|
|
- **RBAC**:基于角色的权限控制
|
|||
|
|
- **API Key**:开放API认证
|
|||
|
|
- **会话管理**:Redis存储
|
|||
|
|
|
|||
|
|
### 2. 数据安全
|
|||
|
|
|
|||
|
|
- **密码加密**:BCrypt
|
|||
|
|
- **SQL注入防护**:MyBatis参数化
|
|||
|
|
- **XSS防护**:输入过滤
|
|||
|
|
- **CSRF防护**:Token验证
|
|||
|
|
|
|||
|
|
### 3. 接口安全
|
|||
|
|
|
|||
|
|
- **限流**:防止恶意请求
|
|||
|
|
- **签名验证**:API请求签名
|
|||
|
|
- **IP白名单**:第三方系统访问
|
|||
|
|
- **HTTPS**:传输加密
|
|||
|
|
|
|||
|
|
### 4. 数据备份
|
|||
|
|
|
|||
|
|
- **定时备份**:每日自动备份
|
|||
|
|
- **增量备份**:减少存储
|
|||
|
|
- **异地备份**:容灾准备
|
|||
|
|
- **恢复测试**:定期演练
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 性能优化策略
|
|||
|
|
|
|||
|
|
### 1. 缓存策略
|
|||
|
|
|
|||
|
|
- **Redis缓存**:
|
|||
|
|
- 量表信息缓存(24h)
|
|||
|
|
- 题目列表缓存(24h)
|
|||
|
|
- 会话信息缓存
|
|||
|
|
- 语音URL缓存
|
|||
|
|
|
|||
|
|
- **本地缓存**:
|
|||
|
|
- 配置信息(Caffeine)
|
|||
|
|
- 字典数据
|
|||
|
|
|
|||
|
|
### 2. 数据库优化
|
|||
|
|
|
|||
|
|
- **索引优化**:核心字段建索引
|
|||
|
|
- **分页查询**:避免大查询
|
|||
|
|
- **读写分离**:主从复制
|
|||
|
|
- **连接池**:合理配置
|
|||
|
|
|
|||
|
|
### 3. 代码优化
|
|||
|
|
|
|||
|
|
- **异步处理**:报告生成
|
|||
|
|
- **批量操作**:答案提交
|
|||
|
|
- **懒加载**:关联查询
|
|||
|
|
- **分库分表**:大数据量(后期)
|
|||
|
|
|
|||
|
|
### 4. 前端优化
|
|||
|
|
|
|||
|
|
- **CDN加速**:静态资源
|
|||
|
|
- **懒加载**:路由组件
|
|||
|
|
- **虚拟滚动**:长列表
|
|||
|
|
- **图片压缩**:减少体积
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 部署架构
|
|||
|
|
|
|||
|
|
### 开发环境
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
单机部署
|
|||
|
|
├── MySQL (3306)
|
|||
|
|
├── Redis (6379)
|
|||
|
|
├── Spring Boot (8080)
|
|||
|
|
└── Vue (80)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 生产环境
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
负载均衡 (Nginx)
|
|||
|
|
├── 应用服务器1 (Spring Boot :8080)
|
|||
|
|
├── 应用服务器2 (Spring Boot :8080)
|
|||
|
|
├── 静态文件服务器
|
|||
|
|
│ └── Nginx (80/443)
|
|||
|
|
├── 数据库集群
|
|||
|
|
│ ├── MySQL Master
|
|||
|
|
│ └── MySQL Slave (读写分离)
|
|||
|
|
├── Redis集群 (主从+哨兵)
|
|||
|
|
└── 文件存储
|
|||
|
|
├── 本地存储
|
|||
|
|
└── OSS (可选)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## API设计规范
|
|||
|
|
|
|||
|
|
### RESTful规范
|
|||
|
|
|
|||
|
|
| 方法 | 用途 | 示例 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| GET | 查询 | `/psychology/scale/list` |
|
|||
|
|
| POST | 新增 | `/psychology/scale/add` |
|
|||
|
|
| PUT | 修改 | `/psychology/scale/edit` |
|
|||
|
|
| DELETE | 删除 | `/psychology/scale/remove/{id}` |
|
|||
|
|
|
|||
|
|
### 响应格式
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"msg": "操作成功",
|
|||
|
|
"data": {}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 错误码设计
|
|||
|
|
|
|||
|
|
| 错误码 | 说明 |
|
|||
|
|
|--------|------|
|
|||
|
|
| 200 | 成功 |
|
|||
|
|
| 401 | 未授权 |
|
|||
|
|
| 403 | 无权限 |
|
|||
|
|
| 404 | 资源不存在 |
|
|||
|
|
| 500 | 服务器错误 |
|
|||
|
|
| 1001 | 业务错误(自定义) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 日志与监控
|
|||
|
|
|
|||
|
|
### 日志
|
|||
|
|
|
|||
|
|
- **操作日志**:sys_oper_log
|
|||
|
|
- **登录日志**:sys_logininfor
|
|||
|
|
- **应用日志**:Logback
|
|||
|
|
- **日志分级**:DEBUG/INFO/WARN/ERROR
|
|||
|
|
|
|||
|
|
### 监控
|
|||
|
|
|
|||
|
|
- **系统监控**:CPU/内存/磁盘
|
|||
|
|
- **接口监控**:响应时间/成功率
|
|||
|
|
- **慢查询监控**:SQL性能
|
|||
|
|
- **预警通知**:邮件/短信
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 开发规范
|
|||
|
|
|
|||
|
|
### 命名规范
|
|||
|
|
|
|||
|
|
- **包名**:小写,单词用点分隔
|
|||
|
|
- **类名**:大驼峰(PascalCase)
|
|||
|
|
- **方法/变量**:小驼峰(camelCase)
|
|||
|
|
- **常量**:全大写,下划线分隔
|
|||
|
|
- **数据库表**:下划线分隔(snake_case)
|
|||
|
|
|
|||
|
|
### 代码规范
|
|||
|
|
|
|||
|
|
- **注释**:类/方法必须注释
|
|||
|
|
- **异常处理**:捕获并记录
|
|||
|
|
- **事务管理**:必要时加@Transactional
|
|||
|
|
- **参数校验**:使用@Valid注解
|
|||
|
|
- **日志输出**:关键操作记录日志
|
|||
|
|
|
|||
|
|
### Git规范
|
|||
|
|
|
|||
|
|
- **分支策略**:master/main开发,feature/功能分支
|
|||
|
|
- **提交信息**:feat/fix/docs/refactor/perf
|
|||
|
|
- **代码审查**:合并前review
|
|||
|
|
- **版本标签**:v1.0.0格式
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**文档版本**: v1.0
|
|||
|
|
**创建日期**: 2025-11-01
|
|||
|
|
**最后更新**: 待定
|
|||
|
|
|