完成短信模板的模块

This commit is contained in:
YunaiV
2021-04-11 00:30:01 +08:00
parent 73a2f4d84c
commit fdc60fbc90
7 changed files with 116 additions and 14 deletions

View File

@@ -7,6 +7,7 @@ import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.Operate
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.*;
import cn.iocoder.dashboard.modules.system.convert.sms.SysSmsTemplateConvert;
import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
import cn.iocoder.dashboard.modules.system.service.sms.SysSmsService;
import cn.iocoder.dashboard.modules.system.service.sms.SysSmsTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -30,6 +31,8 @@ public class SysSmsTemplateController {
@Resource
private SysSmsTemplateService smsTemplateService;
@Resource
private SysSmsService smsService;
@PostMapping("/create")
@ApiOperation("创建短信模板")
@@ -85,10 +88,11 @@ public class SysSmsTemplateController {
}
@PostMapping("/send-sms")
@ApiOperation("导出短信模板 Excel")
@ApiOperation("发送短信")
@PreAuthorize("@ss.hasPermission('system:sms-template:send-sms')")
public CommonResult<Boolean> sendSms(@Valid @RequestBody SysSmsTemplateSendReqVO sendReqVO) {
return success(true);
public CommonResult<Long> sendSms(@Valid @RequestBody SysSmsTemplateSendReqVO sendReqVO) {
return success(smsService.sendSingleSms(sendReqVO.getMobile(), null, null,
sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams()));
}
}

View File

@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.Date;
import java.util.List;
@ApiModel("短信模板 Response VO")
@Data
@@ -20,6 +21,9 @@ public class SysSmsTemplateRespVO extends SysSmsTemplateBaseVO {
@ApiModelProperty(value = "短信渠道编码", required = true, example = "ALIYUN")
private String channelCode;
@ApiModelProperty(value = "参数数组", example = "name,code")
private List<String> params;
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;

View File

@@ -11,11 +11,15 @@ import java.util.Map;
@Data
public class SysSmsTemplateSendReqVO {
@ApiModelProperty(value = "手机号", required = true, example = "15601691300")
@NotNull(message = "手机号不能为空")
private String mobile;
@ApiModelProperty(value = "模板编码", required = true, example = "test_01")
@NotNull(message = "模板编码不能为空")
private String code;
private String templateCode;
@ApiModelProperty(value = "模板参数")
private Map<String, Object> params;
private Map<String, Object> templateParams;
}

View File

@@ -14,7 +14,7 @@ import java.util.Map;
*/
public interface SysSmsService {
void sendSingleSms(String mobile, Long userId, Integer userType,
Long sendSingleSms(String mobile, Long userId, Integer userType,
String templateCode, Map<String, Object> templateParams);
void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,

View File

@@ -54,7 +54,7 @@ public class SysSmsServiceImpl implements SysSmsService {
private SysUserService userService;
@Override
public void sendSingleSms(String mobile, Long userId, Integer userType,
public Long sendSingleSms(String mobile, Long userId, Integer userType,
String templateCode, Map<String, Object> templateParams) {
// 校验短信模板是否合法
SysSmsTemplateDO template = this.checkSmsTemplateValid(templateCode);
@@ -67,11 +67,11 @@ public class SysSmsServiceImpl implements SysSmsService {
Long sendLogId = smsLogService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams);
// 发送 MQ 消息,异步执行发送短信
if (!isSend) {
return;
if (isSend) {
List<KeyValue<String, Object>> newTemplateParams = this.buildTemplateParams(template, templateParams);
smsProducer.sendSmsSendMessage(sendLogId, mobile, template.getChannelId(), template.getApiTemplateId(), newTemplateParams);
}
List<KeyValue<String, Object>> newTemplateParams = this.buildTemplateParams(template, templateParams);
smsProducer.sendSmsSendMessage(sendLogId, mobile, template.getChannelId(), template.getApiTemplateId(), newTemplateParams);
return sendLogId;
}
@Override