xinli/z_Project change/进度汇总/19-二维码功能使用说明.md
2025-11-12 15:25:47 +08:00

204 lines
5.5 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.

# 二维码功能使用说明
## 功能概述
系统提供了二维码功能,方便用户通过扫码快速访问测评和查看报告。支持以下功能:
- **量表测评二维码**:扫码后直接开始指定量表的测评
- **报告查看二维码**:扫码后直接查看指定报告
- **测评报告二维码**通过测评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`