-- 诊单腾讯云 IM 单聊消息归档(定时从 admin_getroammsg 同步,突破云端约 7 天漫游限制) -- 执行前请确认库名与表前缀(默认前缀 zyt_) CREATE TABLE IF NOT EXISTS `zyt_tcm_im_chat_message` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `diagnosis_id` int unsigned NOT NULL DEFAULT 0 COMMENT '诊单ID', `patient_id` int unsigned NOT NULL DEFAULT 0 COMMENT '患者ID(冗余,便于按患者维度排查/统计)', `msg_id` varchar(160) NOT NULL DEFAULT '' COMMENT '业务唯一键:MsgSeq_MsgRandom_From_Account', `from_account` varchar(64) NOT NULL DEFAULT '' COMMENT '发送方 IM UserID', `to_account` varchar(64) NOT NULL DEFAULT '' COMMENT '接收方 IM UserID', `msg_time` int unsigned NOT NULL DEFAULT 0 COMMENT '消息时间 Unix 时间戳', `is_from_doctor` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '是否医生/医助侧发送', `msg_type` varchar(32) NOT NULL DEFAULT '' COMMENT 'text/image/file/sound/video/custom/...', `text` mediumtext COMMENT '文本或自定义消息 Data', `image_url` varchar(1024) NOT NULL DEFAULT '' COMMENT '图片 URL', `file_url` varchar(1024) NOT NULL DEFAULT '' COMMENT '文件/语音/视频 URL', `file_name` varchar(512) NOT NULL DEFAULT '' COMMENT '文件名', `raw_elem_type` varchar(64) NOT NULL DEFAULT '' COMMENT 'TIM 元素类型', `from_staff_name` varchar(64) NOT NULL DEFAULT '' COMMENT '医生侧姓名快照', `doctor_peer_account` varchar(64) NOT NULL DEFAULT '' COMMENT '拉取会话时使用的医生侧账号 doctor_*', `create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '入库时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_msg_id` (`msg_id`), KEY `idx_diagnosis_time` (`diagnosis_id`,`msg_time`), KEY `idx_patient_time` (`patient_id`,`msg_time`), KEY `idx_msg_time` (`msg_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='诊单IM聊天记录归档';