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 @@ + + + 4.0.0 + + + cn.stylefeng.roses + kernel-d-message + 1.0.0 + ../pom.xml + + + message-api + + jar + + + + + + + + cn.stylefeng.roses + auth-api + 1.0.0 + true + + + + + + cn.stylefeng.roses + validator-api + 1.0.0 + + + + + + cn.stylefeng.roses + db-api + 1.0.0 + + + + + + + javax.servlet + javax.servlet-api + true + + + + + diff --git a/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/MessageApi.java b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/MessageApi.java new file mode 100644 index 000000000..96109ddd5 --- /dev/null +++ b/kernel-d-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/MessageApi.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.message.api; + +/** + * 系统消息相关接口 + *

+ * 接口可以有多种实现,目前只实现数据库存储方式 + * + * @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 @@ + + + 4.0.0 + + + cn.stylefeng.roses + kernel-d-log + 1.0.0 + ../pom.xml + + + message-business + + jar + + + + + + cn.stylefeng.roses + message-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 + + + + + diff --git a/kernel-d-message/message-business/src/main/java/cn/stylefeng/roses/kernel/message/modular/manage/controller/SysMessageController.java b/kernel-d-message/message-business/src/main/java/cn/stylefeng/roses/kernel/message/modular/manage/controller/SysMessageController.java new file mode 100644 index 000000000..5e7a511ee --- /dev/null +++ b/kernel-d-message/message-business/src/main/java/cn/stylefeng/roses/kernel/message/modular/manage/controller/SysMessageController.java @@ -0,0 +1,25 @@ +package cn.stylefeng.roses.kernel.message.modular.manage.controller; + +import cn.stylefeng.roses.kernel.message.api.MessageApi; +import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +/** + * 系统消息控制器 + * + * @author liuhanqing + * @date 2021/1/1 22:30 + */ +@RestController +@ApiResource(name = "系统消息控制器") +public class SysMessageController { + + /** + * 系统消息api + */ + @Autowired + private MessageApi messageApi; + + +} diff --git a/kernel-d-message/message-sdk-db/README.md b/kernel-d-message/message-sdk-db/README.md new file mode 100644 index 000000000..4766a8ca2 --- /dev/null +++ b/kernel-d-message/message-sdk-db/README.md @@ -0,0 +1 @@ +系统消息记录的sdk,用于将消息记录到数据库中,提供相关消息管理接口 \ No newline at end of file diff --git a/kernel-d-message/message-sdk-db/pom.xml b/kernel-d-message/message-sdk-db/pom.xml new file mode 100644 index 000000000..b12b29801 --- /dev/null +++ b/kernel-d-message/message-sdk-db/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + + + cn.stylefeng.roses + kernel-d-message + 1.0.0 + ../pom.xml + + + message-sdk-db + + jar + + + + + + cn.stylefeng.roses + message-api + 1.0.0 + + + + + cn.stylefeng.roses + db-sdk-mp + 1.0.0 + + + + + diff --git a/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/entity/SysMessage.java b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/entity/SysMessage.java new file mode 100644 index 000000000..0f39b4a9b --- /dev/null +++ b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/entity/SysMessage.java @@ -0,0 +1,87 @@ +package cn.stylefeng.roses.kernel.message.db.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 系统消息 + * + * @author liuhanqing + * @date 2020/12/31 20:09 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_message") +public class SysMessage extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "message_id", type = IdType.ASSIGN_ID) + private Long messageId; + + /** + * 接收用户id + */ + @TableId(value = "receive_user_id") + private Long receiveUserId; + + /** + * 发送用户id + */ + @TableId(value = "send_user_id") + private Long sendUserId; + + /** + * 消息标题 + */ + @TableField(value = "message_title") + private String messageTitle; + + /** + * 消息的内容 + */ + @TableField(value = "message_content") + private String messageContent; + + /** + * 消息类型 + */ + @TableField(value = "message_type") + private String messageType; + + /** + * 消息发送时间 + */ + @TableField(value = "message_send_time") + private Date messageSendTime; + + /** + * 业务id + */ + @TableField(value = "business_id") + private Long businessId; + + /** + * 业务类型 + */ + @TableField(value = "business_type") + private String businessType; + + /** + * 阅读状态:0-未读,1-已读 + */ + @TableField(value = "read_flag") + private Integer readFlag; + + /** + * 是否删除:Y-已删除,N-未删除 + */ + @TableField(value = "del_flag", fill = FieldFill.INSERT) + private String delFlag; + +} \ No newline at end of file diff --git a/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/SysMessageMapper.java b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/SysMessageMapper.java new file mode 100644 index 000000000..bdc62af3e --- /dev/null +++ b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/SysMessageMapper.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.message.db.mapper; + +import cn.stylefeng.roses.kernel.message.db.entity.SysMessage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 系统消息 Mapper 接口 + * + * @author liuhanqing + * @date 2020/12/31 20:09 + */ +public interface SysMessageMapper extends BaseMapper { + +} diff --git a/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/mapping/SysMessageMapper.xml b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/mapping/SysMessageMapper.xml new file mode 100644 index 000000000..2767ad7df --- /dev/null +++ b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/mapper/mapping/SysMessageMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/SysMessageService.java b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/SysMessageService.java new file mode 100644 index 000000000..77ffa6f8f --- /dev/null +++ b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/SysMessageService.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.message.db.service; + +import cn.stylefeng.roses.kernel.message.db.entity.SysMessage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 系统消息 service接口 + * + * @author liuhanqing + * @date 2020/12/31 20:09 + */ +public interface SysMessageService extends IService { + +} diff --git a/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/impl/SysMessageServiceImpl.java b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/impl/SysMessageServiceImpl.java new file mode 100644 index 000000000..6b4520cd4 --- /dev/null +++ b/kernel-d-message/message-sdk-db/src/main/java/cn/stylefeng/roses/kernel/message/db/service/impl/SysMessageServiceImpl.java @@ -0,0 +1,18 @@ +package cn.stylefeng.roses.kernel.message.db.service.impl; + +import cn.stylefeng.roses.kernel.message.db.entity.SysMessage; +import cn.stylefeng.roses.kernel.message.db.mapper.SysMessageMapper; +import cn.stylefeng.roses.kernel.message.db.service.SysMessageService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 系统消息 service接口实现类 + * + * @author liuhanqing + * @date 2020/12/31 20:09 + */ +@Service +public class SysMessageServiceImpl extends ServiceImpl implements SysMessageService { + +} diff --git a/kernel-d-message/message-spring-boot-starter/README.md b/kernel-d-message/message-spring-boot-starter/README.md new file mode 100644 index 000000000..c3a12177f --- /dev/null +++ b/kernel-d-message/message-spring-boot-starter/README.md @@ -0,0 +1 @@ +系统消息的spring boot自动加载模块 \ No newline at end of file diff --git a/kernel-d-message/message-spring-boot-starter/pom.xml b/kernel-d-message/message-spring-boot-starter/pom.xml new file mode 100644 index 000000000..cf61944ed --- /dev/null +++ b/kernel-d-message/message-spring-boot-starter/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + + cn.stylefeng.roses + kernel-d-message + 1.0.0 + ../pom.xml + + + message-spring-boot-starter + + jar + + + + + + + + + + cn.stylefeng.roses + message-sdk-db + 1.0.0 + + + + + + diff --git a/kernel-d-message/message-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/message/starter/GunsMessageAutoConfiguration.java b/kernel-d-message/message-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/message/starter/GunsMessageAutoConfiguration.java new file mode 100644 index 000000000..a2c26e978 --- /dev/null +++ b/kernel-d-message/message-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/message/starter/GunsMessageAutoConfiguration.java @@ -0,0 +1,16 @@ +package cn.stylefeng.roses.kernel.message.starter; + +import org.springframework.context.annotation.Configuration; + +/** + * 系统消息的自动配置 + * + * @author liuhanqing + * @date 2020/12/31 18:50 + */ +@Configuration +public class GunsMessageAutoConfiguration { + + + +} \ No newline at end of file diff --git a/kernel-d-message/message-spring-boot-starter/src/main/resources/META-INF/spring.factories b/kernel-d-message/message-spring-boot-starter/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..e86c6ccc0 --- /dev/null +++ b/kernel-d-message/message-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ + cn.stylefeng.roses.kernel.message.starter.GunsMessageAutoConfiguration \ No newline at end of file diff --git a/kernel-d-message/pom.xml b/kernel-d-message/pom.xml new file mode 100644 index 000000000..9429be1b9 --- /dev/null +++ b/kernel-d-message/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + + + cn.stylefeng.roses + roses-kernel + 1.0.0 + ../pom.xml + + + kernel-d-message + + pom + + + message-api + message-business + message-sdk-db + message-spring-boot-starter + + + + + + + cn.stylefeng.roses + kernel-a-rule + 1.0.0 + + + + + diff --git a/pom.xml b/pom.xml index fdec697bf..a9d5a5486 100644 --- a/pom.xml +++ b/pom.xml @@ -73,6 +73,9 @@ kernel-s-dict + + kernel-d-message + kernel-s-system