This commit is contained in:
Your Name
2026-03-06 14:27:24 +08:00
parent 9a1b67ca18
commit 52bb80e2f1
134 changed files with 5337 additions and 401 deletions
+176
View File
@@ -0,0 +1,176 @@
# 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. 导出功能
---
**重要提示**: 此文件是系统核心逻辑文件,修改前请做好备份!