diff --git a/sql/mysql5/youlai_boot.sql b/sql/mysql5/youlai_boot.sql index b9e1aaab..35ffe067 100644 --- a/sql/mysql5/youlai_boot.sql +++ b/sql/mysql5/youlai_boot.sql @@ -85,7 +85,8 @@ CREATE TABLE `sys_dict` ( -- ---------------------------- -- Records of sys_dict -- ---------------------------- -INSERT INTO `sys_dict` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2024-06-22 21:14:47', 0); +INSERT INTO `sys_dict` VALUES (1,'性别','gender',1,NULL,'2019-12-06 19:03:32','2024-06-22 21:14:47',0); +INSERT INTO `sys_dict` VALUES (2,'通知类型','notice_type',1,NULL,'2024-09-01 17:23:48','2024-09-01 17:23:54',0); -- ---------------------------- -- Table structure for sys_dict_item @@ -110,6 +111,8 @@ CREATE TABLE `sys_dict_item` ( INSERT INTO `sys_dict_item` VALUES (1, 1, '男', '1', 1, 1, NULL, '2019-05-05 13:07:52', '2022-06-12 23:20:39'); INSERT INTO `sys_dict_item` VALUES (2, 1, '女', '2', 1, 2, NULL, '2019-04-19 11:33:00', '2019-07-02 14:23:05'); INSERT INTO `sys_dict_item` VALUES (3, 1, '保密', '0', 1, 3, NULL, '2020-10-17 08:09:31', '2020-10-17 08:09:31'); +INSERT INTO `sys_dict_item` VALUES (4, 2,'系统通知','1',1, 1, NULL,'2020-10-17 08:09:31', '2020-10-17 08:09:31'); +INSERT INTO `sys_dict_item` VALUES (5, 2,'通知消息','2',1, 2, NULL,'2020-10-17 08:09:31', '2020-10-17 08:09:31'); -- ---------------------------- -- Table structure for sys_log @@ -478,5 +481,33 @@ CREATE TABLE `gen_field_config` ( KEY `config_id` (`config_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='代码生成字段配置表'; +CREATE TABLE `sys_notice` ( + `id` BIGINT NOT NULL AUTO_INCREMENT, + `title` VARCHAR(50) DEFAULT NULL COMMENT '通知标题', + `content` TEXT COMMENT '通知内容', + `notice_type` INT NOT NULL COMMENT '通知类型', + `release_by` BIGINT DEFAULT NULL COMMENT '发布人', + `priority` TINYINT NOT NULL COMMENT '优先级(0-低 1-中 2-高)', + `tar_type` TINYINT NOT NULL COMMENT '目标类型(0-全体 1-指定)', + `tar_ids` TEXT COMMENT '目标人id', + `release_status` TINYINT NOT NULL COMMENT '发布状态(0-未发布 1已发布 2已撤回)', + `release_time` DATETIME DEFAULT NULL COMMENT '发布时间', + `recall_time` DATETIME DEFAULT NULL COMMENT '撤回时间', + `create_by` BIGINT NOT NULL COMMENT '创建人ID', + `create_time` DATETIME NOT NULL COMMENT '创建时间', + `update_by` BIGINT DEFAULT NULL COMMENT '更新人ID', + `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', + `is_deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标识(0-未删除 1-已删除)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB COMMENT='通知公告'; + +CREATE TABLE `sys_notice_status` ( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id', + `notice_id` BIGINT NOT NULL COMMENT '公共通知id', + `user_id` INT NOT NULL COMMENT '用户id', + `read_status` BIGINT DEFAULT NULL COMMENT '读取状态,0未读,1已读取', + `read_time` DATETIME DEFAULT NULL COMMENT '用户阅读时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB COMMENT='用户公告状态表'; SET FOREIGN_KEY_CHECKS = 1; diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index 2cfdc939..192fa6dc 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -87,6 +87,7 @@ CREATE TABLE `sys_dict` ( -- Records of sys_dict -- ---------------------------- INSERT INTO `sys_dict` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2024-06-22 21:14:47', 0); +INSERT INTO `sys_dict` VALUES (2,'通知类型','notice_type',1,NULL,'2024-09-01 17:23:48','2024-09-01 17:23:54',0); -- ---------------------------- -- Table structure for sys_dict_item @@ -111,6 +112,8 @@ CREATE TABLE `sys_dict_item` ( INSERT INTO `sys_dict_item` VALUES (1, 1, '男', '1', 1, 1, NULL, '2019-05-05 13:07:52', '2022-06-12 23:20:39'); INSERT INTO `sys_dict_item` VALUES (2, 1, '女', '2', 1, 2, NULL, '2019-04-19 11:33:00', '2019-07-02 14:23:05'); INSERT INTO `sys_dict_item` VALUES (3, 1, '保密', '0', 1, 3, NULL, '2020-10-17 08:09:31', '2020-10-17 08:09:31'); +INSERT INTO `sys_dict_item` VALUES (4, 2,'系统通知','1',1, 1, NULL,'2020-10-17 08:09:31', '2020-10-17 08:09:31'); +INSERT INTO `sys_dict_item` VALUES (5, 2,'通知消息','2',1, 2, NULL,'2020-10-17 08:09:31', '2020-10-17 08:09:31'); -- ---------------------------- -- Table structure for sys_log @@ -466,5 +469,33 @@ CREATE TABLE `gen_field_config` ( KEY `config_id` (`config_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成字段配置表'; +CREATE TABLE `sys_notice` ( + `id` BIGINT NOT NULL AUTO_INCREMENT, + `title` VARCHAR(50) DEFAULT NULL COMMENT '通知标题', + `content` TEXT COMMENT '通知内容', + `notice_type` INT NOT NULL COMMENT '通知类型', + `release_by` BIGINT DEFAULT NULL COMMENT '发布人', + `priority` TINYINT NOT NULL COMMENT '优先级(0-低 1-中 2-高)', + `tar_type` TINYINT NOT NULL COMMENT '目标类型(0-全体 1-指定)', + `tar_ids` TEXT COMMENT '目标人id', + `release_status` TINYINT NOT NULL COMMENT '发布状态(0-未发布 1已发布 2已撤回)', + `release_time` DATETIME DEFAULT NULL COMMENT '发布时间', + `recall_time` DATETIME DEFAULT NULL COMMENT '撤回时间', + `create_by` BIGINT NOT NULL COMMENT '创建人ID', + `create_time` DATETIME NOT NULL COMMENT '创建时间', + `update_by` BIGINT DEFAULT NULL COMMENT '更新人ID', + `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', + `is_deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标识(0-未删除 1-已删除)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB COMMENT='通知公告'; + +CREATE TABLE `sys_notice_status` ( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id', + `notice_id` BIGINT NOT NULL COMMENT '公共通知id', + `user_id` INT NOT NULL COMMENT '用户id', + `read_status` BIGINT DEFAULT NULL COMMENT '读取状态,0未读,1已读取', + `read_time` DATETIME DEFAULT NULL COMMENT '用户阅读时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB COMMENT='用户公告状态表'; SET FOREIGN_KEY_CHECKS = 1; diff --git a/src/main/java/com/youlai/boot/module/websocket/service/MessageService.java b/src/main/java/com/youlai/boot/module/websocket/service/MessageService.java index 084d6825..040990b7 100644 --- a/src/main/java/com/youlai/boot/module/websocket/service/MessageService.java +++ b/src/main/java/com/youlai/boot/module/websocket/service/MessageService.java @@ -1,4 +1,4 @@ -package com.youlai.boot.platform.websocket.service; +package com.youlai.boot.module.websocket.service; import com.youlai.boot.common.enums.NoticeWayEnum; import com.youlai.boot.system.model.dto.MessageDTO; diff --git a/src/main/java/com/youlai/boot/module/websocket/service/OnlineUserService.java b/src/main/java/com/youlai/boot/module/websocket/service/impl/WebsocketServiceImpl.java similarity index 95% rename from src/main/java/com/youlai/boot/module/websocket/service/OnlineUserService.java rename to src/main/java/com/youlai/boot/module/websocket/service/impl/WebsocketServiceImpl.java index 5b98e4b6..aab4fd50 100644 --- a/src/main/java/com/youlai/boot/module/websocket/service/OnlineUserService.java +++ b/src/main/java/com/youlai/boot/module/websocket/service/impl/WebsocketServiceImpl.java @@ -2,7 +2,7 @@ package com.youlai.boot.module.websocket.service.impl; import com.youlai.boot.common.enums.NoticeWayEnum; import com.youlai.boot.common.enums.NoticeTypeEnum; -import com.youlai.boot.platform.websocket.service.MessageService; +import com.youlai.boot.module.websocket.service.MessageService; import com.youlai.boot.system.event.UserConnectionEvent; import com.youlai.boot.system.model.dto.ChatMessage; import com.youlai.boot.system.model.dto.MessageDTO; @@ -58,7 +58,6 @@ public class WebsocketServiceImpl implements MessageService { */ @Scheduled(fixedRate = 5000) public void sendOnlineUserCount() { - log.info("Send online user count: {}", onlineUsers.size()); messagingTemplate.convertAndSend("/topic/onlineUserCount", onlineUsers.size()); } diff --git a/src/main/java/com/youlai/boot/system/handler/MessageHandler.java b/src/main/java/com/youlai/boot/system/handler/MessageHandler.java index 21ae2421..689a3816 100644 --- a/src/main/java/com/youlai/boot/system/handler/MessageHandler.java +++ b/src/main/java/com/youlai/boot/system/handler/MessageHandler.java @@ -1,6 +1,6 @@ package com.youlai.boot.system.handler; -import com.youlai.boot.platform.websocket.service.MessageService; +import com.youlai.boot.module.websocket.service.MessageService; import com.youlai.boot.system.model.dto.MessageDTO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/resources/mapper/NoticeMapper.xml b/src/main/resources/mapper/NoticeMapper.xml index 74969f36..ef23eaee 100644 --- a/src/main/resources/mapper/NoticeMapper.xml +++ b/src/main/resources/mapper/NoticeMapper.xml @@ -58,8 +58,6 @@ where sn.is_deleted = 0 AND sn.id = #{id} - AND sn.release_status = 1 - diff --git a/src/main/resources/mapper/NoticeStatusMapper.xml b/src/main/resources/mapper/NoticeStatusMapper.xml index d08025ee..2a2dd71d 100644 --- a/src/main/resources/mapper/NoticeStatusMapper.xml +++ b/src/main/resources/mapper/NoticeStatusMapper.xml @@ -38,6 +38,9 @@ sns.user_id = #{queryParams.userId} + + AND sn.title LIKE CONCAT('%',#{queryParams.title},'%') + ORDER BY sn.release_time DESC