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

3.9 KiB
Raw Blame History

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 - 基础逻辑类

使用方法

生成小程序二维码

$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缓存

$appId = 'your_app_id';
cache('wx_access_token_' . $appId, null);

或使用提供的脚本:

cd server
php clear_wx_token_cache.php

日志查看

所有操作都会记录日志,位置:

server/runtime/log/{日期}.log

查看实时日志:

tail -f server/runtime/log/$(date +%Y%m%d).log

注意事项

  1. ⚠️ 必须先配置小程序 AppID 和 AppSecret
  2. ⚠️ 服务器需要能访问微信APIhttps://api.weixin.qq.com
  3. ⚠️ uploads 目录需要写入权限(755)
  4. ⚠️ 通话相关功能为占位实现,需要根据实际需求完善

测试建议

1. 测试基础功能

# 测试文件语法
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. 导出功能

重要提示: 此文件是系统核心逻辑文件,修改前请做好备份!