package cn.stylefeng.roses.kernel.sms.modular.controller;
|
|
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
import cn.stylefeng.roses.kernel.sms.modular.entity.SysSms;
|
import cn.stylefeng.roses.kernel.sms.modular.param.SysSmsInfoParam;
|
import cn.stylefeng.roses.kernel.sms.modular.param.SysSmsSendParam;
|
import cn.stylefeng.roses.kernel.sms.modular.param.SysSmsVerifyParam;
|
import cn.stylefeng.roses.kernel.sms.modular.service.SysSmsInfoService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
|
/**
|
* 短信发送控制器
|
*
|
* @author fengshuonan
|
* @date 2020/10/26 18:34
|
*/
|
@Api(tags = "短信发送")
|
@RestController
|
@ApiResource(name = "短信发送控制器", resBizType = ResBizTypeEnum.SYSTEM)
|
public class SmsSenderController {
|
|
@Resource
|
private SysSmsInfoService sysSmsInfoService;
|
|
/**
|
* 发送记录查询
|
*
|
* @author fengshuonan
|
* @date 2020/10/26 18:34
|
*/
|
@ApiOperation(value = "发送记录查询")
|
@GetResource(name = "发送记录查询", path = "/sms/page")
|
public ResponseData<PageResult<SysSms>> page(SysSmsInfoParam sysSmsInfoParam) {
|
return new SuccessResponseData<>(sysSmsInfoService.page(sysSmsInfoParam));
|
}
|
|
/**
|
* 发送验证码短信
|
*/
|
@ApiOperation(value = "发送验证码短信")
|
@PostResource(name = "发送验证码短信", path = "/sms/sendMessage", requiredLogin = false, requiredPermission = false)
|
public ResponseData<Boolean> sendMessage(@RequestBody @Validated SysSmsSendParam sysSmsSendParam) {
|
return new SuccessResponseData<>(sysSmsInfoService.sendShortMessage(sysSmsSendParam));
|
}
|
@ApiOperation(value = "发送登录验证码短信")
|
@PostResource(name = "发送登录验证码短信", path = "/sms/sendLoginMessage", requiredLogin = false, requiredPermission = false)
|
public ResponseData<Boolean> sendLoginMessage(@RequestBody @Validated SysSmsSendParam sysSmsSendParam) {
|
// 清空params参数
|
sysSmsSendParam.setParams(null);
|
|
// 设置模板中的参数
|
HashMap<String, Object> paramMap = MapUtil.newHashMap();
|
String randomNumbers = RandomUtil.randomNumbers(6);
|
String sysSmsCodeDefault = AuthConfigExpander.getSysSmsCodeDefault();
|
if (StrUtil.isNotBlank(sysSmsCodeDefault)) {
|
// 系统默认验证码(开发环境)
|
randomNumbers = AuthConfigExpander.getSysSmsCodeDefault();
|
}
|
String sysSmsHuaweiTemplateId = AuthConfigExpander.getSysSmsHuaweiTemplateId();
|
if (StrUtil.isBlank(sysSmsSendParam.getTemplateCode()) && sysSmsHuaweiTemplateId != null) {
|
// 短信华为模板ID
|
sysSmsSendParam.setTemplateCode(sysSmsHuaweiTemplateId);
|
}
|
|
paramMap.put("code", randomNumbers);
|
sysSmsSendParam.setParams(paramMap);
|
|
return new SuccessResponseData<>(sysSmsInfoService.sendShortMessage(sysSmsSendParam));
|
}
|
|
/**
|
* 验证短信验证码
|
*
|
* @author fengshuonan
|
* @date 2020/10/26 18:35
|
*/
|
@ApiOperation(value = "验证短信验证码")
|
@PostResource(name = "验证短信验证码", path = "/sms/validateMessage", requiredLogin = false, requiredPermission = false)
|
public ResponseData<?> validateMessage(@RequestBody @Validated SysSmsVerifyParam sysSmsVerifyParam) {
|
sysSmsInfoService.validateSmsInfo(sysSmsVerifyParam);
|
return new SuccessResponseData<>("短信验证成功");
|
}
|
|
}
|