xinli/z_Project change/进度汇总/19-二维码功能使用说明.md

204 lines
5.5 KiB
Markdown
Raw Normal View History

2025-11-12 15:25:47 +08:00
# 二维码功能使用说明
## 功能概述
系统提供了二维码功能,方便用户通过扫码快速访问测评和查看报告。支持以下功能:
- **量表测评二维码**:扫码后直接开始指定量表的测评
- **报告查看二维码**:扫码后直接查看指定报告
- **测评报告二维码**通过测评ID生成二维码扫码后查看对应的报告
## 功能特点
1. **自动跳转**:扫码后自动识别二维码类型,跳转到对应页面
2. **扫码统计**:记录扫码次数,方便统计使用情况
3. **过期管理**:支持设置二维码过期时间
4. **状态管理**:支持启用/禁用二维码
## 使用方法
### 1. 生成量表测评二维码
#### 在量表管理页面生成
1. 进入 **心理测评 -> 量表管理**
2. 在量表列表中找到目标量表
3. 点击操作列的 **二维码** 按钮
4. 系统自动生成二维码并显示在对话框中
5. 可以下载二维码图片或直接打印
**二维码内容**
- 扫码后会跳转到该量表的测评开始页面
- 如果用户未登录,会提示先登录
### 2. 生成报告查看二维码
#### 方法一:在报告管理页面生成(待实现)
1. 进入 **心理测评 -> 报告管理**
2. 在报告列表中找到目标报告
3. 点击操作列的 **二维码** 按钮
4. 系统自动生成二维码
**二维码内容**
- 扫码后会跳转到该报告的详情页面
#### 方法二:在测评管理页面生成(待实现)
1. 进入 **心理测评 -> 测评管理**
2. 在测评列表中找到已完成测评的记录
3. 点击操作列的 **二维码** 按钮
4. 系统自动生成二维码
**二维码内容**
- 扫码后会跳转到该测评对应的报告详情页面
### 3. 扫描二维码
#### 扫描方式
1. **手机扫码**
- 使用手机微信、支付宝等应用扫描二维码
- 或使用专门的二维码扫描应用
2. **电脑扫码**
- 在浏览器中访问二维码URL
- 格式:`http://域名/psychology/qrcode/scan/{二维码编码}`
#### 扫描流程
1. 用户扫描二维码
2. 系统自动识别二维码类型和目标
3. 记录扫码次数
4. 检查二维码状态和过期时间
5. 自动跳转到对应页面:
- **测评类型**:跳转到测评开始页面(如果指定了量表,直接进入该量表测评)
- **报告类型**:跳转到报告详情页面
## 二维码管理
### 查看所有二维码
1. 进入 **心理测评 -> 二维码管理**
2. 可以查看所有已生成的二维码
3. 查看二维码类型、目标、扫码次数等信息
### 重新生成二维码
1. 在二维码管理页面
2. 点击 **重新生成** 按钮
3. 系统会重新生成二维码图片
### 删除二维码
1. 在二维码管理页面
2. 选择要删除的二维码
3. 点击 **删除** 按钮
## 技术说明
### 二维码类型
- `test`:测评类型,用于开始测评
- `view_report`:查看报告类型,用于查看报告
- `register`:注册类型,用于用户注册
- `login`:登录类型,用于用户登录
### 目标类型
- `scale`量表关联量表ID
- `assessment`测评关联测评ID
- `report`报告关联报告ID
### 二维码状态
- `0`:有效
- `1`:无效
- `2`:已过期
### API接口
#### 扫描二维码(公开接口)
```
GET /psychology/qrcode/scan/{qrcodeCode}
```
**响应示例**
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"qrcode": {
"qrcodeId": 1,
"qrcodeCode": "abc123",
"qrcodeType": "test",
"targetType": "scale",
"targetId": 1,
"scanCount": 5
},
"redirectUrl": "/psychology/assessment/start?scaleId=1"
}
}
```
#### 生成量表测评二维码
```
POST /psychology/qrcode/generate/scale?scaleId={scaleId}
```
#### 生成报告查看二维码
```
POST /psychology/qrcode/generate/report?reportId={reportId}
```
#### 生成测评报告二维码
```
POST /psychology/qrcode/generate/assessment?assessmentId={assessmentId}
```
## 使用场景
### 场景1线下测评
1. 管理员生成量表测评二维码
2. 打印二维码并张贴在测评现场
3. 用户扫码后直接开始测评
4. 无需输入量表名称或选择量表
### 场景2报告分享
1. 管理员生成报告查看二维码
2. 通过微信、邮件等方式分享给用户
3. 用户扫码后直接查看报告
4. 方便快捷,无需登录系统查找
### 场景3批量测评
1. 为每个量表生成独立二维码
2. 将二维码打印在不同位置
3. 用户根据需求扫码选择对应的量表
4. 提高测评效率
## 注意事项
1. **二维码有效期**:建议设置二维码过期时间,避免长期有效造成安全隐患
2. **权限控制**:生成二维码需要相应权限,扫码查看报告可能需要登录
3. **网络环境**确保二维码URL可以正常访问
4. **扫码统计**:系统会记录扫码次数,可用于统计分析
## 后续优化
1. 在报告管理页面添加生成二维码功能
2. 在测评管理页面添加生成二维码功能
3. 支持自定义二维码样式Logo、颜色等
4. 支持批量生成二维码
5. 支持二维码短链接功能
6. 支持二维码访问权限控制
## 相关文件
- 后端接口:`ry-news-admin/src/main/java/com/ddnai/web/controller/psychology/PsyQrcodeController.java`
- 前端页面:`ruoyi-ui/src/views/psychology/qrcode/scan.vue`
- API接口`ruoyi-ui/src/api/psychology/qrcode.js`
- 服务实现:`ry-news-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyQrcodeServiceImpl.java`