更新初级版本

This commit is contained in:
Your Name
2026-03-06 17:30:37 +08:00
parent 52bb80e2f1
commit 7b76671988
19 changed files with 1656 additions and 370 deletions
+223
View File
@@ -0,0 +1,223 @@
# 诊单查看记录功能 - 安装指南
## 安装步骤
### 1. 创建数据库表
执行以下SQL语句创建诊单查看记录表:
```bash
# 方式1: 使用MySQL客户端执行
mysql -u root -p your_database < server/database/diagnosis_view_records.sql
# 方式2: 在phpMyAdmin或其他数据库管理工具中执行
# 打开文件: server/database/diagnosis_view_records.sql
# 复制SQL语句并执行
```
SQL文件位置: `server/database/diagnosis_view_records.sql`
### 2. 验证表创建
登录数据库,检查表是否创建成功:
```sql
SHOW TABLES LIKE 'la_diagnosis_view_records';
DESC la_diagnosis_view_records;
```
### 3. 文件清单
确认以下文件已创建:
#### 后端文件
-`server/database/diagnosis_view_records.sql` - 数据库表结构
-`server/app/common/model/DiagnosisViewRecord.php` - 模型文件
-`server/app/api/controller/TcmController.php` - 控制器(已更新)
-`server/app/adminapi/logic/tcm/DiagnosisLogic.php` - 逻辑层(已更新)
#### 前端文件
-`TUICallKit-Vue3/pages/order/monad/monad.vue` - 小程序页面(已更新)
#### 文档文件
-`DIAGNOSIS_VIEW_RECORD_FEATURE.md` - 功能说明文档
-`DIAGNOSIS_VIEW_RECORD_INSTALL.md` - 安装指南(本文件)
-`MINI_PROGRAM_SCENE_PARAMS.md` - Scene参数说明
### 4. 配置小程序用户ID获取
在小程序中添加用户ID获取逻辑:
```javascript
// TUICallKit-Vue3/pages/order/monad/monad.vue
// 在 parsePageParams 函数中添加
const parsePageParams = (options) => {
const params = {};
// ... 现有的解析逻辑 ...
// 获取当前登录用户ID
try {
// 方式1: 从本地存储获取
const userInfo = uni.getStorageSync('userInfo');
params.user_id = userInfo?.id || 0;
// 方式2: 从全局状态获取
// const app = getApp();
// params.user_id = app.globalData.userId || 0;
// 方式3: 从Vuex获取
// import { useUserStore } from '@/stores/user';
// const userStore = useUserStore();
// params.user_id = userStore.userId || 0;
} catch (error) {
console.error('获取用户ID失败:', error);
params.user_id = 0;
}
return params;
};
```
### 5. 测试功能
#### 5.1 测试查看记录
1. 在管理后台生成小程序二维码
2. 使用微信扫描二维码
3. 小程序打开诊单详情页
4. 检查数据库 `la_diagnosis_view_records` 表,应该有一条新记录
```sql
SELECT * FROM la_diagnosis_view_records ORDER BY id DESC LIMIT 1;
```
#### 5.2 测试重复查看
1. 再次扫描同一个二维码
2. 检查数据库,`view_count` 应该增加,`last_view_time` 应该更新
```sql
SELECT id, user_id, diagnosis_id, view_count,
FROM_UNIXTIME(first_view_time) as first_view,
FROM_UNIXTIME(last_view_time) as last_view
FROM la_diagnosis_view_records
WHERE diagnosis_id = 4;
```
#### 5.3 测试确认功能
1. 在小程序中点击"确认诊单"按钮
2. 检查数据库,`is_confirmed` 应该变为1`confirmed_time` 应该有值
```sql
SELECT id, diagnosis_id, is_confirmed,
FROM_UNIXTIME(confirmed_time) as confirmed_at
FROM la_diagnosis_view_records
WHERE diagnosis_id = 4;
```
### 6. API接口测试
#### 测试 diagnosisDetail 接口
```bash
curl -X GET "http://your-domain/api/tcm/diagnosisDetail?id=4&user_id=1&share_user_id=2"
```
预期响应:
```json
{
"code": 1,
"msg": "success",
"data": {
"id": 4,
"patient_name": "张三",
// ... 其他诊单信息
}
}
```
#### 测试 confirmDiagnosis 接口
```bash
curl -X POST "http://your-domain/api/tcm/confirmDiagnosis" \
-H "Content-Type: application/json" \
-d '{"id": 4, "user_id": 1, "share_user": 2}'
```
预期响应:
```json
{
"code": 1,
"msg": "确认成功",
"data": []
}
```
### 7. 常见问题
#### Q1: 表创建失败
**A:** 检查数据库权限,确保有CREATE TABLE权限
#### Q2: 查看记录没有创建
**A:** 检查以下几点:
- 确认表已创建
- 检查PHP错误日志
- 确认 `DiagnosisViewRecord` 模型文件存在
- 检查数据库连接配置
#### Q3: user_id 总是0
**A:** 需要在小程序中实现用户登录功能,并在 `parsePageParams` 中获取用户ID
#### Q4: 确认功能不工作
**A:** 检查:
- 确认接口已添加到 `$notNeedLogin` 数组
- 检查POST参数是否正确传递
- 查看PHP错误日志
### 8. 数据库索引优化
如果查看记录表数据量较大,建议添加以下索引:
```sql
-- 已在建表语句中包含,如果没有可手动添加
ALTER TABLE la_diagnosis_view_records
ADD INDEX idx_user_diagnosis (user_id, diagnosis_id);
ALTER TABLE la_diagnosis_view_records
ADD INDEX idx_diagnosis (diagnosis_id);
ALTER TABLE la_diagnosis_view_records
ADD INDEX idx_patient (patient_id);
ALTER TABLE la_diagnosis_view_records
ADD INDEX idx_share_user (share_user_id);
```
### 9. 数据清理
定期清理过期的查看记录(可选):
```sql
-- 删除30天前的未确认记录
DELETE FROM la_diagnosis_view_records
WHERE is_confirmed = 0
AND create_time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
-- 或使用软删除
UPDATE la_diagnosis_view_records
SET delete_time = UNIX_TIMESTAMP()
WHERE is_confirmed = 0
AND create_time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
```
### 10. 下一步
功能安装完成后,可以:
1. 实现查看记录的管理界面
2. 添加数据统计报表
3. 实现查看记录的导出功能
4. 添加消息通知(如:诊单被查看时通知医生)
## 相关文档
- [功能说明文档](./DIAGNOSIS_VIEW_RECORD_FEATURE.md)
- [Scene参数说明](./MINI_PROGRAM_SCENE_PARAMS.md)
- [小程序二维码功能](./QRCODE_README.md)