From 4a5da6eaf50be732b7611b209f8cb0b7a00b9b92 Mon Sep 17 00:00:00 2001
From: liuhanqing <447067298@qq.com>
Date: Fri, 1 Jan 2021 22:35:57 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90message=E3=80=91=E7=B3=BB=E7=BB=9F?=
=?UTF-8?q?=E6=B6=88=E6=81=AF=E6=A8=A1=E5=9D=97=E5=88=9D=E6=AD=A5=E5=88=92?=
=?UTF-8?q?=E5=88=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
kernel-d-message/README.md | 3 +
kernel-d-message/message-api/README.md | 1 +
kernel-d-message/message-api/pom.xml | 57 ++++++++++++
.../roses/kernel/message/api/MessageApi.java | 14 +++
.../api/constants/MessageConstants.java | 36 ++++++++
.../message/api/context/MessageContext.java | 24 +++++
.../api/exception/MessageException.java | 19 ++++
.../exception/enums/MessageExceptionEnum.java | 37 ++++++++
.../kernel/message/api/pojo/MessageParam.java | 71 +++++++++++++++
.../message/api/pojo/MessageSendParam.java | 53 +++++++++++
kernel-d-message/message-business/README.md | 1 +
kernel-d-message/message-business/pom.xml | 59 +++++++++++++
.../controller/SysMessageController.java | 25 ++++++
kernel-d-message/message-sdk-db/README.md | 1 +
kernel-d-message/message-sdk-db/pom.xml | 36 ++++++++
.../kernel/message/db/entity/SysMessage.java | 87 +++++++++++++++++++
.../message/db/mapper/SysMessageMapper.java | 14 +++
.../db/mapper/mapping/SysMessageMapper.xml | 4 +
.../message/db/service/SysMessageService.java | 14 +++
.../service/impl/SysMessageServiceImpl.java | 18 ++++
.../message-spring-boot-starter/README.md | 1 +
.../message-spring-boot-starter/pom.xml | 38 ++++++++
.../starter/GunsMessageAutoConfiguration.java | 16 ++++
.../main/resources/META-INF/spring.factories | 2 +
kernel-d-message/pom.xml | 36 ++++++++
pom.xml | 3 +
26 files changed, 670 insertions(+)
create mode 100644 kernel-d-message/README.md
create mode 100644 kernel-d-message/message-api/README.md
create mode 100644 kernel-d-message/message-api/pom.xml
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/MessageApi.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/context/MessageContext.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/MessageException.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/enums/MessageExceptionEnum.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageParam.java
create mode 100644 kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageSendParam.java
create mode 100644 kernel-d-message/message-business/README.md
create mode 100644 kernel-d-message/message-business/pom.xml
create mode 100644 kernel-d-message/message-business/src/main/java/cn/stylefeng/roses/kernel/message/modular/manage/controller/SysMessageController.java
create mode 100644 kernel-d-message/message-sdk-db/README.md
create mode 100644 kernel-d-message/message-sdk-db/pom.xml
create mode 100644 kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/entity/SysMessage.java
create mode 100644 kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/SysMessageMapper.java
create mode 100644 kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/mapping/SysMessageMapper.xml
create mode 100644 kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/SysMessageService.java
create mode 100644 kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/impl/SysMessageServiceImpl.java
create mode 100644 kernel-d-message/message-spring-boot-starter/README.md
create mode 100644 kernel-d-message/message-spring-boot-starter/pom.xml
create mode 100644 kernel-d-message/message-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/message/starter/GunsMessageAutoConfiguration.java
create mode 100644 kernel-d-message/message-spring-boot-starter/src/main/resources/META-INF/spring.factories
create mode 100644 kernel-d-message/pom.xml
diff --git a/kernel-d-message/README.md b/kernel-d-message/README.md
new file mode 100644
index 000000000..2c1c3db8c
--- /dev/null
+++ b/kernel-d-message/README.md
@@ -0,0 +1,3 @@
+系统消息模块
+
+系统消息模块可以发送消息记录,已读未读状态
diff --git a/kernel-d-message/message-api/README.md b/kernel-d-message/message-api/README.md
new file mode 100644
index 000000000..1368f2aa3
--- /dev/null
+++ b/kernel-d-message/message-api/README.md
@@ -0,0 +1 @@
+系统消息模块的api
\ No newline at end of file
diff --git a/kernel-d-message/message-api/pom.xml b/kernel-d-message/message-api/pom.xml
new file mode 100644
index 000000000..17ac09d84
--- /dev/null
+++ b/kernel-d-message/message-api/pom.xml
@@ -0,0 +1,57 @@
+
+
+ * 接口可以有多种实现,目前只实现数据库存储方式
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 20:21
+ */
+public interface MessageApi {
+
+
+}
\ No newline at end of file
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java
new file mode 100644
index 000000000..c61294c5e
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java
@@ -0,0 +1,36 @@
+package cn.stylefeng.roses.kernel.message.api.constants;
+
+/**
+ * message模块的常量
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 20:58
+ */
+public interface MessageConstants {
+
+ /**
+ * 消息模块的名称
+ */
+ String MESSAGE_MODULE_NAME = "kernel-d-message";
+
+ /**
+ * 异常枚举的步进值
+ */
+ String MESSAGE_EXCEPTION_STEP_CODE = "23";
+
+ /**
+ * 发送所有用户标识
+ */
+ String RECEIVE_ALL_USER_FLAG = "all";
+
+ /**
+ * 默认查询日志分页
+ */
+ Integer DEFAULT_BEGIN_PAGE_NO = 1;
+
+ /**
+ * 默认查询日志分页大小
+ */
+ Integer DEFAULT_PAGE_SIZE = 10;
+
+}
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/context/MessageContext.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/context/MessageContext.java
new file mode 100644
index 000000000..07a3df1ff
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/context/MessageContext.java
@@ -0,0 +1,24 @@
+package cn.stylefeng.roses.kernel.message.api.context;
+
+import cn.hutool.extra.spring.SpringUtil;
+import cn.stylefeng.roses.kernel.message.api.MessageApi;
+
+/**
+ * 消息操作api的获取
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 21:13
+ */
+public class MessageContext {
+
+ /**
+ * 获取消息操作api
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 21:13
+ */
+ public static MessageApi me() {
+ return SpringUtil.getBean(MessageApi.class);
+ }
+
+}
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/MessageException.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/MessageException.java
new file mode 100644
index 000000000..a98e76b81
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/MessageException.java
@@ -0,0 +1,19 @@
+package cn.stylefeng.roses.kernel.message.api.exception;
+
+import cn.stylefeng.roses.kernel.message.api.constants.MessageConstants;
+import cn.stylefeng.roses.kernel.rule.abstracts.AbstractExceptionEnum;
+import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
+
+/**
+ * 消息异常枚举
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 20:55
+ */
+public class MessageException extends ServiceException {
+
+ public MessageException(AbstractExceptionEnum exception) {
+ super(MessageConstants.MESSAGE_MODULE_NAME, exception);
+ }
+
+}
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/enums/MessageExceptionEnum.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/enums/MessageExceptionEnum.java
new file mode 100644
index 000000000..8498988cb
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/exception/enums/MessageExceptionEnum.java
@@ -0,0 +1,37 @@
+package cn.stylefeng.roses.kernel.message.api.exception.enums;
+
+import cn.stylefeng.roses.kernel.message.api.constants.MessageConstants;
+import cn.stylefeng.roses.kernel.rule.abstracts.AbstractExceptionEnum;
+import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
+import lombok.Getter;
+
+/**
+ * 消息异常枚举
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 21:14
+ */
+@Getter
+public enum MessageExceptionEnum implements AbstractExceptionEnum {
+
+ /**
+ * 发送系统消息时,传入的参数中receiveUserIds不合法
+ */
+ ERROR_RECEIVE_USER_IDS(RuleConstants.BUSINESS_ERROR_TYPE_CODE + MessageConstants.MESSAGE_EXCEPTION_STEP_CODE + "01", "接收用户id字符串不合法!");
+
+ /**
+ * 错误编码
+ */
+ private final String errorCode;
+
+ /**
+ * 提示用户信息
+ */
+ private final String userTip;
+
+ MessageExceptionEnum(String errorCode, String userTip) {
+ this.errorCode = errorCode;
+ this.userTip = userTip;
+ }
+
+}
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageParam.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageParam.java
new file mode 100644
index 000000000..8d28ea806
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageParam.java
@@ -0,0 +1,71 @@
+package cn.stylefeng.roses.kernel.message.api.pojo.manage;
+
+import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 系统消息的查询参数
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 20:23
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MessageParam extends BaseRequest {
+
+ /**
+ * 消息id
+ */
+ @NotNull(message = "messageId不能为空", groups = {edit.class, delete.class, detail.class})
+ private Long messageId;
+
+ /**
+ * 接收用户id
+ */
+ private Long receiveUserId;
+
+ /**
+ * 发送用户id
+ */
+ private Long sendUserId;
+
+ /**
+ * 消息标题
+ */
+ private String messageTitle;
+
+ /**
+ * 消息的内容
+ */
+ private String messageContent;
+
+ /**
+ * 消息类型
+ */
+ private String messageType;
+
+ /**
+ * 消息发送时间
+ */
+ private Date messageSendTime;
+
+ /**
+ * 业务id
+ */
+ private Long businessId;
+
+ /**
+ * 业务类型
+ */
+ private String businessType;
+
+ /**
+ * 阅读状态:0-未读,1-已读
+ */
+ private Integer readFlag;
+
+}
diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageSendParam.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageSendParam.java
new file mode 100644
index 000000000..6a9b334bf
--- /dev/null
+++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/pojo/MessageSendParam.java
@@ -0,0 +1,53 @@
+package cn.stylefeng.roses.kernel.message.api.pojo.manage;
+
+import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 发送系统消息的参数
+ *
+ * @author liuhanqing
+ * @date 2021/1/1 20:23
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MessageSendParam extends BaseRequest {
+
+ /**
+ * 接收用户id字符串,多个以,分割
+ */
+ @NotBlank(message = "接收用户ID字符串不能为空", groups = {add.class, edit.class})
+ private String receiveUserIds;
+
+ /**
+ * 消息标题
+ */
+ @NotBlank(message = "消息标题不能为空", groups = {add.class, edit.class})
+ private String messageTitle;
+
+ /**
+ * 消息的内容
+ */
+ private String messageContent;
+
+ /**
+ * 消息类型
+ */
+ private String messageType;
+
+ /**
+ * 业务id
+ */
+ @NotBlank(message = "业务id不能为空", groups = {add.class, edit.class})
+ private Long businessId;
+
+ /**
+ * 业务类型
+ */
+ @NotBlank(message = "业务类型不能为空", groups = {add.class, edit.class})
+ private String businessType;
+
+}
diff --git a/kernel-d-message/message-business/README.md b/kernel-d-message/message-business/README.md
new file mode 100644
index 000000000..46ec04adf
--- /dev/null
+++ b/kernel-d-message/message-business/README.md
@@ -0,0 +1 @@
+系统消息业务模块,包含发送消息,查看消息,消息列表,已读消息,未读消息的业务
\ No newline at end of file
diff --git a/kernel-d-message/message-business/pom.xml b/kernel-d-message/message-business/pom.xml
new file mode 100644
index 000000000..83979a693
--- /dev/null
+++ b/kernel-d-message/message-business/pom.xml
@@ -0,0 +1,59 @@
+
+