xinli/z_Project change/进度汇总/6-第二阶段完成总结与第三阶段设计.md
2025-11-12 15:25:47 +08:00

17 KiB
Raw Blame History

第二阶段完成总结与第三阶段详细设计

📊 第二阶段完成情况总结

已完成的核心功能

D2-1: 量表管理模块

  • 后端实体类、Mapper、Service、Controller完整
  • 前端列表页、表单功能完整
  • API接口完整
  • Excel导入导出功能待开发非核心

D2-2: 题目与选项管理

  • 后端CRUD完整
  • 前端题目管理页面完整
  • 选项配置界面完整
  • 批量导入功能(待开发,非核心)

D2-3: 因子与计分规则

  • 后端CRUD完整
  • 前端因子配置页面完整
  • 计分规则管理完整
  • 公式编辑器(待开发,可手动配置)

D2-4: 测评执行模块

  • 开始测评接口
  • 获取题目接口
  • 保存答案接口
  • 暂停测评接口
  • 恢复测评接口
  • 提交测评接口 (包含计分逻辑)
  • 前端答题界面完整
  • 进度条组件
  • 暂停/恢复功能

D2-6: 测评报告生成

  • 后端实体类、Mapper、Service、Controller完整
  • 报告自动生成服务 (核心算法已实现)
  • 因子得分计算
  • 结果解释匹配
  • HTML报告生成
  • 前端报告展示页面
  • 前端报告详情页面
  • 前端解释配置页面
  • PDF生成功能预留非核心

⚠️ 未完成但非阻塞的功能

D2-5: 语音读题功能 (可选功能)

  • 待第三阶段或后续开发
  • 不影响核心测评流程

D2-7: 危机预警模块 (重要但非紧急)

  • 待第三阶段开发
  • 核心测评流程已打通

🎯 第二阶段完成度评估

核心功能完成度100%

辅助功能完成度70% 🟡

  • 核心测评流程:开始 → 答题 → 暂停/恢复 → 提交 → 报告生成
  • 菜单配置和权限
  • 可在浏览器正常运行

总体进度:第二阶段核心任务已完成,可以进入第三阶段


🚀 第三阶段扩展功能开发6天

阶段目标

完成用户档案管理、自定义问卷、二维码、心理网站、数据统计、权限管理等扩展功能,提升系统实用性和用户体验。

第三阶段详细设计


D3-1: 用户档案管理1天

功能概述

支持自定义用户档案字段,不同年龄段可使用不同模板,支持批量导入导出。

数据库设计

已创建表:psy_user_profile(见 psy_assessment_system_extension.sql

后端开发

1. 实体类(已完成表结构)

// ry-news-system/src/main/java/com/ddnai/system/domain/psychology/PsyUserProfile.java
// 需要补充:档案模板配置实体

需要创建的类:

  • PsyUserProfile - 用户档案实体(已完成表结构)
  • PsyProfileTemplate - 档案模板配置需创建新表或使用JSON存储

2. Mapper接口

// ry-news-system/src/main/java/com/ddnai/system/mapper/psychology/PsyUserProfileMapper.java
// 功能:
// - selectUserProfileByUserId(Long userId)
// - selectUserProfileList(PsyUserProfile profile)
// - insertUserProfile(PsyUserProfile profile)
// - updateUserProfile(PsyUserProfile profile)
// - deleteUserProfileById(Long profileId)
// - batchInsertUserProfile(List<PsyUserProfile> list) // 批量导入

3. Service接口和实现

// IPsyUserProfileService.java
public interface IPsyUserProfileService {
    List<PsyUserProfile> selectUserProfileList(PsyUserProfile profile);
    PsyUserProfile selectUserProfileByUserId(Long userId);
    int insertUserProfile(PsyUserProfile profile);
    int updateUserProfile(PsyUserProfile profile);
    int deleteUserProfileByIds(Long[] profileIds);
    AjaxResult importUserProfile(MultipartFile file);
    void exportUserProfile(HttpServletResponse response);
    // 模板管理
    List<Map<String, Object>> getProfileTemplates();
    int saveProfileTemplate(String templateName, List<Map<String, Object>> fields);
}

4. Controller

// PsyUserProfileController.java
@RestController
@RequestMapping("/psychology/profile")
public class PsyUserProfileController {
    // CRUD接口
    // 批量导入
    // 导出Excel
    // 模板管理接口
}

前端开发

1. API接口

// ruoyi-ui/src/api/psychology/profile.js
export function listProfile(query) { }
export function getProfile(userId) { }
export function addProfile(data) { }
export function updateProfile(data) { }
export function delProfile(ids) { }
export function importProfile(data) { }
export function exportProfile(query) { }
export function getProfileTemplates() { }
export function saveProfileTemplate(data) { }

2. 页面组件

ruoyi-ui/src/views/psychology/profile/
├── index.vue          # 档案列表页
├── form.vue           # 档案编辑表单
├── template.vue       # 模板配置页
└── import.vue         # 批量导入页

功能要点:

  • 支持动态字段配置
  • 不同年龄段显示不同字段模板
  • Excel批量导入导出
  • 字段验证规则配置

开发任务清单

  • 创建 PsyUserProfile 实体类
  • 创建 Mapper 接口和XML
  • 创建 Service 接口和实现
  • 创建 Controller
  • 创建前端API文件
  • 创建档案列表页
  • 创建档案编辑表单
  • 创建模板配置页面
  • 实现Excel导入导出
  • 添加菜单配置和权限

D3-2: 自定义问卷模块1.5天)

功能概述

支持创建自定义问卷,支持多种题目类型(单选、多选、判断、填空、排序、计算、简答、问答、作文等),支持自动计分和成绩排名。

数据库设计

已创建表:psy_questionnaire(见 psy_assessment_system_extension.sql

需要补充的表:

-- 问卷题目表(复用或新建)
CREATE TABLE `psy_questionnaire_item` (
  `item_id` bigint NOT NULL AUTO_INCREMENT,
  `questionnaire_id` bigint NOT NULL,
  `item_type` varchar(20) NOT NULL COMMENT '题目类型radio/checkbox/boolean/input/sort/calculate/text/textarea/essay',
  `item_content` text NOT NULL COMMENT '题目内容',
  `is_required` char(1) DEFAULT '0' COMMENT '是否必填',
  `score` decimal(10,2) DEFAULT 0 COMMENT '分值',
  `sort_order` int DEFAULT 0,
  PRIMARY KEY (`item_id`)
) ENGINE=InnoDB COMMENT='问卷题目表';

-- 问卷答案表
CREATE TABLE `psy_questionnaire_answer` (
  `answer_id` bigint NOT NULL AUTO_INCREMENT,
  `questionnaire_id` bigint NOT NULL,
  `user_id` bigint DEFAULT NULL,
  `item_id` bigint NOT NULL,
  `answer_content` text COMMENT '答案内容',
  `score` decimal(10,2) DEFAULT 0,
  `submit_time` datetime DEFAULT NULL,
  PRIMARY KEY (`answer_id`)
) ENGINE=InnoDB COMMENT='问卷答案表';

后端开发

1. 实体类

  • PsyQuestionnaire(已创建表结构)
  • PsyQuestionnaireItem(需创建)
  • PsyQuestionnaireAnswer(需创建)

2. Controller接口设计

// PsyQuestionnaireController.java
POST   /psychology/questionnaire/add          # 创建问卷
PUT    /psychology/questionnaire/edit         # 编辑问卷
GET    /psychology/questionnaire/list          # 问卷列表
GET    /psychology/questionnaire/{id}          # 问卷详情
DELETE /psychology/questionnaire/remove/{ids}  # 删除问卷
POST   /psychology/questionnaire/item/add      # 添加题目
PUT    /psychology/questionnaire/item/edit     # 编辑题目
DELETE /psychology/questionnaire/item/remove   # 删除题目
POST   /psychology/questionnaire/submit        # 提交问卷
GET    /psychology/questionnaire/result/{id}   # 查看结果
GET    /psychology/questionnaire/statistics/{id} # 统计排名

前端开发

页面结构

ruoyi-ui/src/views/psychology/questionnaire/
├── index.vue           # 问卷列表
├── form.vue            # 问卷编辑(含题目编辑)
├── answer.vue          # 答题页面
├── result.vue           # 结果查看
└── statistics.vue      # 成绩统计

功能要点:

  • 拖拽排序题目
  • 题目类型选择器8种类型
  • 自动计分(客观题)
  • 成绩排名图表ECharts
  • 答题页面适配移动端

开发任务清单

  • 创建问卷题目表和答案表SQL
  • 创建实体类3个
  • 创建Mapper接口和XML3个
  • 创建Service接口和实现
  • 创建Controller
  • 创建前端API文件
  • 创建问卷列表页
  • 创建问卷编辑器支持8种题型
  • 创建答题页面
  • 创建结果查看页面
  • 创建成绩统计页面
  • 添加菜单配置

D3-3: 二维码功能0.5天)

功能概述

生成测评二维码,支持扫码开始测评、扫码查看报告、扫码注册/登录等功能。

数据库设计

已创建表:psy_qrcode(见 psy_assessment_system_extension.sql

后端开发

技术选型

  • 二维码生成:使用 com.google.zxingcom.github.kenglxn.qrgen
  • 短链接使用Redis或自建短链接服务

Controller接口

// PsyQrcodeController.java
POST   /psychology/qrcode/generate        # 生成二维码
GET    /psychology/qrcode/list            # 二维码列表
GET    /psychology/qrcode/{id}            # 二维码详情
DELETE /psychology/qrcode/remove/{ids}    # 删除二维码
GET    /psychology/qrcode/scan/{code}      # 扫码跳转

生成逻辑:

// 生成测评二维码
String url = "https://domain.com/psychology/assessment/start?scaleId=" + scaleId;
QRCode qrCode = QRCode.from(url).withSize(300, 300).file();

前端开发

页面

ruoyi-ui/src/views/psychology/qrcode/
├── index.vue      # 二维码管理列表
├── form.vue       # 生成二维码表单
└── scan.vue       # 扫码页面(移动端)

功能要点:

  • 选择量表生成二维码
  • 二维码预览和下载
  • 扫码记录统计
  • 移动端扫码适配

开发任务清单

  • 添加二维码生成依赖pom.xml
  • 创建二维码生成工具类
  • 创建Mapper接口和XML
  • 创建Service接口和实现
  • 创建Controller
  • 创建前端API文件
  • 创建二维码管理页面
  • 创建扫码页面
  • 添加菜单配置

D3-4: 心理网站模块1天

功能概述

构建心理知识网站,支持文章发布、栏目管理、留言评论、个性化配置等。

数据库设计

已创建表:psy_website_content(见 psy_assessment_system_extension.sql

需要补充的表:

-- 栏目表
CREATE TABLE `psy_website_category` (
  `category_id` bigint NOT NULL AUTO_INCREMENT,
  `category_name` varchar(100) NOT NULL,
  `parent_id` bigint DEFAULT 0,
  `sort_order` int DEFAULT 0,
  `status` char(1) DEFAULT '0',
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB COMMENT='网站栏目表';

-- 评论表
CREATE TABLE `psy_website_comment` (
  `comment_id` bigint NOT NULL AUTO_INCREMENT,
  `content_id` bigint NOT NULL,
  `user_id` bigint DEFAULT NULL,
  `comment_content` text,
  `create_time` datetime DEFAULT NULL,
  `status` char(1) DEFAULT '0',
  PRIMARY KEY (`comment_id`)
) ENGINE=InnoDB COMMENT='网站评论表';

后端开发

Controller接口

// PsyWebsiteController.java
// 文章管理
POST   /psychology/website/content/add
PUT    /psychology/website/content/edit
GET    /psychology/website/content/list
DELETE /psychology/website/content/remove/{ids}
// 栏目管理
GET    /psychology/website/category/tree
POST   /psychology/website/category/add
// 评论管理
GET    /psychology/website/comment/list
POST   /psychology/website/comment/add
DELETE /psychology/website/comment/remove/{ids}
// 前台接口(无需登录)
GET    /psychology/website/front/content/list     # 前台文章列表
GET    /psychology/website/front/content/{id}     # 前台文章详情
POST   /psychology/website/front/comment/add      # 前台提交评论

前端开发

页面结构

ruoyi-ui/src/views/psychology/website/
├── content/           # 后台管理
│   ├── index.vue      # 文章列表
│   └── form.vue       # 文章编辑
├── category/          # 栏目管理
│   └── index.vue
├── comment/            # 评论管理
│   └── index.vue
└── front/              # 前台展示
    ├── index.vue       # 首页
    ├── list.vue         # 文章列表
    ├── detail.vue       # 文章详情
    └── comment.vue      # 评论组件

功能要点:

  • 富文本编辑器(已集成)
  • 栏目树形结构
  • 前台响应式布局
  • 评论功能
  • 网站配置开关

开发任务清单

  • 创建栏目表和评论表SQL
  • 创建实体类
  • 创建Mapper接口和XML
  • 创建Service接口和实现
  • 创建Controller后台+前台)
  • 创建前端API文件
  • 创建后台管理页面
  • 创建前台展示页面
  • 添加菜单配置

D3-5: 数据统计模块1天

功能概述

提供团体统计、个体统计、测评轨迹、因子趋势分析、部门/班级对比等功能。

数据库设计

复用现有表,无需新建

后端开发

Controller接口

// PsyStatisticsController.java
GET /psychology/statistics/group          # 团体统计
GET /psychology/statistics/individual     # 个体统计
GET /psychology/statistics/trail          # 测评轨迹
GET /psychology/statistics/factor-trend    # 因子趋势
GET /psychology/statistics/compare         # 部门/班级对比
GET /psychology/statistics/export          # 数据导出

统计维度:

  • 团体:量表完成率、平均分、因子分布、风险等级分布
  • 个体:历史测评轨迹、因子变化趋势、风险评估变化
  • 对比:不同部门/班级的对比图表

前端开发

页面结构

ruoyi-ui/src/views/psychology/statistics/
├── group.vue          # 团体统计ECharts
├── individual.vue     # 个体统计
├── trail.vue          # 测评轨迹
├── factor-trend.vue   # 因子趋势
└── compare.vue        # 对比分析

图表类型:

  • 柱状图(完成率、平均分)
  • 饼图(因子分布、风险等级)
  • 折线图(趋势分析)
  • 雷达图(因子对比)

开发任务清单

  • 创建StatisticsController
  • 实现统计Service逻辑
  • 创建前端API文件
  • 创建统计页面5个
  • 集成ECharts图表
  • 实现数据导出
  • 添加菜单配置

D3-6: 权限与批量管理0.5天)

功能概述

量表权限配置(部门/班级)、批量权限设置、注册用户权限预定义。

数据库设计

已创建表:psy_scale_permission(见 psy_assessment_system_extension.sql

后端开发

Controller接口

// PsyScalePermissionController.java
GET    /psychology/permission/list         # 权限列表
POST   /psychology/permission/add          # 添加权限
PUT    /psychology/permission/edit         # 修改权限
DELETE /psychology/permission/remove/{ids}  # 删除权限
POST   /psychology/permission/batch        # 批量设置权限
GET    /psychology/permission/user/{userId} # 用户可访问的量表

前端开发

页面

ruoyi-ui/src/views/psychology/permission/
├── index.vue          # 权限列表
└── batch.vue          # 批量设置

功能要点:

  • 量表与部门/班级关联
  • 批量权限设置
  • 权限继承规则
  • 注册用户默认权限配置

开发任务清单

  • 创建实体类
  • 创建Mapper接口和XML
  • 创建Service接口和实现
  • 创建Controller
  • 创建前端API文件
  • 创建权限管理页面
  • 创建批量设置页面
  • 添加菜单配置

📅 第三阶段开发计划

任务 预计时间 优先级 状态
D3-1: 用户档案管理 1天 待开始
D3-2: 自定义问卷模块 1.5天 待开始
D3-3: 二维码功能 0.5天 待开始
D3-4: 心理网站模块 1天 待开始
D3-5: 数据统计模块 1天 待开始
D3-6: 权限与批量管理 0.5天 待开始
总计 6天 - -

🎯 第三阶段里程碑

  • M3-1 (第1天): 用户档案管理完成
  • M3-2 (第2.5天): 自定义问卷模块完成
  • M3-3 (第3天): 二维码功能完成
  • M3-4 (第4天): 心理网站模块完成
  • M3-5 (第5天): 数据统计模块完成
  • M3-6 (第5.5天): 权限管理完成
  • M3-完成 (第6天): 第三阶段全部完成

📝 开发注意事项

  1. 遵循现有代码规范参考RuoYi框架规范
  2. 数据库变更所有表结构变更需更新SQL脚本
  3. 菜单配置:每个模块完成后立即配置菜单和权限
  4. 前端组件复用充分利用Element UI组件
  5. 移动端适配:二维码、问卷答题等需要移动端适配
  6. 测试验证:每个功能完成后立即测试

创建时间: 2025-11-01 最后更新: 2025-11-01