mirror of
https://gitee.com/likeadmin/likeadmin_java.git
synced 2026-06-05 02:34:11 +08:00
优化通知驱动类
This commit is contained in:
@@ -1,7 +1,14 @@
|
||||
package com.mdd.front.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.entity.system.SystemLogSms;
|
||||
import com.mdd.common.exception.OperateException;
|
||||
import com.mdd.common.mapper.system.SystemLogSmsMapper;
|
||||
import com.mdd.common.plugin.notice.NoticeDriver;
|
||||
import com.mdd.common.plugin.notice.NoticeParams;
|
||||
import com.mdd.common.utils.StringUtil;
|
||||
import com.mdd.common.utils.ToolsUtil;
|
||||
import com.mdd.front.validate.SmsValidate;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -10,8 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 短信管理
|
||||
@@ -20,6 +27,9 @@ import java.util.Map;
|
||||
@RequestMapping("/api/sms")
|
||||
public class SmsController {
|
||||
|
||||
@Resource
|
||||
SystemLogSmsMapper systemLogSmsMapper;
|
||||
|
||||
/**
|
||||
* 发送短信
|
||||
*
|
||||
@@ -29,12 +39,30 @@ public class SmsController {
|
||||
*/
|
||||
@PostMapping("/send")
|
||||
public AjaxResult<Object> send(@Validated @RequestBody SmsValidate smsValidate) {
|
||||
Map<String, String> config = new LinkedHashMap<>();
|
||||
config.put("scene", smsValidate.getScene());
|
||||
config.put("mobile", smsValidate.getMobile());
|
||||
Map<String, String> params = new LinkedHashMap<>();
|
||||
params.put("code", ToolsUtil.randomInt(4));
|
||||
(new NoticeDriver()).handle(config, params);
|
||||
Assert.notNull(smsValidate.getMobile(), "mobile参数缺失!");
|
||||
Assert.notNull(smsValidate.getScene(), "scene参数缺失!");
|
||||
|
||||
SystemLogSms systemLogSms = systemLogSmsMapper.selectOne(new QueryWrapper<SystemLogSms>()
|
||||
.eq("mobile", smsValidate.getMobile())
|
||||
.eq("scene", smsValidate.getScene())
|
||||
.in("status", Arrays.asList(0, 1))
|
||||
.orderByDesc("id")
|
||||
.last("limit 1"));
|
||||
|
||||
if (StringUtil.isNotNull(systemLogSms)) {
|
||||
if (systemLogSms.getCreateTime() >= (System.currentTimeMillis() / 1000 - 60)){
|
||||
throw new OperateException("操作频繁,请稍后再试!");
|
||||
}
|
||||
}
|
||||
|
||||
NoticeParams params = new NoticeParams()
|
||||
.setScene(smsValidate.getScene())
|
||||
.setMobile(smsValidate.getMobile())
|
||||
.setParams(new String[] {
|
||||
"code:" + ToolsUtil.randomInt(4)
|
||||
});
|
||||
|
||||
(new NoticeDriver()).handle(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,8 +14,7 @@ public class SmsValidate implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@NotNull(message = "scene参数缺失")
|
||||
@NotEmpty(message = "场景不能为空")
|
||||
private String scene;
|
||||
private Integer scene;
|
||||
|
||||
@NotNull(message = "mobile参数缺失")
|
||||
@NotEmpty(message = "手机号不能为空")
|
||||
|
||||
@@ -12,7 +12,7 @@ spring:
|
||||
static-path-pattern: /api/static/**
|
||||
# 数据源配置
|
||||
datasource:
|
||||
url: jdbc:mysql://localhost:3306/likeadmin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
|
||||
url: jdbc:mysql://localhost:3306/local_likeadmin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
|
||||
type: com.zaxxer.hikari.HikariDataSource # 数据源类型
|
||||
driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
|
||||
username: root # 数据库账号
|
||||
|
||||
Reference in New Issue
Block a user