群聊接口

This commit is contained in:
2025-12-05 13:12:48 +08:00
parent 0f6f2f3675
commit 7d58b89f4e
8 changed files with 485 additions and 31 deletions

View File

@@ -112,6 +112,7 @@ CREATE TABLE `chat_rooms` (
`creator_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者ID',
`last_message_time` datetime NULL DEFAULT NULL COMMENT '最后消息时间',
`last_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '最后消息内容',
`announcement` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '群公告',
`created_at` datetime(3) NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime(3) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`room_id`) USING BTREE,
@@ -142,6 +143,36 @@ CREATE TABLE `room_members` (
-- Records of room_members
-- ----------------------------
-- ----------------------------
-- Table structure for chat_conversations
-- ----------------------------
DROP TABLE IF EXISTS `chat_conversations`;
CREATE TABLE `chat_conversations` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户ID',
`target_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标ID(好友或群)',
`room_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '房间ID',
`type` int NULL DEFAULT 1 COMMENT '会话类型(1=私聊,2=群聊)',
`is_top` tinyint(1) NULL DEFAULT 0 COMMENT '是否置顶',
`is_muted` tinyint(1) NULL DEFAULT 0 COMMENT '是否免打扰',
`is_special_care` tinyint(1) NULL DEFAULT 0 COMMENT '是否特别关心',
`unread_count` int NULL DEFAULT 0 COMMENT '未读消息数',
`last_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最后一条消息内容',
`last_time` datetime NULL DEFAULT NULL COMMENT '最后消息时间',
`created_at` datetime(3) NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime(3) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_chat_conversations_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_chat_conversations_target_id`(`target_id` ASC) USING BTREE,
INDEX `idx_chat_conversations_room_id`(`room_id` ASC) USING BTREE,
INDEX `idx_chat_conversations_last_time`(`last_time` ASC) USING BTREE
-- 注意:不添加外键约束,因为 target_id 可能是用户ID私聊或群ID群聊
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户会话表,记录每个用户的最近会话列表和未读信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of chat_conversations
-- ----------------------------
-- ----------------------------
-- Records of chat_rooms
-- ----------------------------