feat(emergency): searchExpert接口返回ConDoctor专家数据 + 修复IM UserSig缓存key未区分secretKey的问题

1. searchExpert新增ConDoctor专家字段:
   - 新增ConDoctorMapper直接查询qh_con_doctor表(同库,避免跨模块依赖)
   - EmergencyProfessionUser新增17个@TableField(exist=false)字段承载专家数据
   - searchExpert方法中批量查询ConDoctor并逐字段填充
   - 用户非专家时ConDoctor字段为null
   - 更新API文档-移动端接口.md

2. IM签名缓存优化:
   - TencentCloudImUtil新增secretKey注入
   - Redis key从 silence:im_user_sig:{sdkAppId}:{id}
     改为 silence:im_user_sig:{hash(sdkAppId+secretKey)}:{id}
   - 解决secretKey变更时旧缓存签名仍被命中导致IM请求失败的问题

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-04 11:08:03 +08:00
co-authored by Claude
parent 44e8ac7da5
commit e9360d1ad9
5 changed files with 171 additions and 2 deletions
+27 -1
View File
@@ -50,7 +50,15 @@
"userId": "xxx", "realname": "张医生", "avatar": "https://...",
"type": "6", "centerId": "xxx",
"post": "主任医师", "school": "北京大学", "edu": "博士",
"goodAt": "心血管内科", "deptName": "急诊科", "phone": "13800000001"
"goodAt": "心血管内科", "deptName": "急诊科", "phone": "13800000001",
"doctorName": "张医生", "doctorNo": "XJ-001", "photo": "https://...",
"resourceName": "新疆人民医院", "departmentId": "xxx",
"departmentName": "急诊科", "doctorTitle": "主任医师",
"doctorJob": "科长", "doctorStatus": "1", "isAccept": "1",
"doctorType": "1", "audioStatus": "1", "tfJumpHoliday": "0",
"experience": "从事心血管内科临床工作20年...",
"sort": 100, "tfRecommend": "1",
"introduction": "擅长心血管疾病的诊治..."
}
],
"total": 50, "size": 10, "current": 1
@@ -70,6 +78,24 @@
| goodAt | 擅长领域 |
| deptName | 科室 |
| phone | 手机号 |
| **↓ 以下字段来源于咨询服务专家表(qh_con_doctor),非专家时为 null** |
| doctorName | 医生姓名 |
| doctorNo | 专家编号 |
| photo | 医生头像 |
| resourceName | 所属医院名称 |
| departmentId | 科室ID |
| departmentName | 科室名称 |
| doctorTitle | 职务(z_doct_lev 字典) |
| doctorJob | 职称(z_doct_job 字典) |
| doctorStatus | 专家状态(doc_status 字典) |
| isAccept | 是否开启咨询(z_doct_sta 字典: 1开启/3关闭) |
| doctorType | 专家类型(z_doct_typ 字典: 1收费/2免费/3其他/4义诊) |
| audioStatus | 是否提供音视频 |
| tfJumpHoliday | 是否跳过节假日 |
| experience | 执业经历 |
| sort | 排序 |
| tfRecommend | 是否推荐(0否/1是) |
| introduction | 简介 |
### 1.2 搜索员工 `GET /order/searchEmployee`