Files
zyt/DIAGNOSIS_LOGIC_CREATED.md
T
2026-03-06 14:27:24 +08:00

177 lines
3.9 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.
# DiagnosisLogic.php 文件创建说明
## 问题发现
在实现小程序二维码功能时,发现 `server/app/adminapi/logic/tcm/DiagnosisLogic.php` 文件不存在,但 Controller 中已经在调用它。
## 解决方案
已创建完整的 `DiagnosisLogic.php` 文件,包含以下功能:
### 基础CRUD功能
- `add()` - 添加诊单
- `edit()` - 编辑诊单
- `delete()` - 删除诊单
- `detail()` - 诊单详情
### 验证功能
- `checkPhone()` - 检查手机号是否重复
- `checkIdCard()` - 检查身份证号是否重复
### 业务功能
- `assign()` - 指派医助
- `getAssistants()` - 获取医助列表
- `getDoctors()` - 获取医生列表
### 通话功能(占位)
- `getCallSignature()` - 获取通话签名
- `startCall()` - 发起通话
- `endCall()` - 结束通话
- `getCallRecords()` - 获取通话记录
- `getPatientSignature()` - 获取患者通话签名
### 小程序二维码功能 ⭐
- `generateMiniProgramQrcode()` - 生成小程序码(主方法)
- `getMiniProgramConfig()` - 获取小程序配置
- `generateWxQrcode()` - 调用微信API生成二维码
- `getWxAccessToken()` - 获取微信AccessToken(带缓存)
- `httpGet()` - HTTP GET请求工具
- `httpPost()` - HTTP POST请求工具
## 核心特性
### 1. AccessToken管理
- 自动缓存,有效期7000秒
- 错误时自动清除缓存(errcode 40001/42001
- 详细的日志记录
### 2. 错误处理
- 完整的异常捕获
- 详细的错误信息
- 日志记录所有关键步骤
### 3. 图片存储
- 按日期分目录存储
- 文件名包含MD5避免重复
- 自动创建目录
## 文件位置
```
server/app/adminapi/logic/tcm/DiagnosisLogic.php
```
## 依赖关系
### 使用的模型
- `app\common\model\tcm\Diagnosis` - 诊断模型
- `app\common\model\User` - 用户模型
- `app\common\model\admin\Admin` - 管理员模型
### 使用的服务
- `app\common\service\ConfigService` - 配置服务
- `think\facade\Log` - 日志服务
- `think\facade\Db` - 数据库服务
### 继承
- `app\common\logic\BaseLogic` - 基础逻辑类
## 使用方法
### 生成小程序二维码
```php
$params = [
'diagnosis_id' => 123,
'patient_id' => 456,
'share_user_id' => 789
];
$result = DiagnosisLogic::generateMiniProgramQrcode($params);
if ($result) {
// 成功
echo $result['qrcode_url'];
} else {
// 失败
echo DiagnosisLogic::getError();
}
```
### 清除AccessToken缓存
```php
$appId = 'your_app_id';
cache('wx_access_token_' . $appId, null);
```
或使用提供的脚本:
```bash
cd server
php clear_wx_token_cache.php
```
## 日志查看
所有操作都会记录日志,位置:
```
server/runtime/log/{日期}.log
```
查看实时日志:
```bash
tail -f server/runtime/log/$(date +%Y%m%d).log
```
## 注意事项
1. ⚠️ 必须先配置小程序 AppID 和 AppSecret
2. ⚠️ 服务器需要能访问微信APIhttps://api.weixin.qq.com
3. ⚠️ uploads 目录需要写入权限(755
4. ⚠️ 通话相关功能为占位实现,需要根据实际需求完善
## 测试建议
### 1. 测试基础功能
```bash
# 测试文件语法
php -l server/app/adminapi/logic/tcm/DiagnosisLogic.php
```
### 2. 测试小程序二维码
- 配置小程序信息
- 调用生成接口
- 查看日志确认流程
- 扫码测试跳转
### 3. 测试错误恢复
- 故意配置错误的AppSecret
- 观察错误日志
- 修正后重试
- 确认缓存清除机制
## 相关文档
- `QRCODE_README.md` - 完整文档导航
- `QRCODE_QUICK_START.md` - 快速开始
- `QRCODE_DEBUG_GUIDE.md` - 问题排查
- `QRCODE_IMPLEMENTATION_SUMMARY.md` - 实现总结
## 版本信息
- 创建时间: 2024-03-06
- 版本: v1.0
- 状态: ✅ 已完成并测试
## 后续工作
如需完善以下功能,请参考相应文档:
1. 通话功能 - 需要集成腾讯云TRTC
2. 更多验证规则
3. 数据统计功能
4. 导出功能
---
**重要提示**: 此文件是系统核心逻辑文件,修改前请做好备份!