# 在线问诊(移动端) ## 1. 概述 | 项 | 说明 | | --- | --- | | Base Path | `/app/onlineConsult` | | 数据表 | `biz_medical_resource`、`biz_consult_session`、`biz_consult_message` | | 鉴权 | 需登录 | **兽医列表范围**:`resource_type=004001`(兽医人员)、`publish_status=1`(已发布)、`consult_modes` 含在线接诊(`3`)、已分配平台账号且 `sys_user_id` 非空(可实际收发消息)。 **查看资料**:列表项已返回资料页全部字段,**无单独详情接口**。 ## 2. 可问诊兽医列表 `GET /app/onlineConsult/vet/list` | 参数 | 必填 | 说明 | | --- | --- | --- | | `pageNum` | 否 | 页码,默认 1 | | `pageSize` | 否 | 每页条数,默认 20 | | `resourceName` | 否 | 兽医姓名(`resource_name`)模糊匹配 | **响应**:`TableDataInfo`,`rows` 元素字段: | 字段 | 说明 | | --- | --- | | `id` | 兽医资源主键 | | `resourceName` | 兽医姓名 | | `introduction` | 介绍 | | `contactPhone` | 联系电话 | | `affiliatedUnit` | 隶属单位 | | `detailAddress` | 详细地址 | | `serviceStartTime` | 服务开始 `HH:mm` | | `serviceEndTime` | 服务结束 `HH:mm` | | `photoFileUrl` | 照片 URL(列表头像,非需求必填但便于展示) | ## 3. 我的问诊会话列表 `GET /app/onlineConsult/session/list` | 参数 | 必填 | 说明 | | --- | --- | --- | | `pageNum` | 否 | 页码,默认 1 | | `pageSize` | 否 | 每页条数,默认 10 | **响应**:`TableDataInfo`,`rows` 为 `BizConsultSession`(`consult_type=1`,按 `asker_user_id=当前用户` 筛选)。 ## 4. 打开 / 复用问诊会话 `POST /app/onlineConsult/session/open` **Body** | 字段 | 必填 | 说明 | | --- | --- | --- | | `vetResourceId` | 是 | 兽医资源 `id` | **逻辑**:同一登录用户与同一兽医若已有 `consult_type=1` 的会话,则**返回原会话**;否则创建新会话。 **响应 `data`**:`BizConsultSession`(含 `id`、`receiverName`、`lastMessagePreview` 等),前端凭 `id` 进入问诊对话框。 **失败示例**:兽医未发布、未开通在线接诊、未分配账号 →「该兽医暂不支持在线问诊」。 ## 5. 问诊消息 ### 5.1 历史消息 `GET /app/onlineConsult/session/{sessionId}/messages` | 参数 | 必填 | 说明 | | --- | --- | --- | | `beforeId` | 否 | 向上翻页:取小于该 id 的更早消息 | | `pageSize` | 否 | 条数,默认 50 | **响应 `data`**:`BizConsultMessage[]`,按发送时间**升序**。 ### 5.2 发送消息 `POST /app/onlineConsult/session/{sessionId}/message` **Body**:`msgType`(1 文本 / 2 图片 / 3 视频 / 4 语音)、`content`、`mediaDuration`(音视频可选)。 ### 5.3 隐藏会话(问诊人侧删除列表项) `POST /app/onlineConsult/session/{sessionId}/hide` ## 6. 界面参考 `doc/app/在线问诊/Snipaste_2026-05-24_09-37-49.jpg` > 原移动端路径 `/app/consult/vet` 已废弃,会话相关能力均收敛至 **`/app/onlineConsult`**。