新增IM聊天
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
-- 租户 IM 聊天:表结构 + 我的租户菜单
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `sys_im_conversation` (
|
||||
`id` varchar(32) NOT NULL COMMENT '主键',
|
||||
`conv_type` varchar(10) NOT NULL DEFAULT 'single' COMMENT '会话类型 single单聊',
|
||||
`user_pair_key` varchar(80) DEFAULT NULL COMMENT '单聊唯一键(较小userId_较大userId)',
|
||||
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
|
||||
`last_content` varchar(500) DEFAULT NULL COMMENT '最后一条消息摘要',
|
||||
`last_time` datetime DEFAULT NULL COMMENT '最后消息时间',
|
||||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_im_conv_pair` (`tenant_id`, `user_pair_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='IM会话表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `sys_im_conversation_member` (
|
||||
`id` varchar(32) NOT NULL COMMENT '主键',
|
||||
`conversation_id` varchar(32) NOT NULL COMMENT '会话ID',
|
||||
`user_id` varchar(32) NOT NULL COMMENT '用户ID',
|
||||
`unread_count` int NOT NULL DEFAULT 0 COMMENT '未读数',
|
||||
`last_read_time` datetime DEFAULT NULL COMMENT '最后已读时间',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_im_member` (`conversation_id`, `user_id`),
|
||||
KEY `idx_im_member_user` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='IM会话成员表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `sys_im_message` (
|
||||
`id` varchar(32) NOT NULL COMMENT '主键',
|
||||
`conversation_id` varchar(32) NOT NULL COMMENT '会话ID',
|
||||
`sender_id` varchar(32) NOT NULL COMMENT '发送人ID',
|
||||
`content` text COMMENT '消息内容',
|
||||
`msg_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '消息类型 text/image/file',
|
||||
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '发送时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_im_msg_conv_time` (`conversation_id`, `create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='IM消息表';
|
||||
|
||||
INSERT IGNORE INTO `sys_permission` (
|
||||
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
|
||||
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
|
||||
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
|
||||
`del_flag`, `rule_flag`, `status`, `internal_or_external`
|
||||
) VALUES (
|
||||
'1995000000000000110', '1674708136602542082', 'IM聊天', '/my/ImChat',
|
||||
'system/im/ImChat', 1, 'ImChat', NULL,
|
||||
1, NULL, '0', 1.10, 0, 'ant-design:message-outlined', 0, 1,
|
||||
0, 0, '租户内用户即时聊天', 'admin', NOW(), 'admin', NOW(),
|
||||
0, 0, '1', 0
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
|
||||
VALUES ('1995000000000000111', '1995000000000000110', '查询', 2, 'sys:im:chat:list', '1', 1.00, 0, 1, 0, '1', 0, 'admin', NOW());
|
||||
|
||||
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
|
||||
VALUES ('1995000000000000112', '1995000000000000110', '发送', 2, 'sys:im:chat:send', '1', 2.00, 0, 1, 0, '1', 0, 'admin', NOW());
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r
|
||||
CROSS JOIN `sys_permission` p
|
||||
WHERE r.`role_code` = 'admin'
|
||||
AND p.`id` IN ('1995000000000000110', '1995000000000000111', '1995000000000000112')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.`id` AND rp.`permission_id` = p.`id`
|
||||
);
|
||||
Reference in New Issue
Block a user