feat: 新增系统管理/消息管理(列表、查看详情、标记已读、全部已读、删除)

This commit is contained in:
Bull-BCLS
2023-10-30 12:15:37 +08:00
parent 4d70bc84db
commit 9217166e9d
30 changed files with 1633 additions and 67 deletions

View File

@@ -0,0 +1,63 @@
/*
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package top.charles7c.cnadmin.webapi.controller.system;
import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
import java.util.List;
import lombok.RequiredArgsConstructor;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.system.model.query.MessageQuery;
import top.charles7c.cnadmin.system.model.request.MessageRequest;
import top.charles7c.cnadmin.system.model.vo.MessageVO;
import top.charles7c.cnadmin.system.service.MessageService;
import top.charles7c.cnadmin.system.service.MessageUserService;
/**
* 消息管理 API
*
* @author BULL_BCLS
* @since 2023/10/15 19:05
*/
@Tag(name = "消息管理 API")
@RestController
@RequiredArgsConstructor
@CrudRequestMapping(value = "/system/message", api = {Api.PAGE, Api.GET, Api.DELETE, Api.LIST})
public class MessageController
extends BaseController<MessageService, MessageVO, MessageVO, MessageQuery, MessageRequest> {
private final MessageUserService messageUserService;
@Operation(description = "将消息标记已读", summary = "将消息标记已读")
@Parameter(name = "ids", description = "消息ID", example = "1,2", in = ParameterIn.PATH)
@PatchMapping("/read")
public void readMessage(@RequestParam(required = false) List<Long> ids) {
messageUserService.readMessage(ids);
}
}

View File

@@ -1,2 +1,14 @@
-- liquibase formatted sql
-- changeset BUSS_BCLS:1
-- 初始化默认字典
INSERT IGNORE INTO `sys_dict`
(`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
VALUES
(2, '消息类型', 'message_type', NULL, b'1', 1, NOW(), NULL, NULL);
-- 初始化默认字典项
INSERT IGNORE INTO `sys_dict_item`
(`id`, `label`, `value`, `color`, `sort`, `description`, `dict_id`, `create_user`, `create_time`, `update_user`, `update_time`)
VALUES
(3, '系统消息', '1', 'blue', 1, NULL, 2, 1, NOW(), NULL, NULL);

View File

@@ -9,4 +9,23 @@ CREATE TABLE IF NOT EXISTS `sys_user_social` (
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户社会化关联表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户社会化关联表';
-- changeset BUSS_BCLS:2
CREATE TABLE IF NOT EXISTS `sys_message` (
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT '主题',
`content` varchar(255) DEFAULT NULL COMMENT '内容',
`type` varchar(30) NOT NULL COMMENT '类型',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息表';
CREATE TABLE IF NOT EXISTS `sys_message_user` (
`message_id` bigint(20) NOT NULL COMMENT '消息ID',
`user_id` bigint(11) NOT NULL COMMENT '用户ID',
`read_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已读',
`read_time` datetime DEFAULT NULL COMMENT '读取时间',
PRIMARY KEY (`message_id`,`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息和用户关联表';