-- ===================================================== -- IM 即时通讯模块数据库表结构 -- 生成日期: 2026-06-29 -- 适用项目: mom-pro2-after -- 包含: 好友管理、群聊管理、私聊消息、群聊消息 -- ===================================================== -- ===================================================== -- 第一部分: 字典类型定义 -- ===================================================== -- IM 私聊消息状态 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (600, 'IM 私聊消息状态', 'im_private_message_status', 0, '私聊消息状态', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群聊消息状态 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (601, 'IM 群聊消息状态', 'im_group_message_status', 0, '群聊消息状态', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群聊消息回执状态 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (602, 'IM 群聊消息回执状态', 'im_group_message_receipt_status', 0, '群聊消息回执状态', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友状态 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (603, 'IM 好友状态', 'im_friend_status', 0, '好友状态', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群状态 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (604, 'IM 群状态', 'im_group_status', 0, '群状态', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群成员角色 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (605, 'IM 群成员角色', 'im_group_member_role', 0, '群成员角色', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友添加来源 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (606, 'IM 好友添加来源', 'im_friend_add_source', 0, '好友添加来源', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友申请处理结果 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (607, 'IM 好友申请处理结果', 'im_friend_request_handle_result', 0, '好友申请处理结果', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 消息类型 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (608, 'IM 消息类型', 'im_message_type', 0, '消息类型', 'admin', NOW(), 'admin', NOW(), b'0'); -- ===================================================== -- 第二部分: 字典数据定义 -- ===================================================== -- IM 私聊消息状态字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '未读', '0', 'im_private_message_status', 0, 'warning', '', '私聊=未读', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '已撤回', '2', 'im_private_message_status', 0, 'danger', '', 'RECALL', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '已读', '3', 'im_private_message_status', 0, 'success', '', 'READ', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群聊消息状态字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '正常', '0', 'im_group_message_status', 0, 'success', '', '群聊正常', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '已撤回', '2', 'im_group_message_status', 0, 'danger', '', '群聊已撤回', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友状态字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '正常', '0', 'im_friend_status', 0, 'success', '', '正常好友关系', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '已删除', '1', 'im_friend_status', 0, 'danger', '', '已删除好友关系', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群状态字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '正常', '0', 'im_group_status', 0, 'success', '', '群正常', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '已解散', '1', 'im_group_status', 0, 'info', '', '群已解散', 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群成员角色字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '群主', '1', 'im_group_member_role', 0, 'primary', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '管理员', '2', 'im_group_member_role', 0, 'warning', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '普通成员', '3', 'im_group_member_role', 0, 'info', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友添加来源字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '搜索', '1', 'im_friend_add_source', 0, 'default', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '群聊', '2', 'im_friend_add_source', 0, 'default', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '扫码', '3', 'im_friend_add_source', 0, 'default', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '名片', '4', 'im_friend_add_source', 0, 'default', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 好友申请处理结果字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '等待验证', '0', 'im_friend_request_handle_result', 0, 'warning', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '已添加', '1', 'im_friend_request_handle_result', 0, 'success', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '已拒绝', '2', 'im_friend_request_handle_result', 0, 'info', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 消息类型字典数据 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (101, '文本', '101', 'im_message_type', 0, '', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (102, '图片', '102', 'im_message_type', 0, 'success', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (103, '语音', '103', 'im_message_type', 0, 'warning', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (104, '视频', '104', 'im_message_type', 0, 'warning', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (105, '文件', '105', 'im_message_type', 0, 'info', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2101, '撤回', '2101', 'im_message_type', 0, 'danger', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2200, '回执', '2200', 'im_message_type', 0, 'warning', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2201, '已读', '2201', 'im_message_type', 0, 'success', '', NULL, 'admin', NOW(), 'admin', NOW(), b'0'); -- IM 群消息回执状态 INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '不需要回执', '0', 'im_group_message_receipt_status', 0, 'info', '', 'NO_RECEIPT', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '待完成', '1', 'im_group_message_receipt_status', 0, 'warning', '', 'PENDING', 'admin', NOW(), 'admin', NOW(), b'0'); INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '已完成', '2', 'im_group_message_receipt_status', 0, 'success', '', 'DONE', 'admin', NOW(), 'admin', NOW(), b'0'); -- ===================================================== -- 第三部分: IM 模块核心表结构 (11 张表) -- ===================================================== -- 3.1 好友关系表 DROP TABLE IF EXISTS `im_friend`; CREATE TABLE `im_friend` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `user_id` bigint NOT NULL COMMENT '用户编号', `friend_user_id` bigint NOT NULL COMMENT '好友用户编号', `remark` varchar(255) DEFAULT NULL COMMENT '好友备注', `status` tinyint NOT NULL DEFAULT 0 COMMENT '好友状态(0正常 1已删除)', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_friend_user_id` (`friend_user_id`), UNIQUE KEY `uk_user_friend` (`user_id`, `friend_user_id`) ) ENGINE=InnoDB COMMENT='好友关系表'; -- 3.2 好友申请表 DROP TABLE IF EXISTS `im_friend_request`; CREATE TABLE `im_friend_request` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `user_id` bigint NOT NULL COMMENT '申请人编号', `target_user_id` bigint NOT NULL COMMENT '目标用户编号', `content` varchar(500) DEFAULT NULL COMMENT '申请内容', `source` tinyint NOT NULL DEFAULT 1 COMMENT '添加来源(1搜索 2群聊 3扫码 4名片)', `handle_result` tinyint NOT NULL DEFAULT 0 COMMENT '处理结果(0等待 1已添加 2已拒绝)', `handle_time` datetime DEFAULT NULL COMMENT '处理时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_target_user_id` (`target_user_id`) ) ENGINE=InnoDB COMMENT='好友申请表'; -- 3.3 群组表 DROP TABLE IF EXISTS `im_group`; CREATE TABLE `im_group` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '群编号', `name` varchar(100) NOT NULL COMMENT '群名称', `avatar` varchar(255) DEFAULT NULL COMMENT '群头像', `owner_user_id` bigint NOT NULL COMMENT '群主用户编号', `notice` varchar(500) DEFAULT NULL COMMENT '群公告', `status` tinyint NOT NULL DEFAULT 0 COMMENT '群状态(0正常 1已解散)', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_owner_user_id` (`owner_user_id`) ) ENGINE=InnoDB COMMENT='群组表'; -- 3.4 群成员表 DROP TABLE IF EXISTS `im_group_member`; CREATE TABLE `im_group_member` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `group_id` bigint NOT NULL COMMENT '群编号', `user_id` bigint NOT NULL COMMENT '用户编号', `nickname` varchar(100) DEFAULT NULL COMMENT '群内昵称', `role` tinyint NOT NULL DEFAULT 3 COMMENT '群角色(1群主 2管理员 3普通成员)', `mute_flag` bit(1) DEFAULT b'0' COMMENT '是否禁言', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_group_id` (`group_id`), KEY `idx_user_id` (`user_id`), UNIQUE KEY `uk_group_user` (`group_id`, `user_id`) ) ENGINE=InnoDB COMMENT='群成员表'; -- 3.5 私聊消息表 DROP TABLE IF EXISTS `im_private_message`; CREATE TABLE `im_private_message` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '消息编号', `from_user_id` bigint NOT NULL COMMENT '发送人编号', `to_user_id` bigint NOT NULL COMMENT '接收人编号', `content` text COMMENT '消息内容', `message_type` int NOT NULL DEFAULT 101 COMMENT '消息类型(101文本 102图片 103语音 104视频 105文件)', `status` tinyint NOT NULL DEFAULT 0 COMMENT '消息状态(0未读 2已撤回 3已读)', `send_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间', `read_time` datetime DEFAULT NULL COMMENT '已读时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_from_user_id` (`from_user_id`), KEY `idx_to_user_id` (`to_user_id`) ) ENGINE=InnoDB COMMENT='私聊消息表'; -- 3.6 群聊消息表 DROP TABLE IF EXISTS `im_group_message`; CREATE TABLE `im_group_message` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '消息编号', `group_id` bigint NOT NULL COMMENT '群编号', `from_user_id` bigint NOT NULL COMMENT '发送人编号', `content` text COMMENT '消息内容', `message_type` int NOT NULL DEFAULT 101 COMMENT '消息类型', `status` tinyint NOT NULL DEFAULT 0 COMMENT '消息状态(0正常 2已撤回)', `receipt_status` tinyint NOT NULL DEFAULT 0 COMMENT '回执状态(0不需要 1待完成 2已完成)', `send_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_group_id` (`group_id`), KEY `idx_from_user_id` (`from_user_id`) ) ENGINE=InnoDB COMMENT='群聊消息表'; -- 3.7 群消息回执表 DROP TABLE IF EXISTS `im_group_message_receipt`; CREATE TABLE `im_group_message_receipt` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `message_id` bigint NOT NULL COMMENT '群消息编号', `user_id` bigint NOT NULL COMMENT '用户编号', `read_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '已读时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_message_id` (`message_id`), KEY `idx_user_id` (`user_id`), UNIQUE KEY `uk_message_user` (`message_id`, `user_id`) ) ENGINE=InnoDB COMMENT='群消息回执表'; -- 3.8 会话表(私聊+群聊) DROP TABLE IF EXISTS `im_conversation`; CREATE TABLE `im_conversation` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '会话编号', `user_id` bigint NOT NULL COMMENT '用户编号', `conversation_type` tinyint NOT NULL COMMENT '会话类型(1私聊 2群聊)', `target_id` bigint NOT NULL COMMENT '目标编号(私聊为用户ID,群聊为群ID)', `last_message_id` bigint DEFAULT NULL COMMENT '最后消息编号', `last_message_time` datetime DEFAULT NULL COMMENT '最后消息时间', `unread_count` int NOT NULL DEFAULT 0 COMMENT '未读消息数', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), UNIQUE KEY `uk_user_target_type` (`user_id`, `target_id`, `conversation_type`) ) ENGINE=InnoDB COMMENT='会话表'; -- 3.9 用户在线状态表 DROP TABLE IF EXISTS `im_user_online`; CREATE TABLE `im_user_online` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `user_id` bigint NOT NULL COMMENT '用户编号', `online_status` tinyint NOT NULL DEFAULT 0 COMMENT '在线状态(0离线 1在线)', `last_online_time` datetime DEFAULT NULL COMMENT '最后在线时间', `last_offline_time` datetime DEFAULT NULL COMMENT '最后离线时间', `device_type` tinyint DEFAULT NULL COMMENT '设备类型(1Web 2Android 3iOS)', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), UNIQUE KEY `uk_user_id` (`user_id`) ) ENGINE=InnoDB COMMENT='用户在线状态表'; -- 3.10 群申请表 DROP TABLE IF EXISTS `im_group_request`; CREATE TABLE `im_group_request` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `group_id` bigint NOT NULL COMMENT '群编号', `user_id` bigint NOT NULL COMMENT '申请人编号', `content` varchar(500) DEFAULT NULL COMMENT '申请内容', `handle_result` tinyint NOT NULL DEFAULT 0 COMMENT '处理结果(0等待 1已通过 2已拒绝)', `handle_user_id` bigint DEFAULT NULL COMMENT '处理人编号', `handle_time` datetime DEFAULT NULL COMMENT '处理时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_group_id` (`group_id`), KEY `idx_user_id` (`user_id`) ) ENGINE=InnoDB COMMENT='群申请表'; -- 3.11 消息文件表 DROP TABLE IF EXISTS `im_message_file`; CREATE TABLE `im_message_file` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `message_id` bigint NOT NULL COMMENT '消息编号', `message_type` tinyint NOT NULL COMMENT '消息类型(102图片 103语音 104视频 105文件)', `file_url` varchar(500) NOT NULL COMMENT '文件URL', `file_name` varchar(255) DEFAULT NULL COMMENT '文件名', `file_size` bigint DEFAULT NULL COMMENT '文件大小(字节)', `file_duration` int DEFAULT NULL COMMENT '文件时长(秒,语音/视频)', `width` int DEFAULT NULL COMMENT '宽度(图片/视频)', `height` int DEFAULT NULL COMMENT '高度(图片/视频)', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_message_id` (`message_id`) ) ENGINE=InnoDB COMMENT='消息文件表'; -- ===================================================== -- IM 模块表统计: 11 张表 -- =====================================================