# 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. ⚠️ 服务器需要能访问微信API(https://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. 导出功能 --- **重要提示**: 此文件是系统核心逻辑文件,修改前请做好备份!