- 添加短信服务 admin api

This commit is contained in:
sin-ning@aliyun.com 2019-05-26 12:57:59 +08:00
parent fa2fd77719
commit 23864fac88
10 changed files with 262 additions and 12 deletions

View File

@ -0,0 +1,53 @@
package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.mall.admin.api.SmsService;
import cn.iocoder.mall.admin.api.dto.sms.PageQuerySmsSignDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 短信服务
*
* @author Sin
* @time 2019/5/26 12:26 PM
*/
@RestController
@RequestMapping("sms/sign")
@Api("短信服务(签名)")
public class SmsSignController {
@Autowired
private SmsService smsService;
@PostMapping("page")
@ApiOperation("签名-page")
public void pageSign(PageQuerySmsSignDTO querySmsSignDTO) {
smsService.pageSmsSign(querySmsSignDTO);
}
@PostMapping("add")
@ApiOperation("签名-添加")
public void addSign(@RequestParam("sign") String sign,
@RequestParam("platform") Integer platform) {
smsService.addSign(sign, platform);
}
@PostMapping("update")
@ApiOperation("签名-更新")
public void updateSign(@RequestParam("id") Integer id,
@RequestParam("sign") String sign,
@RequestParam("platform") Integer platform) {
smsService.updateSign(id, sign, platform);
}
@PostMapping("deleted")
@ApiOperation("签名-删除")
public void deletedSign(@RequestParam("id") Integer id) {
smsService.deleteSign(id);
}
}

View File

@ -0,0 +1,64 @@
package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.mall.admin.api.SmsService;
import cn.iocoder.mall.admin.api.dto.sms.PageQuerySmsSignDTO;
import cn.iocoder.mall.admin.api.dto.sms.PageQuerySmsTemplateDTO;
import cn.iocoder.mall.admin.application.po.sms.SmsTemplateAddPO;
import cn.iocoder.mall.admin.application.po.sms.SmsTemplateUpdatePO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 短信服务
*
* @author Sin
* @time 2019/5/26 12:26 PM
*/
@RestController
@RequestMapping("sms/template")
@Api("短信服务(短信模板)")
public class SmsTemplateController {
@Autowired
private SmsService smsService;
@PostMapping("page")
@ApiOperation("短信模板-page")
public void pageSign(PageQuerySmsTemplateDTO pageQuerySmsTemplateDTO) {
smsService.pageSmsTemplate(pageQuerySmsTemplateDTO);
}
@PostMapping("add")
@ApiOperation("短信模板-添加")
public void addSign(SmsTemplateAddPO smsTemplateAddPO) {
smsService.addTemplate(
smsTemplateAddPO.getSmsSignId(),
smsTemplateAddPO.getTemplateCode(),
smsTemplateAddPO.getTemplate(),
smsTemplateAddPO.getPlatform(),
smsTemplateAddPO.getSmsType());
}
@PostMapping("update")
@ApiOperation("短信模板-更新")
public void updateSign(SmsTemplateUpdatePO smsTemplateUpdatePO) {
smsService.updateTemplate(
smsTemplateUpdatePO.getId(),
smsTemplateUpdatePO.getSmsSignId(),
smsTemplateUpdatePO.getTemplateCode(),
smsTemplateUpdatePO.getTemplate(),
smsTemplateUpdatePO.getPlatform(),
smsTemplateUpdatePO.getSmsType());
}
@PostMapping("deleted")
@ApiOperation("短信模板-删除")
public void deletedSign(@RequestParam("id") Integer id) {
smsService.deleteTemplate(id);
}
}

View File

@ -0,0 +1,5 @@
/**
* @author Sin
* @time 2019/5/26 12:36 PM
*/
package cn.iocoder.mall.admin.application.po;

View File

@ -0,0 +1,49 @@
package cn.iocoder.mall.admin.application.po.sms;
import cn.iocoder.common.framework.validator.InEnum;
import cn.iocoder.mall.admin.api.constant.SmsPlatformEnum;
import cn.iocoder.mall.admin.api.constant.SmsTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* 短信模板 add
*
* @author Sin
* @time 2019/5/26 12:37 PM
*/
@ApiModel("短信模板-添加")
@Data
@Accessors(chain = true)
public class SmsTemplateAddPO implements Serializable {
@ApiModelProperty("短信签名id")
@NotNull(message = "短信短信签名id不能为空!")
private Integer smsSignId;
@ApiModelProperty("短信模板code")
@NotNull
@Size(min = 3, max = 50, message = "短信code在 3-50 之间")
private String templateCode;
@ApiModelProperty("短信模板")
@NotNull
@Size(min = 3, max = 255, message = "短信在 3-255 之间")
private String template;
@ApiModelProperty("短信模板-平台")
@NotNull
@InEnum(value = SmsPlatformEnum.class)
private Integer platform;
@ApiModelProperty("短信模板-平台")
@NotNull
@InEnum(value = SmsTypeEnum.class)
private Integer smsType;
}

View File

@ -0,0 +1,53 @@
package cn.iocoder.mall.admin.application.po.sms;
import cn.iocoder.common.framework.validator.InEnum;
import cn.iocoder.mall.admin.api.constant.SmsPlatformEnum;
import cn.iocoder.mall.admin.api.constant.SmsTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* 短信模板 add
*
* @author Sin
* @time 2019/5/26 12:37 PM
*/
@ApiModel("短信模板-添加")
@Data
@Accessors(chain = true)
public class SmsTemplateUpdatePO implements Serializable {
@ApiModelProperty("短信模板id")
@NotNull(message = "短信模板不能为空!")
private Integer id;
@ApiModelProperty("短信签名id")
@NotNull(message = "短信短信签名id不能为空!")
private Integer smsSignId;
@ApiModelProperty("短信模板code")
@NotNull
@Size(min = 3, max = 50, message = "短信code在 3-50 之间")
private String templateCode;
@ApiModelProperty("短信模板")
@NotNull
@Size(min = 3, max = 255, message = "短信在 3-255 之间")
private String template;
@ApiModelProperty("短信模板-平台")
@NotNull
@InEnum(value = SmsPlatformEnum.class)
private Integer platform;
@ApiModelProperty("短信模板-平台")
@NotNull
@InEnum(value = SmsTypeEnum.class)
private Integer smsType;
}

View File

@ -39,7 +39,7 @@ public interface SmsService {
* *
* @param sign * @param sign
*/ */
void createSign(String sign, Integer platform); void addSign(String sign, Integer platform);
/** /**
* 签名 - 获取 * 签名 - 获取
@ -72,7 +72,8 @@ public interface SmsService {
* @param template 模板内容 * @param template 模板内容
* @param platform 平台 * @param platform 平台
*/ */
void createTemplate(Integer smsSignId, String templateCode, String template, Integer platform, Integer smsType); void addTemplate(Integer smsSignId, String templateCode,
String template, Integer platform, Integer smsType);
/** /**
* 模板 - 获取 * 模板 - 获取
@ -89,7 +90,8 @@ public interface SmsService {
* @param template 模板内容 * @param template 模板内容
* @param platform 短信平台 * @param platform 短信平台
*/ */
void updateTemplate(Integer id, Integer smsSignId, String template, Integer platform, Integer smsType); void updateTemplate(Integer id, Integer smsSignId, String templateCode,
String template, Integer platform, Integer smsType);
/** /**
* 模板 - 删除 * 模板 - 删除

View File

@ -1,17 +1,23 @@
package cn.iocoder.mall.admin.api.constant; package cn.iocoder.mall.admin.api.constant;
import cn.iocoder.common.framework.core.IntArrayValuable;
import java.util.Arrays;
/** /**
* 短信审核状态 * 短信审核状态
* *
* @author Sin * @author Sin
* @time 2019/5/16 12:48 PM * @time 2019/5/16 12:48 PM
*/ */
public enum SmsPlatformEnum { public enum SmsPlatformEnum implements IntArrayValuable {
YunPian(1, "云片"), YunPian(1, "云片"),
AliYun(2, "阿里云"), AliYun(2, "阿里云"),
; ;
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SmsPlatformEnum::getValue).toArray();
private final Integer value; private final Integer value;
private final String name; private final String name;
@ -27,4 +33,9 @@ public enum SmsPlatformEnum {
public String getName() { public String getName() {
return name; return name;
} }
@Override
public int[] array() {
return ARRAYS;
}
} }

View File

@ -1,18 +1,24 @@
package cn.iocoder.mall.admin.api.constant; package cn.iocoder.mall.admin.api.constant;
import cn.iocoder.common.framework.core.IntArrayValuable;
import java.util.Arrays;
/** /**
* 短信审核状态 * 短信审核状态
* *
* @author Sin * @author Sin
* @time 2019/5/16 12:48 PM * @time 2019/5/16 12:48 PM
*/ */
public enum SmsTypeEnum { public enum SmsTypeEnum implements IntArrayValuable {
VERIFICATION_CODE(1, "验证码"), VERIFICATION_CODE(1, "验证码"),
NOTICE(1, "通知"), NOTICE(1, "通知"),
MARKETING(2, "营销"), MARKETING(2, "营销"),
; ;
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SmsTypeEnum::getValue).toArray();
private final Integer value; private final Integer value;
private final String name; private final String name;
@ -28,4 +34,9 @@ public enum SmsTypeEnum {
public String getName() { public String getName() {
return name; return name;
} }
@Override
public int[] array() {
return ARRAYS;
}
} }

View File

@ -111,7 +111,7 @@ public class SmsServiceImpl implements SmsService {
@Override @Override
@Transactional @Transactional
public void createSign(String sign, Integer platform) { public void addSign(String sign, Integer platform) {
// 避免重复 // 避免重复
SmsSignDO smsSignDO = smsSignMapper.selectOne( SmsSignDO smsSignDO = smsSignMapper.selectOne(
@ -196,8 +196,8 @@ public class SmsServiceImpl implements SmsService {
@Override @Override
@Transactional @Transactional
public void createTemplate(Integer smsSignId, String templateCode, public void addTemplate(Integer smsSignId, String templateCode,
String template, Integer platform, Integer smsType) { String template, Integer platform, Integer smsType) {
SmsSignDO smsSignDO = smsSignMapper.selectOne( SmsSignDO smsSignDO = smsSignMapper.selectOne(
new QueryWrapper<SmsSignDO>().eq("id", smsSignId)); new QueryWrapper<SmsSignDO>().eq("id", smsSignId));
@ -240,7 +240,8 @@ public class SmsServiceImpl implements SmsService {
@Override @Override
@Transactional @Transactional
public void updateTemplate(Integer id, Integer smsSignId, String template, Integer platform, Integer smsType) { public void updateTemplate(Integer id, Integer smsSignId, String templateCode,
String template, Integer platform, Integer smsType) {
SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectOne( SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectOne(
new QueryWrapper<SmsTemplateDO>().eq("id", id)); new QueryWrapper<SmsTemplateDO>().eq("id", id));
@ -260,6 +261,7 @@ public class SmsServiceImpl implements SmsService {
smsTemplateMapper.update( smsTemplateMapper.update(
(SmsTemplateDO) new SmsTemplateDO() (SmsTemplateDO) new SmsTemplateDO()
.setSmsSignId(smsSignId) .setSmsSignId(smsSignId)
.setTemplateCode(templateCode)
.setTemplate(template) .setTemplate(template)
.setPlatform(platform) .setPlatform(platform)
.setSmsType(smsType) .setSmsType(smsType)

View File

@ -31,8 +31,8 @@ public class SmsServiceImplTest {
@Test @Test
public void createSignTest() { public void createSignTest() {
// smsService.createSign("悦跑运动", SmsPlatformEnum.YunPian.getValue()); // smsService.addSign("悦跑运动", SmsPlatformEnum.YunPian.getValue());
smsService.createSign("登录确认验证码", SmsPlatformEnum.AliYun.getValue()); smsService.addSign("登录确认验证码", SmsPlatformEnum.AliYun.getValue());
} }
@Test @Test
@ -63,7 +63,7 @@ public class SmsServiceImplTest {
Integer sign = 4; Integer sign = 4;
String templateCode = "SMS_137110043"; String templateCode = "SMS_137110043";
String template = "验证码#code#,您正在登录,若非本人操作,请勿泄露。"; String template = "验证码#code#,您正在登录,若非本人操作,请勿泄露。";
smsService.createTemplate( smsService.addTemplate(
sign, sign,
templateCode, templateCode,
template, template,