|
@@ -1,10 +1,10 @@
|
|
|
package cn.iocoder.dashboard.modules.system.service.sms.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.iocoder.dashboard.common.enums.SmsChannelEnum;
|
|
|
import cn.iocoder.dashboard.common.pojo.PageResult;
|
|
|
import cn.iocoder.dashboard.framework.sms.client.AbstractSmsClient;
|
|
|
import cn.iocoder.dashboard.framework.sms.core.SmsClientFactory;
|
|
|
+import cn.iocoder.dashboard.framework.sms.core.enums.SmsChannelEnum;
|
|
|
import cn.iocoder.dashboard.framework.sms.core.property.SmsChannelProperty;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsChannelAllVO;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelCreateReqVO;
|
|
@@ -12,11 +12,11 @@ import cn.iocoder.dashboard.modules.system.controller.sms.vo.req.SmsChannelPageR
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.resp.SmsChannelEnumRespVO;
|
|
|
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.SmsChannelMapper;
|
|
|
-import cn.iocoder.dashboard.modules.system.dal.mysql.dao.sms.SmsTemplateMapper;
|
|
|
-import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SmsChannelDO;
|
|
|
-import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.sms.SmsTemplateDO;
|
|
|
-import cn.iocoder.dashboard.modules.system.service.sms.SmsChannelService;
|
|
|
+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.service.sms.SysSmsChannelService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -35,12 +35,12 @@ import java.util.concurrent.ConcurrentHashMap;
|
|
|
* @date 2021/1/25 9:25
|
|
|
*/
|
|
|
@Service
|
|
|
-public class SmsChannelServiceImpl implements SmsChannelService {
|
|
|
+public class SysSmsChannelServiceImpl implements SysSmsChannelService {
|
|
|
|
|
|
private final Map<String, Long> templateCode2ChannelIdMap = new ConcurrentHashMap<>(32);
|
|
|
|
|
|
@Autowired
|
|
|
- private SmsClientFactory smsClientFactory;
|
|
|
+ private SmsClientFactory clientFactory;
|
|
|
|
|
|
/**
|
|
|
* 初始化短信客户端
|
|
@@ -48,51 +48,60 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
|
|
@PostConstruct
|
|
|
@Override
|
|
|
public void initSmsClient() {
|
|
|
- List<SmsChannelAllVO> smsChannelAllVOList = listChannelAllEnabledInfo();
|
|
|
- if (ObjectUtil.isEmpty(smsChannelAllVOList)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- List<SmsChannelProperty> channelPropertyList = SmsChannelConvert.INSTANCE.convertProperty(smsChannelAllVOList);
|
|
|
- channelPropertyList.forEach(smsChannelProperty -> {
|
|
|
- Long clientId = smsClientFactory.createClient(smsChannelProperty);
|
|
|
- smsChannelProperty.getTemplateList().forEach(smsTemplateVO -> {
|
|
|
- templateCode2ChannelIdMap.put(smsTemplateVO.getCode(), clientId);
|
|
|
- });
|
|
|
+ // 查询有效渠道信息
|
|
|
+ List<SysSmsChannelDO> channelDOList = channelMapper.selectEnabledList();
|
|
|
+ List<SmsChannelProperty> propertyList = SmsChannelConvert.INSTANCE.convertProperties(channelDOList);
|
|
|
+
|
|
|
+ // 遍历渠道生成client并获取模板缓存
|
|
|
+ propertyList.forEach(channelProperty -> {
|
|
|
+ Long clientId = clientFactory.createClient(channelProperty);
|
|
|
+ List<SysSmsTemplateDO> templateDOList = templateMapper.selectListByChannelId(channelProperty.getId());
|
|
|
+ if (ObjectUtil.isNotEmpty(templateDOList)) {
|
|
|
+ templateDOList.forEach(template -> {
|
|
|
+ templateCode2ChannelIdMap.put(template.getCode(), clientId);
|
|
|
+ });
|
|
|
+ SmsTemplateConvert.INSTANCE.convert(templateDOList);
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- // TODO FROM 芋艿 to ZZF:channelMapper 嘿,保持命名统一。
|
|
|
+ // TODO FROM 芋艿 to ZZF:channelMapper 嘿,保持命名统一。 DONE
|
|
|
@Resource
|
|
|
- private SmsChannelMapper mapper;
|
|
|
+ private SysSmsChannelMapper channelMapper;
|
|
|
|
|
|
@Resource
|
|
|
- private SmsTemplateMapper templateMapper;
|
|
|
+ private SysSmsTemplateMapper templateMapper;
|
|
|
|
|
|
@Override
|
|
|
- public PageResult<SmsChannelDO> pageChannels(SmsChannelPageReqVO reqVO) {
|
|
|
- return SmsChannelConvert.INSTANCE.convertPage(mapper.selectChannelPage(reqVO));
|
|
|
+ public PageResult<SysSmsChannelDO> pageSmsChannels(SmsChannelPageReqVO reqVO) {
|
|
|
+ return SmsChannelConvert.INSTANCE.convertPage(channelMapper.selectChannelPage(reqVO));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Long createChannel(SmsChannelCreateReqVO reqVO) {
|
|
|
- SmsChannelDO channelDO = SmsChannelConvert.INSTANCE.convert(reqVO);
|
|
|
- mapper.insert(channelDO);
|
|
|
+ public Long createSmsChannel(SmsChannelCreateReqVO reqVO) {
|
|
|
+ SysSmsChannelDO channelDO = SmsChannelConvert.INSTANCE.convert(reqVO);
|
|
|
+ channelMapper.insert(channelDO);
|
|
|
return channelDO.getId();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SmsChannelEnumRespVO> getChannelEnums() {
|
|
|
+ public List<SmsChannelEnumRespVO> getSmsChannelEnums() {
|
|
|
return SmsChannelConvert.INSTANCE.convertEnum(Arrays.asList(SmsChannelEnum.values()));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AbstractSmsClient<?> getClient(String templateCode) {
|
|
|
- return smsClientFactory.getClient(templateCode2ChannelIdMap.get(templateCode));
|
|
|
+ public AbstractSmsClient getSmsClient(String templateCode) {
|
|
|
+ return clientFactory.getClient(templateCode2ChannelIdMap.get(templateCode));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getSmsTemplateApiIdByCode(String templateCode) {
|
|
|
+ return clientFactory.getTemplateApiIdByCode(templateCode);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SmsChannelAllVO> listChannelAllEnabledInfo() {
|
|
|
- List<SmsChannelDO> channelDOList = mapper.selectEnabledList();
|
|
|
+ public List<SmsChannelAllVO> listSmsChannelAllEnabledInfo() {
|
|
|
+ List<SysSmsChannelDO> channelDOList = channelMapper.selectEnabledList();
|
|
|
if (ObjectUtil.isNull(channelDOList)) {
|
|
|
return null;
|
|
|
}
|
|
@@ -100,7 +109,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
|
|
|
|
|
channelAllVOList.forEach(smsChannelDO -> {
|
|
|
|
|
|
- List<SmsTemplateDO> templateDOList = templateMapper.selectListByChannelId(smsChannelDO.getId());
|
|
|
+ List<SysSmsTemplateDO> templateDOList = templateMapper.selectListByChannelId(smsChannelDO.getId());
|
|
|
if (ObjectUtil.isNull(templateDOList)) {
|
|
|
templateDOList = new ArrayList<>();
|
|
|
}
|