1、sonarqube质量修复;2、短信模板增删查询移除短信渠道相关内容;

This commit is contained in:
gaoqr
2024-10-11 16:09:34 +08:00
parent 7391b6365d
commit 2da653d9fb
24 changed files with 243 additions and 272 deletions
@@ -32,9 +32,6 @@ public class SmsTemplatePageReqVO extends PageParam {
@Schema(description = "短信 API 的模板编号,模糊匹配", example = "4383920")
private String apiTemplateId;
@Schema(description = "短信渠道编号", example = "10")
private Long channelId;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@Schema(description = "创建时间")
private LocalDateTime[] createTime;
@@ -53,15 +53,6 @@ public class SmsTemplateRespVO {
@ExcelProperty("短信 API 的模板编号")
private String apiTemplateId;
@Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@ExcelProperty("短信渠道编号")
private Long channelId;
@Schema(description = "短信渠道编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ALIYUN")
@ExcelProperty(value = "短信渠道编码", converter = DictConvert.class)
@DictFormat(DictTypeConstants.SMS_CHANNEL_CODE)
private String channelCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@@ -44,8 +44,4 @@ public class SmsTemplateSaveReqVO {
@Length(min = 1, max = 64, message = "短信 API 的模板编号长度不能超过64个字符")
private String apiTemplateId;
@Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "短信渠道编号不能为空")
private Long channelId;
}
@@ -21,7 +21,6 @@ public interface SmsTemplateMapper extends BaseMapperX<SmsTemplateDO> {
.likeIfPresent(SmsTemplateDO::getCode, reqVO.getCode())
.likeIfPresent(SmsTemplateDO::getContent, reqVO.getContent())
.likeIfPresent(SmsTemplateDO::getApiTemplateId, reqVO.getApiTemplateId())
.eqIfPresent(SmsTemplateDO::getChannelId, reqVO.getChannelId())
.betweenIfPresent(SmsTemplateDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(SmsTemplateDO::getId));
}
@@ -2,6 +2,7 @@ package com.cf.imes.module.system.service.sms;
import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
@@ -30,8 +31,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.regex.Pattern;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
* 短信模板 Service 实现类
*
@@ -55,17 +54,14 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
@Override
public Long createSmsTemplate(SmsTemplateSaveReqVO createReqVO) {
// 校验短信渠道
SmsChannelDO channelDO = validateSmsChannel(createReqVO.getChannelId());
// 校验短信编码是否重复
validateSmsTemplateCodeDuplicate(null, createReqVO.getCode());
// 校验短信模板
validateApiTemplate(createReqVO.getChannelId(), createReqVO.getApiTemplateId());
validateApiTemplate(createReqVO.getApiTemplateId());
// 插入
SmsTemplateDO template = BeanUtils.toBean(createReqVO, SmsTemplateDO.class);
template.setParams(parseTemplateContentParams(template.getContent()));
template.setChannelCode(channelDO.getCode());
smsTemplateMapper.insert(template);
// 返回
return template.getId();
@@ -77,17 +73,14 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
public void updateSmsTemplate(SmsTemplateSaveReqVO updateReqVO) {
// 校验存在
validateSmsTemplateExists(updateReqVO.getId());
// 校验短信渠道
SmsChannelDO channelDO = validateSmsChannel(updateReqVO.getChannelId());
// 校验短信编码是否重复
validateSmsTemplateCodeDuplicate(updateReqVO.getId(), updateReqVO.getCode());
// 校验短信模板
validateApiTemplate(updateReqVO.getChannelId(), updateReqVO.getApiTemplateId());
validateApiTemplate(updateReqVO.getApiTemplateId());
// 更新
SmsTemplateDO updateObj = BeanUtils.toBean(updateReqVO, SmsTemplateDO.class);
updateObj.setParams(parseTemplateContentParams(updateObj.getContent()));
updateObj.setChannelCode(channelDO.getCode());
smsTemplateMapper.updateById(updateObj);
}
@@ -159,14 +152,14 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
/**
* 校验 API 短信平台的模板是否有效
*
* @param channelId 渠道编号
* @param apiTemplateId API 模板编号
*/
@VisibleForTesting
void validateApiTemplate(Long channelId, String apiTemplateId) {
void validateApiTemplate(String apiTemplateId) {
// 获得短信模板
SmsClient smsClient = smsChannelService.getSmsClient();
Assert.notNull(smsClient, String.format("短信客户端(%d) 不存在", channelId));
if (ObjectUtil.isNull(smsClient)) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS);
}
SmsTemplateRespDTO template;
try {
template = smsClient.getSmsTemplate(apiTemplateId);
@@ -84,14 +84,8 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围
}).setId(null); // 防止 id 被赋值
// mock Channel 的方法
SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> {
o.setId(reqVO.getChannelId());
o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态
});
when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO);
// mock 获得 API 短信模板成功
when(smsChannelService.getSmsClient(eq(reqVO.getChannelId()))).thenReturn(smsClient);
when(smsChannelService.getSmsClient()).thenReturn(smsClient);
when(smsClient.getSmsTemplate(eq(reqVO.getApiTemplateId()))).thenReturn(
randomPojo(SmsTemplateRespDTO.class, o -> o.setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus())));
@@ -103,7 +97,6 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId);
assertPojoEquals(reqVO, smsTemplate, "id");
assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams());
assertEquals(channelDO.getCode(), smsTemplate.getChannelCode());
}
@Test
@@ -119,14 +112,8 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围
});
// mock 方法
SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> {
o.setId(reqVO.getChannelId());
o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态
});
when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO);
// mock 获得 API 短信模板成功
when(smsChannelService.getSmsClient(eq(reqVO.getChannelId()))).thenReturn(smsClient);
when(smsChannelService.getSmsClient()).thenReturn(smsClient);
when(smsClient.getSmsTemplate(eq(reqVO.getApiTemplateId()))).thenReturn(
randomPojo(SmsTemplateRespDTO.class, o -> o.setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus())));
@@ -136,7 +123,6 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(reqVO.getId()); // 获取最新的
assertPojoEquals(reqVO, smsTemplate);
assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams());
assertEquals(channelDO.getCode(), smsTemplate.getChannelCode());
}
@Test
@@ -233,7 +219,6 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
reqVO.setCode("tu");
reqVO.setContent("晨丰");
reqVO.setApiTemplateId("yu");
reqVO.setChannelId(1L);
reqVO.setCreateTime(buildBetweenTime(2021, 11, 1, 2021, 12, 1));
// 调用