From 3acdec965d0b7ba9aa386f190faaf2f6c960039c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 24 Mar 2021 00:52:40 +0800 Subject: [PATCH] 短信提交 2021-03-24,调整下短信发送 API --- src/main/java/cn/iocoder/dashboard/framework/redis/core/util/RedisStreamUtils.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsClientFactory.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsChannelController.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsDefaultCallbackController.java | 5 ----- src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsChannelConvert.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsTemplateConvert.java | 4 ++-- src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsChannelDO.java | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsQueryLogDO.java | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsSendLogDO.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsChannelDO.java | 70 ---------------------------------------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsQueryLogDO.java | 90 ------------------------------------------------------------------------------------------ src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsSendLogDO.java | 66 ------------------------------------------------------------------ src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsTemplateDO.java | 81 --------------------------------------------------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsChannelMapper.java | 4 ++-- src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsQueryLogMapper.java | 4 ++-- src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsSendLogMapper.java | 4 ++-- src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java | 13 ++++++++----- src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java | 8 ++++++-- src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java | 29 +++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java | 29 +++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java | 29 +++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java | 29 +++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java | 29 +++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/sms/SmsSendStreamConsumer.java | 43 +++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dept/SysDeptRefreshMessage.java | 17 +++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dict/SysDictDataRefreshMessage.java | 17 +++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysMenuRefreshMessage.java | 17 +++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java | 17 +++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleRefreshMessage.java | 17 +++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dept/SysDeptProducer.java | 27 +++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dict/SysDictDataProducer.java | 27 +++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysMenuProducer.java | 27 +++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysPermissionProducer.java | 27 +++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysRoleProducer.java | 27 +++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/sms/SmsSendStreamProducer.java | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dept/SysDeptRefreshConsumer.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dict/SysDictDataRefreshConsumer.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysMenuRefreshConsumer.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleMenuRefreshConsumer.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleRefreshConsumer.java | 29 ----------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/sms/SmsSendConsumer.java | 56 -------------------------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dept/SysDeptRefreshMessage.java | 17 ----------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dict/SysDictDataRefreshMessage.java | 17 ----------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysMenuRefreshMessage.java | 17 ----------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleMenuRefreshMessage.java | 17 ----------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleRefreshMessage.java | 17 ----------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dept/SysDeptProducer.java | 27 --------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dict/SysDictDataProducer.java | 27 --------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysMenuProducer.java | 27 --------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysPermissionProducer.java | 27 --------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysRoleProducer.java | 27 --------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/sms/SmsProducer.java | 31 ------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/StreamConsumerRunner.java | 93 --------------------------------------------------------------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendMessage.java | 16 ---------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamConsumer.java | 43 ------------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamProducer.java | 35 ----------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java | 3 +-- src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsChannelService.java | 4 +--- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsService.java | 43 +++++-------------------------------------- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateService.java | 13 ++++++++++++- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java | 6 ++---- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsQueryLogServiceImpl.java | 2 +- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsSendLogServiceImpl.java | 9 ++++----- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsServiceImpl.java | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java | 13 +++++++++++++ src/test/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptServiceTest.java | 2 +- src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java | 2 +- 72 files changed, 900 insertions(+), 1059 deletions(-) delete mode 100644 src/main/java/cn/iocoder/dashboard/framework/redis/core/util/RedisStreamUtils.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsChannelDO.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsQueryLogDO.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsSendLogDO.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsChannelDO.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsQueryLogDO.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsSendLogDO.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsTemplateDO.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/sms/SmsSendStreamConsumer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dept/SysDeptRefreshMessage.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dict/SysDictDataRefreshMessage.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysMenuRefreshMessage.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleRefreshMessage.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dept/SysDeptProducer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dict/SysDictDataProducer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysMenuProducer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysPermissionProducer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysRoleProducer.java create mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/sms/SmsSendStreamProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dept/SysDeptRefreshConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dict/SysDictDataRefreshConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysMenuRefreshConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleMenuRefreshConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleRefreshConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/sms/SmsSendConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dept/SysDeptRefreshMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dict/SysDictDataRefreshMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysMenuRefreshMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleMenuRefreshMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleRefreshMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dept/SysDeptProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dict/SysDictDataProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysMenuProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysPermissionProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysRoleProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/sms/SmsProducer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/StreamConsumerRunner.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendMessage.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamConsumer.java delete mode 100644 src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamProducer.java diff --git a/src/main/java/cn/iocoder/dashboard/framework/redis/core/util/RedisStreamUtils.java b/src/main/java/cn/iocoder/dashboard/framework/redis/core/util/RedisStreamUtils.java deleted file mode 100644 index 590c842..0000000 --- a/src/main/java/cn/iocoder/dashboard/framework/redis/core/util/RedisStreamUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.framework.redis.core.util; - -import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendMessage; -import org.springframework.data.redis.connection.stream.StreamRecords; -import org.springframework.data.redis.core.RedisTemplate; - -/** - * Redis 消息工具类 - * - * @author 芋道源码 - */ -public class RedisStreamUtils { - - public static final String KEY_SMS_SEND = "stream_sms_send"; - - public static final String GROUP_SMS_SEND = "group_sms_send"; - - /** - * 发送 Redis 消息,基于 Redis pub/sub 实现 - * - * @param redisTemplate Redis 操作模板 - * @param message 消息 - */ - public static void sendChannelMessage(RedisTemplate redisTemplate, SmsSendMessage message) { - - redisTemplate.opsForStream().add(StreamRecords.newRecord().ofObject(message).withStreamKey(KEY_SMS_SEND)); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsClientFactory.java b/src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsClientFactory.java index d55c7cb..bd41cc2 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsClientFactory.java +++ b/src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsClientFactory.java @@ -102,7 +102,7 @@ public class SmsClientFactory { public String getTemplateApiIdByCode(String templateCode) { SmsTemplateProperty smsTemplateProperty = templatePropertyMap.get(templateCode); if (smsTemplateProperty == null) { - throw new ServiceException(SMS_TEMPLATE_NOT_FOUND); + throw new ServiceException(SMS_TEMPLATE_NOT_EXISTS); } return smsTemplateProperty.getApiTemplateId(); } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsChannelController.java b/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsChannelController.java index ddc492c..415e474 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsChannelController.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsChannelController.java @@ -5,7 +5,7 @@ import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelCreateReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelPageReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.resp.SmsChannelEnumRespVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsDefaultCallbackController.java b/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsDefaultCallbackController.java index 0a33e8b..3d46610 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsDefaultCallbackController.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/controller/sms/SmsDefaultCallbackController.java @@ -1,19 +1,14 @@ package cn.iocoder.dashboard.modules.system.controller.sms; -import cn.iocoder.dashboard.framework.sms.core.SmsBody; -import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendStreamProducer; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.ServletRequest; -import java.util.Arrays; -import java.util.Map; /** * 短信默认回调接口 diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsChannelConvert.java b/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsChannelConvert.java index ad27221..833c191 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsChannelConvert.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsChannelConvert.java @@ -7,7 +7,7 @@ import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsChannelAllVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelCreateReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.resp.SmsChannelEnumRespVO; import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; import com.baomidou.mybatisplus.core.metadata.IPage; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsTemplateConvert.java b/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsTemplateConvert.java index febac15..2ff6800 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsTemplateConvert.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/convert/sms/SmsTemplateConvert.java @@ -3,8 +3,8 @@ package cn.iocoder.dashboard.modules.system.convert.sms; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.sms.core.property.SmsTemplateProperty; import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsTemplateVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsTemplateDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; import com.baomidou.mybatisplus.core.metadata.IPage; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsChannelDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsChannelDO.java new file mode 100644 index 0000000..48acf34 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsChannelDO.java @@ -0,0 +1,70 @@ +package cn.iocoder.dashboard.modules.system.dal.dataobject.sms; + +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 短信渠道 + * + * @author zzf + * @since 2021-01-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName(value = "sms_channel", autoResultMap = true) +public class SysSmsChannelDO extends BaseDO { + + /** + * 自增编号 + */ + private Long id; + + /** + * 编码(来自枚举类 阿里、华为、七牛等) + */ + private String code; + + /** + * 短信发送回调url + */ + private String callback_url; + + /** + * 渠道账号id + */ + private String apiKey; + + /** + * 渠道账号秘钥 + */ + private String apiSecret; + + /** + * 实际渠道签名唯一标识 + */ + private String apiSignatureId; + + /** + * 名称 + */ + private String name; + + /** + * 签名值 + */ + private String signature; + + /** + * 备注 + */ + private String remark; + + /** + * 启用状态(0正常 1停用) + */ + private Integer status; + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsQueryLogDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsQueryLogDO.java new file mode 100644 index 0000000..8a5d413 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsQueryLogDO.java @@ -0,0 +1,90 @@ +package cn.iocoder.dashboard.modules.system.dal.dataobject.sms; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 短信日志 + * + * @author zzf + * @since 2021-01-25 + */ +@Data +@EqualsAndHashCode +@Accessors(chain = true) +@TableName(value = "sms_query_log", autoResultMap = true) +public class SysSmsQueryLogDO implements Serializable { + + /** + * 自增编号 + */ + private Long id; + + /** + * 第三方唯一标识 + */ + private String apiId; + + /** + * 短信渠道编码(来自枚举类) + */ + private String channelCode; + + /** + * 短信渠道id + */ + private Long channelId; + + /** + * 模板id + */ + private String templateCode; + + /** + * 手机号 + */ + private String phone; + + /** + * 内容 + */ + private String content; + + /** + * 发送状态 + * + * @see cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum + */ + private Integer sendStatus; + + /** + * 是否获取过结果[0否 1是] + */ + private Integer gotResult; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 发送时间 + */ + private Date sendTime; + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsSendLogDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsSendLogDO.java new file mode 100644 index 0000000..4bbe5f2 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsSendLogDO.java @@ -0,0 +1,66 @@ +package cn.iocoder.dashboard.modules.system.dal.dataobject.sms; + +import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 短信日志 + * + * @author zzf + * @since 2021-01-25 + */ +@Data +@EqualsAndHashCode +@Accessors(chain = true) +@TableName(value = "sms_send_log", autoResultMap = true) +public class SysSmsSendLogDO implements Serializable { + + /** + * 自增编号 + */ + private Long id; + + /** + * 短信渠道编码(来自枚举类) + */ + private String channelCode; + + /** + * 短信渠道id + */ + private Long channelId; + + /** + * 模板id + */ + private String templateCode; + + /** + * 手机号 + */ + private String phone; + + /** + * 备注 + */ + private String remark; + + /** + * 发送状态 + * + * @see SmsSendStatusEnum + */ + private Integer sendStatus; + + /** + * 发送时间 + */ + private Date sendTime; + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java new file mode 100644 index 0000000..929e794 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java @@ -0,0 +1,87 @@ +package cn.iocoder.dashboard.modules.system.dal.dataobject.sms; + +import cn.iocoder.dashboard.common.enums.CommonStatusEnum; +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 短信模板 + * + * @author zzf + * @since 2021-01-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName(value = "sms_template", autoResultMap = true) +public class SysSmsTemplateDO extends BaseDO { + + /** + * 自增编号 + */ + private Long id; + + /** + * 短信渠道编码(来自枚举类) + */ + private String channelCode; + + /** + * 短信渠道id (对于前端来说就是绑定一个签名) + */ + private Long channelId; + + /** + * 消息类型 [0验证码 1短信通知 2推广短信 3国际/港澳台消息] + */ + private Integer type; + + /** + * 业务编码(来自数据字典, 用户自定义业务场景 一个场景可以有多个模板) + */ + private String bizCode; + + /** + * 模板编码 + */ + private String code; + + /** + * 名称 + */ + private String name; + + /** + * 实际渠道模板唯一标识 + */ + private String apiTemplateId; + + /** + * 内容 + */ + private String content; + + /** + * 参数数组(自动根据内容生成) + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List params; + + /** + * 备注 + */ + private String remark; + + /** + * 启用状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsChannelDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsChannelDO.java deleted file mode 100644 index d38c1bc..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsChannelDO.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms; - -import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; - - -/** - * 短信渠道 - * - * @author zzf - * @since 2021-01-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName(value = "sms_channel", autoResultMap = true) -public class SysSmsChannelDO extends BaseDO { - - /** - * 自增编号 - */ - private Long id; - - /** - * 编码(来自枚举类 阿里、华为、七牛等) - */ - private String code; - - /** - * 短信发送回调url - */ - private String callback_url; - - /** - * 渠道账号id - */ - private String apiKey; - - /** - * 渠道账号秘钥 - */ - private String apiSecret; - - /** - * 实际渠道签名唯一标识 - */ - private String apiSignatureId; - - /** - * 名称 - */ - private String name; - - /** - * 签名值 - */ - private String signature; - - /** - * 备注 - */ - private String remark; - - /** - * 启用状态(0正常 1停用) - */ - private Integer status; - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsQueryLogDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsQueryLogDO.java deleted file mode 100644 index ebb170d..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsQueryLogDO.java +++ /dev/null @@ -1,90 +0,0 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.util.Date; - -/** - * 短信日志 - * - * @author zzf - * @since 2021-01-25 - */ -@Data -@EqualsAndHashCode -@Accessors(chain = true) -@TableName(value = "sms_query_log", autoResultMap = true) -public class SysSmsQueryLogDO implements Serializable { - - /** - * 自增编号 - */ - private Long id; - - /** - * 第三方唯一标识 - */ - private String apiId; - - /** - * 短信渠道编码(来自枚举类) - */ - private String channelCode; - - /** - * 短信渠道id - */ - private Long channelId; - - /** - * 模板id - */ - private String templateCode; - - /** - * 手机号 - */ - private String phone; - - /** - * 内容 - */ - private String content; - - /** - * 发送状态 - * - * @see cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum - */ - private Integer sendStatus; - - /** - * 是否获取过结果[0否 1是] - */ - private Integer gotResult; - - /** - * 备注 - */ - private String remark; - - /** - * 创建人 - */ - private String createBy; - - /** - * 创建时间 - */ - private Date createTime; - - /** - * 发送时间 - */ - private Date sendTime; - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsSendLogDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsSendLogDO.java deleted file mode 100644 index f85416d..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsSendLogDO.java +++ /dev/null @@ -1,66 +0,0 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms; - -import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.util.Date; - -/** - * 短信日志 - * - * @author zzf - * @since 2021-01-25 - */ -@Data -@EqualsAndHashCode -@Accessors(chain = true) -@TableName(value = "sms_send_log", autoResultMap = true) -public class SysSmsSendLogDO implements Serializable { - - /** - * 自增编号 - */ - private Long id; - - /** - * 短信渠道编码(来自枚举类) - */ - private String channelCode; - - /** - * 短信渠道id - */ - private Long channelId; - - /** - * 模板id - */ - private String templateCode; - - /** - * 手机号 - */ - private String phone; - - /** - * 备注 - */ - private String remark; - - /** - * 发送状态 - * - * @see SmsSendStatusEnum - */ - private Integer sendStatus; - - /** - * 发送时间 - */ - private Date sendTime; - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsTemplateDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsTemplateDO.java deleted file mode 100644 index 3e8cdc2..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/sms/SysSmsTemplateDO.java +++ /dev/null @@ -1,81 +0,0 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms; - -import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -/** - * 短信模板 - * - * @author zzf - * @since 2021-01-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName(value = "sms_template", autoResultMap = true) -public class SysSmsTemplateDO extends BaseDO { - - /** - * 自增编号 - */ - private Long id; - - /** - * 短信渠道编码(来自枚举类) - */ - private String channelCode; - - /** - * 短信渠道id (对于前端来说就是绑定一个签名) - */ - private Long channelId; - - /** - * 消息类型 [0验证码 1短信通知 2推广短信 3国际/港澳台消息] - */ - private Integer type; - - /** - * 业务编码(来自数据字典, 用户自定义业务场景 一个场景可以有多个模板) - */ - private String bizCode; - - /** - * 编码 - */ - private String code; - - /** - * 名称 - */ - private String name; - - /** - * 实际渠道模板唯一标识 - */ - private String apiTemplateId; - - /** - * 内容 - */ - private String content; - - /** - * 参数数组(自动根据内容生成) - */ - private String params; - - /** - * 备注 - */ - private String remark; - - /** - * 启用状态(0正常 1停用) - */ - private Integer status; - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsChannelMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsChannelMapper.java index 43b7fe7..e601ebc 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsChannelMapper.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsChannelMapper.java @@ -1,10 +1,10 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms; +package cn.iocoder.dashboard.modules.system.dal.mysql.sms; import cn.hutool.core.util.StrUtil; import cn.iocoder.dashboard.common.enums.CommonStatusEnum; import cn.iocoder.dashboard.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelPageReqVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsQueryLogMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsQueryLogMapper.java index 535afa6..d02ceec 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsQueryLogMapper.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsQueryLogMapper.java @@ -1,7 +1,7 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms; +package cn.iocoder.dashboard.modules.system.dal.mysql.sms; import cn.iocoder.dashboard.common.enums.DefaultBitFieldEnum; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsQueryLogDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsQueryLogDO; import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsSendLogMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsSendLogMapper.java index eebb48f..3a5c7fb 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsSendLogMapper.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsSendLogMapper.java @@ -1,6 +1,6 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms; +package cn.iocoder.dashboard.modules.system.dal.mysql.sms; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsSendLogDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsSendLogDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java index b24c630..3cfc898 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java @@ -1,15 +1,18 @@ -package cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms; - +package cn.iocoder.dashboard.modules.system.dal.mysql.sms; import cn.iocoder.dashboard.common.enums.CommonStatusEnum; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsTemplateDO; +import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface SysSmsTemplateMapper extends BaseMapper { +public interface SysSmsTemplateMapper extends BaseMapperX { + + default SysSmsTemplateDO selectOneByCode(String code) { + return selectOne("code", code); + } /** * 根据短信渠道id查询短信模板集合 diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java b/src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java index ca4c11a..94db1c2 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java @@ -79,11 +79,15 @@ public interface SysErrorCodeConstants { ErrorCode FILE_IS_EMPTY= new ErrorCode(1002009003, "文件为空"); - // ========== 消息 1003001000 ========== + // ========== 短信模板 1002010000 ========== + ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002010000, "短信模板不存在"); + + // ========== 短信发送 1002011000 ========== + ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002011000, "手机号不存在"); + ErrorCode SMS_CHANNEL_NOT_INIT = new ErrorCode(1003001001, "短信渠道没有初始化, 请调用SmsClientWrapper#initSmsClient()或SmsClientWrapper#addSmsClient"); ErrorCode SMS_CHANNEL_NOT_FOUND = new ErrorCode(1003001002, "没有短信渠道信息, 请初始化sms_channel表数据。"); - ErrorCode SMS_TEMPLATE_NOT_FOUND = new ErrorCode(1003001003, "没有短信模板信息, 请初始化sms_template表数据。"); ErrorCode SMS_SENDER_NOT_FOUND = new ErrorCode(1003001004, "没有找到对应的短信发送对象,请检查sms_channel表和sms_template表数据"); ErrorCode INVALID_CHANNEL_CODE = new ErrorCode(1003001005, "非法的短信渠道code,请检查sms_channel表的code值是否与SmsChannelEnum中的code值一致。"); ErrorCode PARAM_VALUE_IS_NULL = new ErrorCode(1003001006, "参数【{}】不能为空"); diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java new file mode 100644 index 0000000..e6fa5a9 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.dept; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.dashboard.modules.system.mq.message.dept.SysDeptRefreshMessage; +import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SysDeptRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SysDeptRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SysDeptService deptService; + + @Override + public void onMessage(SysDeptRefreshMessage message) { + log.info("[onMessage][收到 Dept 刷新消息]"); + deptService.initLocalCache(); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java new file mode 100644 index 0000000..12bf134 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.dict; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.dashboard.modules.system.mq.message.dict.SysDictDataRefreshMessage; +import cn.iocoder.dashboard.modules.system.service.dict.SysDictDataService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SysDictDataRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SysDictDataRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SysDictDataService dictDataService; + + @Override + public void onMessage(SysDictDataRefreshMessage message) { + log.info("[onMessage][收到 DictData 刷新消息]"); + dictDataService.initLocalCache(); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java new file mode 100644 index 0000000..3615242 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage; +import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SysMenuRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SysMenuRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SysMenuService menuService; + + @Override + public void onMessage(SysMenuRefreshMessage message) { + log.info("[onMessage][收到 Menu 刷新消息]"); + menuService.initLocalCache(); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java new file mode 100644 index 0000000..6927e14 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysRoleMenuRefreshMessage; +import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SysRoleMenuRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SysRoleMenuRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SysPermissionService permissionService; + + @Override + public void onMessage(SysRoleMenuRefreshMessage message) { + log.info("[onMessage][收到 Role 与 Menu 的关联刷新消息]"); + permissionService.initLocalCache(); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java new file mode 100644 index 0000000..a5e77f7 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysRoleRefreshMessage; +import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SysRoleRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SysRoleRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SysRoleService roleService; + + @Override + public void onMessage(SysRoleRefreshMessage message) { + log.info("[onMessage][收到 Role 刷新消息]"); + roleService.initLocalCache(); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/sms/SmsSendStreamConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/sms/SmsSendStreamConsumer.java new file mode 100644 index 0000000..bbd5de4 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/consumer/sms/SmsSendStreamConsumer.java @@ -0,0 +1,43 @@ +package cn.iocoder.dashboard.modules.system.mq.consumer.sms; + +import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; +import cn.iocoder.dashboard.framework.sms.core.SmsBody; +import cn.iocoder.dashboard.framework.sms.core.SmsResult; +import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; +import cn.iocoder.dashboard.modules.system.service.sms.SysSmsQueryLogService; +import cn.iocoder.dashboard.util.json.JsonUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.connection.stream.ObjectRecord; +import org.springframework.data.redis.stream.StreamListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 短信发送流消息监听器 + * + * @author zzf + * @date 2021/3/9 16:35 + */ +@Slf4j +@Component +public class SmsSendStreamConsumer implements StreamListener> { + + @Resource + private SysSmsChannelService smsChannelService; + + @Resource + private SysSmsQueryLogService smsQueryLogService; + + @Override + public void onMessage(ObjectRecord record) { + SmsSendMessage message = record.getValue(); + SmsBody body = message.getSmsBody(); + log.info("[onMessage][收到 发送短信 消息], content: " + JsonUtils.toJsonString(body)); + AbstractSmsClient smsClient = smsChannelService.getSmsClient(body.getTemplateCode()); + String templateApiId = smsChannelService.getSmsTemplateApiIdByCode(body.getTemplateCode()); + + SmsResult result = smsClient.send(templateApiId, body, message.getTargetPhone()); + smsQueryLogService.afterSendLog(body.getSmsLogId(), result); + } +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dept/SysDeptRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dept/SysDeptRefreshMessage.java new file mode 100644 index 0000000..a78b125 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dept/SysDeptRefreshMessage.java @@ -0,0 +1,17 @@ +package cn.iocoder.dashboard.modules.system.mq.message.dept; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; +import lombok.Data; + +/** + * 部门数据刷新 Message + */ +@Data +public class SysDeptRefreshMessage implements ChannelMessage { + + @Override + public String getChannel() { + return "system.dept.refresh"; + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dict/SysDictDataRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dict/SysDictDataRefreshMessage.java new file mode 100644 index 0000000..7fad277 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/dict/SysDictDataRefreshMessage.java @@ -0,0 +1,17 @@ +package cn.iocoder.dashboard.modules.system.mq.message.dict; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; +import lombok.Data; + +/** + * 字典数据数据刷新 Message + */ +@Data +public class SysDictDataRefreshMessage implements ChannelMessage { + + @Override + public String getChannel() { + return "system.dict-data.refresh"; + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysMenuRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysMenuRefreshMessage.java new file mode 100644 index 0000000..159682a --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysMenuRefreshMessage.java @@ -0,0 +1,17 @@ +package cn.iocoder.dashboard.modules.system.mq.message.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; +import lombok.Data; + +/** + * 菜单数据刷新 Message + */ +@Data +public class SysMenuRefreshMessage implements ChannelMessage { + + @Override + public String getChannel() { + return "system.menu.refresh"; + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java new file mode 100644 index 0000000..491c9b0 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java @@ -0,0 +1,17 @@ +package cn.iocoder.dashboard.modules.system.mq.message.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; +import lombok.Data; + +/** + * 角色与菜单数据刷新 Message + */ +@Data +public class SysRoleMenuRefreshMessage implements ChannelMessage { + + @Override + public String getChannel() { + return "system.role-menu.refresh"; + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleRefreshMessage.java new file mode 100644 index 0000000..b994010 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/message/permission/SysRoleRefreshMessage.java @@ -0,0 +1,17 @@ +package cn.iocoder.dashboard.modules.system.mq.message.permission; + +import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; +import lombok.Data; + +/** + * 角色数据刷新 Message + */ +@Data +public class SysRoleRefreshMessage implements ChannelMessage { + + @Override + public String getChannel() { + return "system.role.refresh"; + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dept/SysDeptProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dept/SysDeptProducer.java new file mode 100644 index 0000000..4ad7db4 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dept/SysDeptProducer.java @@ -0,0 +1,27 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.dept; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.dept.SysDeptRefreshMessage; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Dept 部门相关消息的 Producer + */ +@Component +public class SysDeptProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送 {@link SysDeptRefreshMessage} 消息 + */ + public void sendDeptRefreshMessage() { + SysDeptRefreshMessage message = new SysDeptRefreshMessage(); + RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dict/SysDictDataProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dict/SysDictDataProducer.java new file mode 100644 index 0000000..2ccfc51 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/dict/SysDictDataProducer.java @@ -0,0 +1,27 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.dict; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.dict.SysDictDataRefreshMessage; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * DictData 字典数据相关消息的 Producer + */ +@Component +public class SysDictDataProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送 {@link SysDictDataRefreshMessage} 消息 + */ + public void sendDictDataRefreshMessage() { + SysDictDataRefreshMessage message = new SysDictDataRefreshMessage(); + RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysMenuProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysMenuProducer.java new file mode 100644 index 0000000..6d664c7 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysMenuProducer.java @@ -0,0 +1,27 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.permission; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Menu 菜单相关消息的 Producer + */ +@Component +public class SysMenuProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送 {@link SysMenuRefreshMessage} 消息 + */ + public void sendMenuRefreshMessage() { + SysMenuRefreshMessage message = new SysMenuRefreshMessage(); + RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysPermissionProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysPermissionProducer.java new file mode 100644 index 0000000..f9eded6 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysPermissionProducer.java @@ -0,0 +1,27 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.permission; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysRoleMenuRefreshMessage; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Permission 权限相关消息的 Producer + */ +@Component +public class SysPermissionProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送 {@link SysRoleMenuRefreshMessage} 消息 + */ + public void sendRoleMenuRefreshMessage() { + SysRoleMenuRefreshMessage message = new SysRoleMenuRefreshMessage(); + RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysRoleProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysRoleProducer.java new file mode 100644 index 0000000..e11945d --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/permission/SysRoleProducer.java @@ -0,0 +1,27 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.permission; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.permission.SysRoleRefreshMessage; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Role 角色相关消息的 Producer + */ +@Component +public class SysRoleProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送 {@link SysRoleRefreshMessage} 消息 + */ + public void sendRoleRefreshMessage() { + SysRoleRefreshMessage message = new SysRoleRefreshMessage(); + RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/sms/SmsSendStreamProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/sms/SmsSendStreamProducer.java new file mode 100644 index 0000000..891a844 --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/modules/system/mq/producer/sms/SmsSendStreamProducer.java @@ -0,0 +1,42 @@ +package cn.iocoder.dashboard.modules.system.mq.producer.sms; + +import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; +import cn.iocoder.dashboard.modules.system.mq.message.sms.SysSmsSendMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 短信发送流消息监听器 + * + * @author zzf + * @date 2021/3/9 16:35 + */ +@Slf4j +@Component +public class SmsSendStreamProducer { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + /** + * 发送短信 Message + * + * @param mobile 手机号 + * @param templateCode 短信模板编号 + * @param templateParams 短信模板参数 + * @param userId 用户编号 + * @param userType 用户类型 + */ + public void sendSmsSendMessage(String mobile, String templateCode, Map templateParams, + Integer userId, Integer userType) { + SysSmsSendMessage message = new SysSmsSendMessage(); + message.setMobile(mobile).setTemplateCode(templateCode).setTemplateParams(templateParams); + message.setUserId(userId).setUserType(userType); + RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message); + } + +} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dept/SysDeptRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dept/SysDeptRefreshConsumer.java deleted file mode 100644 index 7e4852d..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dept/SysDeptRefreshConsumer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.consumer.dept; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -import cn.iocoder.dashboard.modules.system.redis.mq.message.dept.SysDeptRefreshMessage; -import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 针对 {@link SysDeptRefreshMessage} 的消费者 - * - * @author 芋道源码 - */ -@Component -@Slf4j -public class SysDeptRefreshConsumer extends AbstractChannelMessageListener { - - @Resource - private SysDeptService deptService; - - @Override - public void onMessage(SysDeptRefreshMessage message) { - log.info("[onMessage][收到 Dept 刷新消息]"); - deptService.initLocalCache(); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dict/SysDictDataRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dict/SysDictDataRefreshConsumer.java deleted file mode 100644 index 87c8989..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/dict/SysDictDataRefreshConsumer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.consumer.dict; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -import cn.iocoder.dashboard.modules.system.redis.mq.message.dict.SysDictDataRefreshMessage; -import cn.iocoder.dashboard.modules.system.service.dict.SysDictDataService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 针对 {@link SysDictDataRefreshMessage} 的消费者 - * - * @author 芋道源码 - */ -@Component -@Slf4j -public class SysDictDataRefreshConsumer extends AbstractChannelMessageListener { - - @Resource - private SysDictDataService dictDataService; - - @Override - public void onMessage(SysDictDataRefreshMessage message) { - log.info("[onMessage][收到 DictData 刷新消息]"); - dictDataService.initLocalCache(); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysMenuRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysMenuRefreshConsumer.java deleted file mode 100644 index 5f44427..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysMenuRefreshConsumer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.consumer.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysMenuRefreshMessage; -import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 针对 {@link SysMenuRefreshMessage} 的消费者 - * - * @author 芋道源码 - */ -@Component -@Slf4j -public class SysMenuRefreshConsumer extends AbstractChannelMessageListener { - - @Resource - private SysMenuService menuService; - - @Override - public void onMessage(SysMenuRefreshMessage message) { - log.info("[onMessage][收到 Menu 刷新消息]"); - menuService.initLocalCache(); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleMenuRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleMenuRefreshConsumer.java deleted file mode 100644 index 60861ba..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleMenuRefreshConsumer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.consumer.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysRoleMenuRefreshMessage; -import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 针对 {@link SysRoleMenuRefreshMessage} 的消费者 - * - * @author 芋道源码 - */ -@Component -@Slf4j -public class SysRoleMenuRefreshConsumer extends AbstractChannelMessageListener { - - @Resource - private SysPermissionService permissionService; - - @Override - public void onMessage(SysRoleMenuRefreshMessage message) { - log.info("[onMessage][收到 Role 与 Menu 的关联刷新消息]"); - permissionService.initLocalCache(); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleRefreshConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleRefreshConsumer.java deleted file mode 100644 index 0a71fca..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/permission/SysRoleRefreshConsumer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.consumer.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysRoleRefreshMessage; -import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 针对 {@link SysRoleRefreshMessage} 的消费者 - * - * @author 芋道源码 - */ -@Component -@Slf4j -public class SysRoleRefreshConsumer extends AbstractChannelMessageListener { - - @Resource - private SysRoleService roleService; - - @Override - public void onMessage(SysRoleRefreshMessage message) { - log.info("[onMessage][收到 Role 刷新消息]"); - roleService.initLocalCache(); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/sms/SmsSendConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/sms/SmsSendConsumer.java deleted file mode 100644 index db8d727..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/consumer/sms/SmsSendConsumer.java +++ /dev/null @@ -1,56 +0,0 @@ -//package cn.iocoder.dashboard.modules.system.redis.mq.consumer.sms; -// -//import cn.iocoder.dashboard.framework.redis.core.pubsub.AbstractChannelMessageListener; -//import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; -//import cn.iocoder.dashboard.framework.sms.core.SmsResult; -//import cn.iocoder.dashboard.modules.system.redis.mq.message.dept.SysDeptRefreshMessage; -//import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendMessage; -//import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; -//import cn.iocoder.dashboard.modules.system.service.sms.SysSmsQueryLogService; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.data.redis.connection.stream.Consumer; -//import org.springframework.data.redis.connection.stream.ObjectRecord; -//import org.springframework.data.redis.connection.stream.ReadOffset; -//import org.springframework.data.redis.connection.stream.StreamOffset; -//import org.springframework.data.redis.core.StringRedisTemplate; -//import org.springframework.stereotype.Component; -// -//import javax.annotation.Resource; -// -///** -// * 针对 {@link SysDeptRefreshMessage} 的消费者 -// * -// * @author 芋道源码 -// */ -//@Component -//@Slf4j -//public class SmsSendConsumer extends AbstractChannelMessageListener { -// -// @Resource -// private SysSmsChannelService smsChannelService; -// -// @Resource -// private SysSmsQueryLogService smsQueryLogService; -// -// @Autowired -// StringRedisTemplate redisTemplate; -// -// @Override -// public void onMessage(SmsSendMessage message) { -// -// redisTemplate.opsForStream().add(ObjectRecord.create("String", message)); -// -// redisTemplate.opsForStream().read(Consumer.from("",""), StreamOffset.create("", ReadOffset.lastConsumed())); -// -// -// -// log.info("[onMessage][收到 发送短信 消息], content: " + message.toString()); -// AbstractSmsClient smsClient = smsChannelService.getSmsClient(message.getSmsBody().getTemplateCode()); -// String templateApiId = smsChannelService.getSmsTemplateApiIdByCode(message.getSmsBody().getTemplateCode()); -// -// SmsResult result = smsClient.send(templateApiId, message.getSmsBody(), message.getTargetPhone()); -// smsQueryLogService.afterSendLog(message.getSmsBody().getSmsLogId(), result); -// } -// -//} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dept/SysDeptRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dept/SysDeptRefreshMessage.java deleted file mode 100644 index 0c069e3..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dept/SysDeptRefreshMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.message.dept; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; -import lombok.Data; - -/** - * 部门数据刷新 Message - */ -@Data -public class SysDeptRefreshMessage implements ChannelMessage { - - @Override - public String getChannel() { - return "system.dept.refresh"; - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dict/SysDictDataRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dict/SysDictDataRefreshMessage.java deleted file mode 100644 index 2d43424..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/dict/SysDictDataRefreshMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.message.dict; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; -import lombok.Data; - -/** - * 字典数据数据刷新 Message - */ -@Data -public class SysDictDataRefreshMessage implements ChannelMessage { - - @Override - public String getChannel() { - return "system.dict-data.refresh"; - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysMenuRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysMenuRefreshMessage.java deleted file mode 100644 index 8f72705..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysMenuRefreshMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.message.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; -import lombok.Data; - -/** - * 菜单数据刷新 Message - */ -@Data -public class SysMenuRefreshMessage implements ChannelMessage { - - @Override - public String getChannel() { - return "system.menu.refresh"; - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleMenuRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleMenuRefreshMessage.java deleted file mode 100644 index b1c303d..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleMenuRefreshMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.message.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; -import lombok.Data; - -/** - * 角色与菜单数据刷新 Message - */ -@Data -public class SysRoleMenuRefreshMessage implements ChannelMessage { - - @Override - public String getChannel() { - return "system.role-menu.refresh"; - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleRefreshMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleRefreshMessage.java deleted file mode 100644 index ac46d18..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/message/permission/SysRoleRefreshMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.message.permission; - -import cn.iocoder.dashboard.framework.redis.core.pubsub.ChannelMessage; -import lombok.Data; - -/** - * 角色数据刷新 Message - */ -@Data -public class SysRoleRefreshMessage implements ChannelMessage { - - @Override - public String getChannel() { - return "system.role.refresh"; - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dept/SysDeptProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dept/SysDeptProducer.java deleted file mode 100644 index 3ce859f..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dept/SysDeptProducer.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.producer.dept; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -import cn.iocoder.dashboard.modules.system.redis.mq.message.dept.SysDeptRefreshMessage; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * Dept 部门相关消息的 Producer - */ -@Component -public class SysDeptProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SysDeptRefreshMessage} 消息 - */ - public void sendDeptRefreshMessage() { - SysDeptRefreshMessage message = new SysDeptRefreshMessage(); - RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dict/SysDictDataProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dict/SysDictDataProducer.java deleted file mode 100644 index af9daae..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/dict/SysDictDataProducer.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.producer.dict; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -import cn.iocoder.dashboard.modules.system.redis.mq.message.dict.SysDictDataRefreshMessage; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * DictData 字典数据相关消息的 Producer - */ -@Component -public class SysDictDataProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SysDictDataRefreshMessage} 消息 - */ - public void sendDictDataRefreshMessage() { - SysDictDataRefreshMessage message = new SysDictDataRefreshMessage(); - RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysMenuProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysMenuProducer.java deleted file mode 100644 index 9a760ad..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysMenuProducer.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.producer.permission; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysMenuRefreshMessage; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * Menu 菜单相关消息的 Producer - */ -@Component -public class SysMenuProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SysMenuRefreshMessage} 消息 - */ - public void sendMenuRefreshMessage() { - SysMenuRefreshMessage message = new SysMenuRefreshMessage(); - RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysPermissionProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysPermissionProducer.java deleted file mode 100644 index 67a4769..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysPermissionProducer.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.producer.permission; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysRoleMenuRefreshMessage; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * Permission 权限相关消息的 Producer - */ -@Component -public class SysPermissionProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SysRoleMenuRefreshMessage} 消息 - */ - public void sendRoleMenuRefreshMessage() { - SysRoleMenuRefreshMessage message = new SysRoleMenuRefreshMessage(); - RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysRoleProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysRoleProducer.java deleted file mode 100644 index f1be4b8..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/permission/SysRoleProducer.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.mq.producer.permission; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -import cn.iocoder.dashboard.modules.system.redis.mq.message.permission.SysRoleRefreshMessage; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * Role 角色相关消息的 Producer - */ -@Component -public class SysRoleProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SysRoleRefreshMessage} 消息 - */ - public void sendRoleRefreshMessage() { - SysRoleRefreshMessage message = new SysRoleRefreshMessage(); - RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/sms/SmsProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/sms/SmsProducer.java deleted file mode 100644 index 3e46817..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/mq/producer/sms/SmsProducer.java +++ /dev/null @@ -1,31 +0,0 @@ -//package cn.iocoder.dashboard.modules.system.redis.mq.producer.sms; -// -//import cn.iocoder.dashboard.framework.redis.core.util.RedisMessageUtils; -//import cn.iocoder.dashboard.framework.sms.core.SmsBody; -//import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendMessage; -//import org.springframework.data.redis.core.StringRedisTemplate; -//import org.springframework.stereotype.Component; -// -//import javax.annotation.Resource; -// -///** -// * 短信的 Producer -// */ -//@Component -//public class SmsProducer { -// -// @Resource -// private StringRedisTemplate stringRedisTemplate; -// -// /** -// * 发送 {@link SmsSendMessage} 消息 -// */ -// public void sendSmsSendMessage(SmsBody smsBody, String targetPhone) { -// SmsSendMessage message = new SmsSendMessage(); -// message.setSmsBody(smsBody); -// message.setTargetPhone(targetPhone); -// // TODO FROM 芋艿 TO ZZF:这块等未来改哈。这个方法目前是广播消费,会导致每个节点都发送一次。等后续封装出 redis stream 消息 -// RedisMessageUtils.sendChannelMessage(stringRedisTemplate, message); -// } -// -//} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/StreamConsumerRunner.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/StreamConsumerRunner.java deleted file mode 100644 index 7cd9d24..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/StreamConsumerRunner.java +++ /dev/null @@ -1,93 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.stream; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisStreamUtils; -import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendMessage; -import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendStreamConsumer; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.connection.stream.*; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.data.redis.serializer.StringRedisSerializer; -import org.springframework.data.redis.stream.StreamMessageListenerContainer; -import org.springframework.data.redis.stream.StreamMessageListenerContainer.StreamMessageListenerContainerOptions; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import org.springframework.stereotype.Component; -import org.springframework.util.ErrorHandler; - -import javax.annotation.Resource; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.time.Duration; - - -@Slf4j -@Component -public class StreamConsumerRunner implements ApplicationRunner, DisposableBean { - - @Resource - RedisConnectionFactory redisConnectionFactory; - - @Resource - ThreadPoolTaskExecutor threadPoolTaskExecutor; - - @Resource - SmsSendStreamConsumer streamMessageListener; - - @Resource - StringRedisTemplate stringRedisTemplate; - - private StreamMessageListenerContainer> streamMessageListenerContainer; - - @Override - public void run(ApplicationArguments args) throws UnknownHostException { - - StreamInfo.XInfoGroups groups = stringRedisTemplate.opsForStream().groups(RedisStreamUtils.KEY_SMS_SEND); - if (groups.isEmpty()) { - stringRedisTemplate.opsForStream().createGroup(RedisStreamUtils.KEY_SMS_SEND, RedisStreamUtils.GROUP_SMS_SEND); - } - - - // 创建配置对象 - StreamMessageListenerContainerOptions> streamMessageListenerContainerOptions = StreamMessageListenerContainerOptions - .builder() - // 一次性最多拉取多少条消息 - .batchSize(10) - // 执行消息轮询的执行器 - .executor(this.threadPoolTaskExecutor) - // 消息消费异常的handler - .errorHandler(new ErrorHandler() { - @Override - public void handleError(Throwable t) { - // throw new RuntimeException(t); - t.printStackTrace(); - } - }) - // 超时时间,设置为0,表示不超时(超时后会抛出异常) - .pollTimeout(Duration.ZERO) - // 序列化器 - .serializer(new StringRedisSerializer()) - .targetType(SmsSendMessage.class) - .build(); - - // 根据配置对象创建监听容器对象 - StreamMessageListenerContainer> streamMessageListenerContainer = StreamMessageListenerContainer - .create(this.redisConnectionFactory, streamMessageListenerContainerOptions); - - // 使用监听容器对象开始监听消费(使用的是手动确认方式) - streamMessageListenerContainer.receive(Consumer.from(RedisStreamUtils.GROUP_SMS_SEND, InetAddress.getLocalHost().getHostName()), - StreamOffset.create(RedisStreamUtils.KEY_SMS_SEND, ReadOffset.lastConsumed()), this.streamMessageListener); - - this.streamMessageListenerContainer = streamMessageListenerContainer; - // 启动监听 - this.streamMessageListenerContainer.start(); - - } - - @Override - public void destroy() throws Exception { - this.streamMessageListenerContainer.stop(); - } -} \ No newline at end of file diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendMessage.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendMessage.java deleted file mode 100644 index a8aeff2..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendMessage.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.stream.sms; - -import cn.iocoder.dashboard.framework.sms.core.SmsBody; -import lombok.Data; - -/** - * 部门数据刷新 Message - */ -@Data -public class SmsSendMessage { - - private SmsBody smsBody; - - private String targetPhone; - -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamConsumer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamConsumer.java deleted file mode 100644 index 0ab531b..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamConsumer.java +++ /dev/null @@ -1,43 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.stream.sms; - -import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; -import cn.iocoder.dashboard.framework.sms.core.SmsBody; -import cn.iocoder.dashboard.framework.sms.core.SmsResult; -import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; -import cn.iocoder.dashboard.modules.system.service.sms.SysSmsQueryLogService; -import cn.iocoder.dashboard.util.json.JsonUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.connection.stream.ObjectRecord; -import org.springframework.data.redis.stream.StreamListener; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 短信发送流消息监听器 - * - * @author zzf - * @date 2021/3/9 16:35 - */ -@Slf4j -@Component -public class SmsSendStreamConsumer implements StreamListener> { - - @Resource - private SysSmsChannelService smsChannelService; - - @Resource - private SysSmsQueryLogService smsQueryLogService; - - @Override - public void onMessage(ObjectRecord record) { - SmsSendMessage message = record.getValue(); - SmsBody body = message.getSmsBody(); - log.info("[onMessage][收到 发送短信 消息], content: " + JsonUtils.toJsonString(body)); - AbstractSmsClient smsClient = smsChannelService.getSmsClient(body.getTemplateCode()); - String templateApiId = smsChannelService.getSmsTemplateApiIdByCode(body.getTemplateCode()); - - SmsResult result = smsClient.send(templateApiId, body, message.getTargetPhone()); - smsQueryLogService.afterSendLog(body.getSmsLogId(), result); - } -} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamProducer.java b/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamProducer.java deleted file mode 100644 index 0695342..0000000 --- a/src/main/java/cn/iocoder/dashboard/modules/system/redis/stream/sms/SmsSendStreamProducer.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.iocoder.dashboard.modules.system.redis.stream.sms; - -import cn.iocoder.dashboard.framework.redis.core.util.RedisStreamUtils; -import cn.iocoder.dashboard.framework.sms.core.SmsBody; -import lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -/** - * 短信发送流消息监听器 - * - * @author zzf - * @date 2021/3/9 16:35 - */ -@Slf4j -@Component -public class SmsSendStreamProducer { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - /** - * 发送 {@link SmsSendMessage} 消息 - */ - public void sendSmsSendMessage(SmsBody smsBody, String targetPhone) { - SmsSendMessage message = new SmsSendMessage(); - message.setSmsBody(smsBody); - message.setTargetPhone(targetPhone); - - RedisStreamUtils.sendChannelMessage(stringRedisTemplate, message); - } - -} \ No newline at end of file diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java index e87e92a..96e3d1a 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java @@ -11,7 +11,7 @@ import cn.iocoder.dashboard.modules.system.convert.dept.SysDeptConvert; import cn.iocoder.dashboard.modules.system.dal.mysql.dept.SysDeptMapper; import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; import cn.iocoder.dashboard.modules.system.enums.dept.DeptIdEnum; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.dept.SysDeptProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.dept.SysDeptProducer; import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java index 461d1ab..7f24cbf 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java @@ -12,7 +12,7 @@ import cn.iocoder.dashboard.modules.system.convert.dict.SysDictDataConvert; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO; import cn.iocoder.dashboard.modules.system.dal.mysql.dict.SysDictDataMapper; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.dict.SysDictDataProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.dict.SysDictDataProducer; import cn.iocoder.dashboard.modules.system.service.dict.SysDictDataService; import cn.iocoder.dashboard.modules.system.service.dict.SysDictTypeService; import com.google.common.annotations.VisibleForTesting; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java index 6b93d9d..ec4ea5a 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java @@ -11,7 +11,7 @@ import cn.iocoder.dashboard.modules.system.dal.mysql.permission.SysMenuMapper; import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysMenuDO; import cn.iocoder.dashboard.modules.system.enums.permission.MenuIdEnum; import cn.iocoder.dashboard.modules.system.enums.permission.MenuTypeEnum; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.permission.SysMenuProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.permission.SysMenuProducer; import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService; import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; import cn.iocoder.dashboard.util.collection.CollectionUtils; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java index 5cf1587..9116d3e 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java @@ -3,7 +3,6 @@ package cn.iocoder.dashboard.modules.system.service.permission.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ArrayUtil; -import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.dashboard.modules.system.dal.mysql.permission.SysRoleMenuMapper; import cn.iocoder.dashboard.modules.system.dal.mysql.permission.SysUserRoleMapper; @@ -11,7 +10,7 @@ import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysMenuDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleMenuDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysUserRoleDO; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.permission.SysPermissionProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.permission.SysPermissionProducer; import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService; import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java index 1d627b8..e798136 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java @@ -15,7 +15,7 @@ import cn.iocoder.dashboard.modules.system.dal.mysql.permission.SysRoleMapper; import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; import cn.iocoder.dashboard.modules.system.enums.permission.RoleCodeEnum; import cn.iocoder.dashboard.modules.system.enums.permission.SysRoleTypeEnum; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.permission.SysRoleProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.permission.SysRoleProducer; import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; import com.google.common.collect.ImmutableMap; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsChannelService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsChannelService.java index 3ce83fe..5224adb 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsChannelService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsChannelService.java @@ -2,14 +2,12 @@ package cn.iocoder.dashboard.modules.system.service.sms; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; -import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsChannelAllVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelCreateReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelPageReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.resp.SmsChannelEnumRespVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; -import javax.servlet.ServletRequest; import java.util.List; /** diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsService.java index 93a467d..cccd64c 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsService.java @@ -1,13 +1,8 @@ package cn.iocoder.dashboard.modules.system.service.sms; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.ArrayUtil; -import cn.iocoder.dashboard.framework.sms.core.SmsBody; -import cn.iocoder.dashboard.framework.sms.core.enums.SmsChannelEnum; - import javax.servlet.ServletRequest; -import java.util.Arrays; import java.util.List; +import java.util.Map; /** * 短信Service接口 @@ -18,39 +13,11 @@ import java.util.List; */ public interface SysSmsService { - /** - * 发送消息 - * - * @param smsBody 消息内容 - * @param targetPhones 发送对象手机号列表 - */ - default void send(SmsBody smsBody, List targetPhones) { - if (CollectionUtil.isEmpty(targetPhones)) { - return; - } - targetPhones.forEach(s -> this.send(smsBody, s)); - } + void sendSingleSms(String mobile, Long userId, Integer userType, + String templateCode, Map templateParams); - /** - * 发送消息 - * - * @param smsBody 消息内容 - * @param targetPhone 发送对象手机号 - */ - void send(SmsBody smsBody, String targetPhone); - - /** - * 发送消息 - * - * @param smsBody 消息内容 - * @param targetPhones 发送对象手机号数组 - */ - default void send(SmsBody smsBody, String... targetPhones) { - if (ArrayUtil.isEmpty(targetPhones)) { - return; - } - send(smsBody, Arrays.asList(targetPhones)); - } + void sendBatchSms(List mobiles, List userIds, Integer userType, + String templateCode, Map templateParams); /** * 处理短信发送回调函数 diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateService.java index 8ba74b2..137291a 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateService.java @@ -1,10 +1,21 @@ package cn.iocoder.dashboard.modules.system.service.sms; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; + /** - * 短信渠道Service接口 + * 短信模板 Service 接口 * * @author zzf * @date 2021/1/25 9:24 */ public interface SysSmsTemplateService { + + /** + * 获得短信模板 + * + * @param code 模板编码 + * @return 短信模板 + */ + SysSmsTemplateDO getSmsTemplateByCode(String code); + } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java index 6ecd768..6026320 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java @@ -8,7 +8,6 @@ import cn.iocoder.dashboard.framework.sms.core.enums.SmsChannelEnum; import cn.iocoder.dashboard.framework.sms.core.property.SmsChannelProperty; import cn.iocoder.dashboard.framework.sms.core.property.SmsTemplateProperty; import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsChannelAllVO; -import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsTemplateVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelCreateReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelPageReqVO; import cn.iocoder.dashboard.modules.system.controller.sms.vo.resp.SmsChannelEnumRespVO; @@ -16,10 +15,9 @@ import cn.iocoder.dashboard.modules.system.convert.sms.SmsChannelConvert; import cn.iocoder.dashboard.modules.system.convert.sms.SmsTemplateConvert; import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SysSmsChannelMapper; import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SysSmsTemplateMapper; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsChannelDO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsTemplateDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsQueryLogServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsQueryLogServiceImpl.java index a08a7bb..42d7d35 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsQueryLogServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsQueryLogServiceImpl.java @@ -6,7 +6,7 @@ import cn.iocoder.dashboard.framework.sms.core.SmsResult; import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; import cn.iocoder.dashboard.framework.sms.core.property.SmsChannelProperty; import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SysSmsQueryLogMapper; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsQueryLogDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsQueryLogDO; import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsQueryLogService; import org.springframework.stereotype.Service; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsSendLogServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsSendLogServiceImpl.java index c58ce5c..8cb5772 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsSendLogServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsSendLogServiceImpl.java @@ -2,11 +2,10 @@ package cn.iocoder.dashboard.modules.system.service.sms.impl; import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; -import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; -import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SysSmsQueryLogMapper; -import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SysSmsSendLogMapper; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsQueryLogDO; -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SysSmsSendLogDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsQueryLogDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsSendLogDO; +import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsQueryLogMapper; +import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsSendLogMapper; import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsSendLogService; diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsServiceImpl.java index c679a8c..6bb0657 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsServiceImpl.java @@ -1,17 +1,29 @@ package cn.iocoder.dashboard.modules.system.service.sms.impl; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.dashboard.common.enums.UserTypeEnum; import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient; import cn.iocoder.dashboard.framework.sms.core.SmsBody; import cn.iocoder.dashboard.framework.sms.core.SmsClientFactory; import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; -import cn.iocoder.dashboard.modules.system.redis.stream.sms.SmsSendStreamProducer; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; +import cn.iocoder.dashboard.modules.system.mq.producer.sms.SmsSendStreamProducer; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsQueryLogService; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsService; +import cn.iocoder.dashboard.modules.system.service.sms.SysSmsTemplateService; +import cn.iocoder.dashboard.modules.system.service.user.SysUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.ServletRequest; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; /** * 短信日志Service实现类 @@ -23,8 +35,14 @@ import javax.servlet.ServletRequest; public class SysSmsServiceImpl implements SysSmsService { @Resource + private SysSmsTemplateService smsTemplateService; + @Resource + private SysUserService userService; + + @Resource private SysSmsChannelService channelService; + @Resource private SysSmsQueryLogService logService; @@ -35,6 +53,54 @@ public class SysSmsServiceImpl implements SysSmsService { private SmsClientFactory smsClientFactory; @Override + public void sendSingleSms(String mobile, Long userId, Integer userType, + String templateCode, Map templateParams) { + // 校验短信模板是否存在 + SysSmsTemplateDO template = this.checkSmsTemplateExists(templateCode); + // 校验手机号码是否存在 + mobile = this.checkMobile(mobile, userId, userType); + } + + @Override + public void sendBatchSms(List mobiles, List userIds, Integer userType, + String templateCode, Map templateParams) { + // 校验短信模板是否存在 + SysSmsTemplateDO template = this.checkSmsTemplateExists(templateCode); + } + + private SysSmsTemplateDO checkSmsTemplateExists(String templateCode) { + SysSmsTemplateDO template = smsTemplateService.getSmsTemplateByCode(templateCode); + if (template == null) { + throw exception(SMS_TEMPLATE_NOT_EXISTS); + } + return template; + } + + private String checkMobile(String mobile, Long userId, Integer userType) { + mobile = getMobile(mobile, userId, userType); + if (StrUtil.isEmpty(mobile)) { + throw exception(SMS_SEND_MOBILE_NOT_EXISTS); + } + return mobile; + } + + private String getMobile(String mobile, Long userId, Integer userType) { + // 如果已经有手机号,则直接返回 + if (StrUtil.isNotEmpty(mobile)) { + return mobile; + } + // 没有手机号,则基于 userId 检索 + if (userId == null || userType == null) { + return null; + } + if (Objects.equals(userType, UserTypeEnum.ADMIN.getValue())) { + SysUserDO user = userService.getUser(userId); + return user != null ? user.getMobile() : null; + } + return null; + } + + @Override public void send(SmsBody smsBody, String targetPhone) { AbstractSmsClient client = channelService.getSmsClient(smsBody.getTemplateCode()); logService.beforeSendLog(smsBody, targetPhone, client); diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java index 0bf7ca1..ccbb260 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java @@ -1,8 +1,12 @@ package cn.iocoder.dashboard.modules.system.service.sms.impl; +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; +import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper; import cn.iocoder.dashboard.modules.system.service.sms.SysSmsTemplateService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; + /** * 短信模板Service实现类 * @@ -11,4 +15,13 @@ import org.springframework.stereotype.Service; */ @Service public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { + + @Resource + private SysSmsTemplateMapper smsTemplateMapper; + + @Override + public SysSmsTemplateDO getSmsTemplateByCode(String code) { + return smsTemplateMapper.selectOneByCode(code); + } + } diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptServiceTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptServiceTest.java index f3db031..3736655 100644 --- a/src/test/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptServiceTest.java +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptServiceTest.java @@ -8,7 +8,7 @@ import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptUpdate import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; import cn.iocoder.dashboard.modules.system.dal.mysql.dept.SysDeptMapper; import cn.iocoder.dashboard.modules.system.enums.dept.DeptIdEnum; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.dept.SysDeptProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.dept.SysDeptProducer; import cn.iocoder.dashboard.modules.system.service.dept.impl.SysDeptServiceImpl; import cn.iocoder.dashboard.util.collection.ArrayUtils; import cn.iocoder.dashboard.util.object.ObjectUtils; diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java index bfd1d97..2874285 100644 --- a/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java @@ -10,7 +10,7 @@ import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataUp import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO; import cn.iocoder.dashboard.modules.system.dal.mysql.dict.SysDictDataMapper; -import cn.iocoder.dashboard.modules.system.redis.mq.producer.dict.SysDictDataProducer; +import cn.iocoder.dashboard.modules.system.mq.producer.dict.SysDictDataProducer; import cn.iocoder.dashboard.modules.system.service.dict.impl.SysDictDataServiceImpl; import cn.iocoder.dashboard.util.collection.ArrayUtils; import cn.iocoder.dashboard.util.object.ObjectUtils; -- libgit2 0.21.4