diff --git a/kernel-s-system/pom.xml b/kernel-s-system/pom.xml
index d47291dbc..9445f242e 100644
--- a/kernel-s-system/pom.xml
+++ b/kernel-s-system/pom.xml
@@ -23,6 +23,7 @@
system-business-user
system-business-role
system-business-menu
+ system-business-notice
system-spring-boot-starter
diff --git a/kernel-s-system/system-api/pom.xml b/kernel-s-system/system-api/pom.xml
index 33a288f60..cedd8e5d4 100644
--- a/kernel-s-system/system-api/pom.xml
+++ b/kernel-s-system/system-api/pom.xml
@@ -58,6 +58,10 @@
spring-web
provided
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/NoticeServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/NoticeServiceApi.java
new file mode 100644
index 000000000..ee1c4152a
--- /dev/null
+++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/NoticeServiceApi.java
@@ -0,0 +1,12 @@
+package cn.stylefeng.roses.kernel.system;
+
+/**
+ * 通知api
+ *
+ * @author liuhanqing
+ * @date 2021/1/8 21:40
+ */
+public interface NoticeServiceApi {
+
+
+}
diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/NoticeExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/NoticeExceptionEnum.java
new file mode 100644
index 000000000..ba676b901
--- /dev/null
+++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/NoticeExceptionEnum.java
@@ -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;
+ }
+
+}
diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/notice/SysNoticeRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/notice/SysNoticeRequest.java
new file mode 100644
index 000000000..9c49ac063
--- /dev/null
+++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/notice/SysNoticeRequest.java
@@ -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;
+
+}
diff --git a/kernel-s-system/system-business-notice/README.md b/kernel-s-system/system-business-notice/README.md
new file mode 100644
index 000000000..fbfca6830
--- /dev/null
+++ b/kernel-s-system/system-business-notice/README.md
@@ -0,0 +1 @@
+通知模块
\ No newline at end of file
diff --git a/kernel-s-system/system-business-notice/pom.xml b/kernel-s-system/system-business-notice/pom.xml
new file mode 100644
index 000000000..ac0f09390
--- /dev/null
+++ b/kernel-s-system/system-business-notice/pom.xml
@@ -0,0 +1,65 @@
+
+
+ 4.0.0
+
+
+ cn.stylefeng.roses
+ kernel-s-system
+ 1.0.0
+ ../pom.xml
+
+
+ system-business-notice
+
+ jar
+
+
+
+
+
+ cn.stylefeng.roses
+ system-api
+ 1.0.0
+
+
+
+
+
+ cn.stylefeng.roses
+ scanner-api
+ 1.0.0
+
+
+
+
+
+ cn.stylefeng.roses
+ validator-api
+ 1.0.0
+
+
+
+
+
+ cn.stylefeng.roses
+ db-sdk-mp
+ 1.0.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ cn.stylefeng.roses
+ message-api
+ 1.0.0
+ compile
+
+
+
+
+
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/controller/NoticeController.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/controller/NoticeController.java
new file mode 100644
index 000000000..15ea384f0
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/controller/NoticeController.java
@@ -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));
+ }
+}
\ No newline at end of file
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/entity/SysNotice.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/entity/SysNotice.java
new file mode 100644
index 000000000..f8a157b40
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/entity/SysNotice.java
@@ -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;
+
+
+}
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/SysNoticeMapper.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/SysNoticeMapper.java
new file mode 100644
index 000000000..cb5e4f7ad
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/SysNoticeMapper.java
@@ -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 {
+
+}
\ No newline at end of file
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/mapping/SysNoticeMapper.xml b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/mapping/SysNoticeMapper.xml
new file mode 100644
index 000000000..5173b12ca
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/mapper/mapping/SysNoticeMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/SysNoticeService.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/SysNoticeService.java
new file mode 100644
index 000000000..5e6cc2b08
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/SysNoticeService.java
@@ -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, 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 page(SysNoticeRequest SysNoticeParam);
+
+ /**
+ * 系统应用列表
+ *
+ * @param SysNoticeParam 查询参数
+ * @return 系统应用列表
+ * @author liuhanqing
+ * @date 2021/1/9 14:56
+ */
+ List list(SysNoticeRequest SysNoticeParam);
+
+
+}
\ No newline at end of file
diff --git a/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/impl/SysNoticeServiceImpl.java b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/impl/SysNoticeServiceImpl.java
new file mode 100644
index 000000000..5c130d442
--- /dev/null
+++ b/kernel-s-system/system-business-notice/src/main/java/cn/stylefeng/roses/kernel/notice/modular/service/impl/SysNoticeServiceImpl.java
@@ -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 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 page(SysNoticeRequest sysNoticeRequest) {
+ LambdaQueryWrapper wrapper = createWrapper(sysNoticeRequest);
+ Page page = this.page(PageFactory.defaultPage(), wrapper);
+ return PageResultFactory.createPageResult(page);
+ }
+
+ @Override
+ public List list(SysNoticeRequest sysNoticeRequest) {
+ LambdaQueryWrapper 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 createWrapper(SysNoticeRequest sysNoticeRequest) {
+ LambdaQueryWrapper 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;
+ }
+
+}
\ No newline at end of file
diff --git a/kernel-s-system/system-spring-boot-starter/pom.xml b/kernel-s-system/system-spring-boot-starter/pom.xml
index 6e2cd0128..12dddae75 100644
--- a/kernel-s-system/system-spring-boot-starter/pom.xml
+++ b/kernel-s-system/system-spring-boot-starter/pom.xml
@@ -59,6 +59,13 @@
1.0.0
+
+
+ cn.stylefeng.roses
+ system-business-notice
+ 1.0.0
+
+