feat: 新增通知公告功能

新增通知公告功能
This commit is contained in:
胡少翔
2024-09-14 11:14:23 +08:00
parent 0c47c8eca9
commit a7131263c6
7 changed files with 69 additions and 7 deletions

View File

@@ -85,7 +85,8 @@ CREATE TABLE `sys_dict` (
-- ---------------------------- -- ----------------------------
-- Records of 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 -- 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 (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 (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 (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 -- Table structure for sys_log
@@ -478,5 +481,33 @@ CREATE TABLE `gen_field_config` (
KEY `config_id` (`config_id`) KEY `config_id` (`config_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='代码生成字段配置表'; ) 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; SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -87,6 +87,7 @@ CREATE TABLE `sys_dict` (
-- Records of 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 -- 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 (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 (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 (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 -- Table structure for sys_log
@@ -466,5 +469,33 @@ CREATE TABLE `gen_field_config` (
KEY `config_id` (`config_id`) KEY `config_id` (`config_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成字段配置表'; ) 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; SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -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.common.enums.NoticeWayEnum;
import com.youlai.boot.system.model.dto.MessageDTO; import com.youlai.boot.system.model.dto.MessageDTO;

View File

@@ -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.NoticeWayEnum;
import com.youlai.boot.common.enums.NoticeTypeEnum; 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.event.UserConnectionEvent;
import com.youlai.boot.system.model.dto.ChatMessage; import com.youlai.boot.system.model.dto.ChatMessage;
import com.youlai.boot.system.model.dto.MessageDTO; import com.youlai.boot.system.model.dto.MessageDTO;
@@ -58,7 +58,6 @@ public class WebsocketServiceImpl implements MessageService {
*/ */
@Scheduled(fixedRate = 5000) @Scheduled(fixedRate = 5000)
public void sendOnlineUserCount() { public void sendOnlineUserCount() {
log.info("Send online user count: {}", onlineUsers.size());
messagingTemplate.convertAndSend("/topic/onlineUserCount", onlineUsers.size()); messagingTemplate.convertAndSend("/topic/onlineUserCount", onlineUsers.size());
} }

View File

@@ -1,6 +1,6 @@
package com.youlai.boot.system.handler; 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 com.youlai.boot.system.model.dto.MessageDTO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@@ -58,8 +58,6 @@
where where
sn.is_deleted = 0 sn.is_deleted = 0
AND sn.id = #{id} AND sn.id = #{id}
AND sn.release_status = 1
</select> </select>
</mapper> </mapper>

View File

@@ -38,6 +38,9 @@
<if test="queryParams.userId != null"> <if test="queryParams.userId != null">
sns.user_id = #{queryParams.userId} sns.user_id = #{queryParams.userId}
</if> </if>
<if test="queryParams.title != null and queryParams.title != ''">
AND sn.title LIKE CONCAT('%',#{queryParams.title},'%')
</if>
</where> </where>
ORDER BY ORDER BY
sn.release_time DESC sn.release_time DESC