mirror of https://gitee.com/stylefeng/roses
【notice】通知管理接口
parent
1056a41826
commit
0addfa1138
|
@ -23,6 +23,7 @@
|
|||
<module>system-business-user</module>
|
||||
<module>system-business-role</module>
|
||||
<module>system-business-menu</module>
|
||||
<module>system-business-notice</module>
|
||||
<module>system-spring-boot-starter</module>
|
||||
</modules>
|
||||
|
||||
|
|
|
@ -58,6 +58,10 @@
|
|||
<artifactId>spring-web</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
</dependency>
|
||||
|
||||
</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>
|
||||
</dependency>
|
||||
|
||||
<!--通知管理的业务-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>system-business-notice</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
Loading…
Reference in New Issue