mirror of https://gitee.com/stylefeng/roses
【notice】通知管理接口
parent
1056a41826
commit
0addfa1138
|
@ -23,6 +23,7 @@
|
||||||
<module>system-business-user</module>
|
<module>system-business-user</module>
|
||||||
<module>system-business-role</module>
|
<module>system-business-role</module>
|
||||||
<module>system-business-menu</module>
|
<module>system-business-menu</module>
|
||||||
|
<module>system-business-notice</module>
|
||||||
<module>system-spring-boot-starter</module>
|
<module>system-spring-boot-starter</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,10 @@
|
||||||
<artifactId>spring-web</artifactId>
|
<artifactId>spring-web</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-annotations</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package cn.stylefeng.roses.kernel.system;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知api
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 21:40
|
||||||
|
*/
|
||||||
|
public interface NoticeServiceApi {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
Copyright [2020] [https://www.stylefeng.cn]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||||
|
|
||||||
|
1.请不要删除和修改根目录下的LICENSE文件。
|
||||||
|
2.请不要删除和修改Guns源码头部的版权声明。
|
||||||
|
3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||||
|
4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns-separation
|
||||||
|
5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns-separation
|
||||||
|
6.若您的项目无法满足以上几点,可申请商业授权,获取Guns商业授权许可,请在官网购买授权,地址为 https://www.stylefeng.cn
|
||||||
|
*/
|
||||||
|
package cn.stylefeng.roses.kernel.system.exception.enums;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.rule.abstracts.AbstractExceptionEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.system.constants.SystemConstants;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知管理相关异常枚举
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 16:11
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public enum NoticeExceptionEnum implements AbstractExceptionEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知不存在
|
||||||
|
*/
|
||||||
|
NOTICE_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "91", "通知不存在"),
|
||||||
|
/**
|
||||||
|
* 通知范围不允许修改
|
||||||
|
*/
|
||||||
|
NOTICE_SCOPE_NOT_EDIT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "92", "通知范围不允许修改");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误编码
|
||||||
|
*/
|
||||||
|
private final String errorCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提示用户信息
|
||||||
|
*/
|
||||||
|
private final String userTip;
|
||||||
|
|
||||||
|
NoticeExceptionEnum(String errorCode, String userTip) {
|
||||||
|
this.errorCode = errorCode;
|
||||||
|
this.userTip = userTip;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
package cn.stylefeng.roses.kernel.system.pojo.notice;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统通知参数
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 21:53
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class SysNoticeRequest extends BaseRequest {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知id
|
||||||
|
*/
|
||||||
|
@NotNull(message = "noticeId不能为空", groups = {edit.class, delete.class, detail.class})
|
||||||
|
private Long noticeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知标题
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "通知标题不能为空", groups = {add.class, edit.class})
|
||||||
|
private String noticeTitle;
|
||||||
|
/**
|
||||||
|
* 通知摘要
|
||||||
|
*/
|
||||||
|
private String noticeSummary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知优先级
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "通知优先级不能为空", groups = {add.class, edit.class})
|
||||||
|
private String priorityLevel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知开始时间
|
||||||
|
*/
|
||||||
|
@NotNull(message = "通知开始时间不能为空", groups = {add.class, edit.class})
|
||||||
|
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date noticeBeginTime;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知结束时间
|
||||||
|
*/
|
||||||
|
@NotNull(message = "通知开始时间不能为空", groups = {add.class, edit.class})
|
||||||
|
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date noticeEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知内容
|
||||||
|
*/
|
||||||
|
private String noticeContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知范围
|
||||||
|
*/
|
||||||
|
private String noticeScope;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
通知模块
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>kernel-s-system</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>system-business-notice</artifactId>
|
||||||
|
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!--系统管理api模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>system-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--通知api模块-->
|
||||||
|
<!--用在通知控制器,通知扫描上-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>scanner-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--参数校验模块-->
|
||||||
|
<!--用在控制器,参数校验-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>validator-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--数据库sdk-->
|
||||||
|
<!--数据库dao框架-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>db-sdk-mp</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--web模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>message-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,98 @@
|
||||||
|
package cn.stylefeng.roses.kernel.notice.modular.controller;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.service.SysNoticeService;
|
||||||
|
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
||||||
|
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
||||||
|
import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.notice.SysNoticeRequest;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知管理控制器
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 19:47
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@ApiResource(name = "通知管理")
|
||||||
|
public class NoticeController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysNoticeService sysResourceService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:44
|
||||||
|
*/
|
||||||
|
@PostResource(name = "添加通知管理", path = "/sysNotice/add")
|
||||||
|
public ResponseData add(@RequestBody @Validated(SysNoticeRequest.add.class) SysNoticeRequest sysNoticeParam) {
|
||||||
|
sysResourceService.add(sysNoticeParam);
|
||||||
|
return new SuccessResponseData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:54
|
||||||
|
*/
|
||||||
|
@PostResource(name = "编辑通知管理", path = "/sysNotice/edit")
|
||||||
|
public ResponseData edit(@RequestBody @Validated(SysNoticeRequest.edit.class) SysNoticeRequest sysNoticeParam) {
|
||||||
|
sysResourceService.edit(sysNoticeParam);
|
||||||
|
return new SuccessResponseData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:54
|
||||||
|
*/
|
||||||
|
@PostResource(name = "删除通知管理", path = "/sysNotice/delete")
|
||||||
|
public ResponseData delete(@RequestBody @Validated(SysNoticeRequest.delete.class) SysNoticeRequest sysNoticeParam) {
|
||||||
|
sysResourceService.delete(sysNoticeParam);
|
||||||
|
return new SuccessResponseData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 9:49
|
||||||
|
*/
|
||||||
|
@GetResource(name = "查看通知管理", path = "/sysNotice/detail")
|
||||||
|
public ResponseData detail(@Validated(SysNoticeRequest.detail.class) SysNoticeRequest sysNoticeParam) {
|
||||||
|
return new SuccessResponseData(sysResourceService.detail(sysNoticeParam));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 21:23
|
||||||
|
*/
|
||||||
|
@GetResource(name = "查询通知管理", path = "/sysNotice/page")
|
||||||
|
public ResponseData page(SysNoticeRequest sysNoticeParam) {
|
||||||
|
return new SuccessResponseData(sysResourceService.page(sysNoticeParam));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知管理列表
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:55
|
||||||
|
*/
|
||||||
|
@GetResource(name = "通知管理列表", path = "/sysNotice/list")
|
||||||
|
public ResponseData list(SysNoticeRequest sysNoticeParam) {
|
||||||
|
return new SuccessResponseData(sysResourceService.list(sysNoticeParam));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
package cn.stylefeng.roses.kernel.notice.modular.entity;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知表
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 22:45
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("sys_notice")
|
||||||
|
public class SysNotice extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知id
|
||||||
|
*/
|
||||||
|
@TableId("notice_id")
|
||||||
|
private Long noticeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知标题
|
||||||
|
*/
|
||||||
|
@TableField("notice_title")
|
||||||
|
private String noticeTitle;
|
||||||
|
/**
|
||||||
|
* 通知摘要
|
||||||
|
*/
|
||||||
|
@TableField("notice_summary")
|
||||||
|
private String noticeSummary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知优先级
|
||||||
|
*/
|
||||||
|
@TableField(value = "priority_level")
|
||||||
|
private String priorityLevel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知开始时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "notice_begin_time")
|
||||||
|
private Date noticeBeginTime;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知结束时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "notice_end_time")
|
||||||
|
private Date noticeEndTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知内容
|
||||||
|
*/
|
||||||
|
@TableField("notice_content")
|
||||||
|
private String noticeContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知范围
|
||||||
|
*/
|
||||||
|
@TableField("notice_scope")
|
||||||
|
private String noticeScope;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除:Y-已删除,N-未删除
|
||||||
|
*/
|
||||||
|
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package cn.stylefeng.roses.kernel.notice.modular.mapper;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.entity.SysNotice;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知表 Mapper 接口
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 22:45
|
||||||
|
*/
|
||||||
|
public interface SysNoticeMapper extends BaseMapper<SysNotice> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="cn.stylefeng.roses.kernel.notice.modular.mapper.SysNoticeMapper">
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,78 @@
|
||||||
|
package cn.stylefeng.roses.kernel.notice.modular.service;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.entity.SysNotice;
|
||||||
|
import cn.stylefeng.roses.kernel.system.NoticeServiceApi;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.notice.SysNoticeRequest;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知服务类
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 19:56
|
||||||
|
*/
|
||||||
|
public interface SysNoticeService extends IService<SysNotice>, NoticeServiceApi {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加系统应用
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 添加参数
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:57
|
||||||
|
*/
|
||||||
|
void add(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑系统应用
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 编辑参数
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:58
|
||||||
|
*/
|
||||||
|
void edit(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除系统应用
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 删除参数
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:57
|
||||||
|
*/
|
||||||
|
void delete(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看系统应用
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 查看参数
|
||||||
|
* @return 系统应用
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:56
|
||||||
|
*/
|
||||||
|
SysNotice detail(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统应用
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 查询参数
|
||||||
|
* @return 查询分页结果
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:56
|
||||||
|
*/
|
||||||
|
PageResult<SysNotice> page(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统应用列表
|
||||||
|
*
|
||||||
|
* @param SysNoticeParam 查询参数
|
||||||
|
* @return 系统应用列表
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 14:56
|
||||||
|
*/
|
||||||
|
List<SysNotice> list(SysNoticeRequest SysNoticeParam);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,167 @@
|
||||||
|
package cn.stylefeng.roses.kernel.notice.modular.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.message.api.MessageApi;
|
||||||
|
import cn.stylefeng.roses.kernel.message.api.enums.MessageBusinessTypeEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.message.api.pojo.MessageSendParam;
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.entity.SysNotice;
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.mapper.SysNoticeMapper;
|
||||||
|
import cn.stylefeng.roses.kernel.notice.modular.service.SysNoticeService;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||||
|
import cn.stylefeng.roses.kernel.system.exception.enums.NoticeExceptionEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.notice.SysNoticeRequest;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知表 服务实现类
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/8 22:45
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice> implements SysNoticeService {
|
||||||
|
|
||||||
|
|
||||||
|
private static String NOTICE_SCOPE_ALL = "all";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysNoticeMapper noticeMapper;
|
||||||
|
/**
|
||||||
|
* 系统消息api
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private MessageApi messageApi;
|
||||||
|
|
||||||
|
private void sendMessage(SysNotice sysNotice){
|
||||||
|
MessageSendParam message = new MessageSendParam();
|
||||||
|
// 消息标题
|
||||||
|
message.setMessageTitle(sysNotice.getNoticeTitle());
|
||||||
|
// 消息内容
|
||||||
|
message.setMessageContent(sysNotice.getNoticeSummary());
|
||||||
|
// 消息优先级
|
||||||
|
message.setPriorityLevel(sysNotice.getPriorityLevel());
|
||||||
|
// 消息发送范围
|
||||||
|
message.setReceiveUserIds(sysNotice.getNoticeScope());
|
||||||
|
// 消息业务类型
|
||||||
|
message.setBusinessType(MessageBusinessTypeEnum.SYS_NOTICE.getCode());
|
||||||
|
message.setBusinessId(sysNotice.getNoticeId());
|
||||||
|
messageApi.sendMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
SysNotice sysNotice = new SysNotice();
|
||||||
|
BeanUtil.copyProperties(sysNoticeRequest, sysNotice);
|
||||||
|
if(StrUtil.isBlank(sysNotice.getNoticeScope())){
|
||||||
|
sysNotice.setNoticeScope(NOTICE_SCOPE_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果保存成功调用发送消息
|
||||||
|
if(this.save(sysNotice)){
|
||||||
|
sendMessage(sysNotice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void edit(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
|
||||||
|
SysNotice sysNotice = this.querySysNotice(sysNoticeRequest);
|
||||||
|
String noticeScope = sysNotice.getNoticeScope();
|
||||||
|
if(StrUtil.isBlank(sysNoticeRequest.getNoticeScope())){
|
||||||
|
sysNoticeRequest.setNoticeScope(NOTICE_SCOPE_ALL);
|
||||||
|
}
|
||||||
|
if(sysNoticeRequest.equals(sysNotice.getNoticeScope())){
|
||||||
|
throw new ServiceException(NoticeExceptionEnum.NOTICE_SCOPE_NOT_EDIT);
|
||||||
|
}
|
||||||
|
BeanUtil.copyProperties(sysNoticeRequest, sysNotice);
|
||||||
|
|
||||||
|
// 通知范围不允许修改
|
||||||
|
sysNotice.setNoticeScope(noticeScope);
|
||||||
|
|
||||||
|
if(this.updateById(sysNotice)){
|
||||||
|
sendMessage(sysNotice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
SysNotice sysNotice = this.querySysNotice(sysNoticeRequest);
|
||||||
|
// 逻辑删除
|
||||||
|
sysNotice.setDelFlag(YesOrNotEnum.Y.getCode());
|
||||||
|
this.updateById(sysNotice);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysNotice detail(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
return this.querySysNotice(sysNoticeRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<SysNotice> page(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
LambdaQueryWrapper<SysNotice> wrapper = createWrapper(sysNoticeRequest);
|
||||||
|
Page<SysNotice> page = this.page(PageFactory.defaultPage(), wrapper);
|
||||||
|
return PageResultFactory.createPageResult(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysNotice> list(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
LambdaQueryWrapper<SysNotice> wrapper = createWrapper(sysNoticeRequest);
|
||||||
|
return this.list(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取通知管理
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2021/1/9 16:56
|
||||||
|
*/
|
||||||
|
private SysNotice querySysNotice(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
SysNotice sysNotice = this.getById(sysNoticeRequest.getNoticeId());
|
||||||
|
if (ObjectUtil.isNull(sysNotice)) {
|
||||||
|
throw new ServiceException(NoticeExceptionEnum.NOTICE_NOT_EXIST);
|
||||||
|
}
|
||||||
|
return sysNotice;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建wrapper
|
||||||
|
*
|
||||||
|
* @author liuhanqing
|
||||||
|
* @date 2020/1/9 16:16
|
||||||
|
*/
|
||||||
|
private LambdaQueryWrapper<SysNotice> createWrapper(SysNoticeRequest sysNoticeRequest) {
|
||||||
|
LambdaQueryWrapper<SysNotice> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (ObjectUtil.isNotNull(sysNoticeRequest)) {
|
||||||
|
// 根据id查询
|
||||||
|
if (ObjectUtil.isNotEmpty(sysNoticeRequest.getNoticeId())) {
|
||||||
|
queryWrapper.eq(SysNotice::getNoticeId, sysNoticeRequest.getNoticeId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据消息标题模糊查询
|
||||||
|
if (ObjectUtil.isNotEmpty(sysNoticeRequest.getNoticeTitle())) {
|
||||||
|
queryWrapper.like(SysNotice::getNoticeTitle, sysNoticeRequest.getNoticeTitle()).or().like(SysNotice::getNoticeSummary, sysNoticeRequest.getNoticeTitle()).or().like(SysNotice::getNoticeContent, sysNoticeRequest.getNoticeTitle());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询未删除状态的
|
||||||
|
queryWrapper.eq(SysNotice::getDelFlag, YesOrNotEnum.N.getCode());
|
||||||
|
|
||||||
|
return queryWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -59,6 +59,13 @@
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--通知管理的业务-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>system-business-notice</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
Loading…
Reference in New Issue