sms
This commit is contained in:
parent
40f2183d6e
commit
54769b7feb
|
|
@ -7,6 +7,7 @@ import com.bonus.common.core.exception.CaptchaException;
|
|||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.core.utils.VerificationCodeUtils;
|
||||
import com.bonus.common.core.utils.sms.SmsConfig;
|
||||
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.redis.service.RedisService;
|
||||
|
|
@ -41,6 +42,9 @@ public class SysPasswordService {
|
|||
@Resource
|
||||
private RemoteConfigService configService;
|
||||
|
||||
@Resource
|
||||
private SmsConfig smsConfig;
|
||||
|
||||
/**
|
||||
* 登录账户密码错误次数缓存键名
|
||||
*
|
||||
|
|
@ -107,7 +111,7 @@ public class SysPasswordService {
|
|||
String code = VerificationCodeUtils.generateVerificationCode(VerificationCodeUtils.CodeType.NUMERIC);
|
||||
String str = "您的验证码为" + code + ",尊敬的客户,以上验证码3分钟有效,微服务平台提醒您:转发可能导致账号被盗,请勿将验证码泄露于他人";
|
||||
String verifyKey = CacheConstants.VERIFICATION_CODE + phone;
|
||||
String s = SmsUtils.smsToken(phone, str, "");
|
||||
String s = SmsUtils.smsToken(smsConfig, phone, str, "");
|
||||
if (StringUtils.isNotEmpty(s)) {
|
||||
if (s.contains("ok")) {
|
||||
redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
|
||||
|
|
|
|||
|
|
@ -1,16 +1,23 @@
|
|||
package com.bonus.common.core.utils.sms;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "sms-config")
|
||||
@Data
|
||||
public class SmsConfig {
|
||||
|
||||
public static final String DOMAIN = "http://api.ktsms.cn/";
|
||||
private String domain;
|
||||
|
||||
public static final String DDT_KEY = "bonusyn";
|
||||
private String ddtKey;
|
||||
|
||||
public static final String SECRET_KEY = "IU0ypHbH";
|
||||
private String securityKey;
|
||||
|
||||
public static final String SMS_SIGNATURE = "【博诺思】";
|
||||
private String signature;
|
||||
|
||||
public static final String SMS_TOKEN = "sms_token";
|
||||
private String smsToken;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.bonus.common.core.utils.sms;
|
|||
import com.alibaba.fastjson2.JSON;
|
||||
import com.bonus.common.core.utils.http.HttpRequestHelper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
|
@ -16,18 +17,18 @@ public class SmsUtils {
|
|||
* @param sendTime 为空表示立即发送,定时发送格式:20101024090810
|
||||
* @return 是否发送成功
|
||||
*/
|
||||
public static String smsToken(String mobile, String content, String sendTime) {
|
||||
public static String smsToken(SmsConfig smsConfig, String mobile, String content, String sendTime) {
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
Map<String, Object> mapJson = new HashMap<>(6);
|
||||
mapJson.put("ddtkey", SmsConfig.DDT_KEY);
|
||||
mapJson.put("secretkey", SmsConfig.SECRET_KEY);
|
||||
mapJson.put("ddtkey", smsConfig.getDdtKey());
|
||||
mapJson.put("secretkey", smsConfig.getSecurityKey());
|
||||
mapJson.put("mobile", mobile);
|
||||
mapJson.put("content", SmsConfig.SMS_SIGNATURE + content);
|
||||
mapJson.put("content", smsConfig.getSignature() + content);
|
||||
mapJson.put("sendTime", sendTime);
|
||||
mapJson.put("extno", "");
|
||||
|
||||
// 将mapJson转换为URL查询参数格式
|
||||
StringBuilder urlBuilder = new StringBuilder(SmsConfig.SMS_TOKEN + "?");
|
||||
StringBuilder urlBuilder = new StringBuilder(smsConfig.getSmsToken() + "?");
|
||||
for (Map.Entry<String, Object> entry : mapJson.entrySet()) {
|
||||
try {
|
||||
String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8");
|
||||
|
|
@ -43,6 +44,6 @@ public class SmsUtils {
|
|||
String urlWithParams = urlBuilder.toString();
|
||||
|
||||
String json = JSON.toJSONString(mapJson);
|
||||
return HttpRequestHelper.postJson(SmsConfig.DOMAIN, urlWithParams, json, headers);
|
||||
return HttpRequestHelper.postJson(smsConfig.getDomain(), urlWithParams, json, headers);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.bonus.common.core.constant.CacheConstants;
|
|||
import com.bonus.common.core.exception.CaptchaException;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.core.utils.VerificationCodeUtils;
|
||||
import com.bonus.common.core.utils.sms.SmsConfig;
|
||||
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||
import com.bonus.common.redis.service.RedisService;
|
||||
import com.bonus.common.security.config.VerificationCodeConfig;
|
||||
|
|
@ -22,6 +23,8 @@ public class SmsService {
|
|||
@Resource
|
||||
private VerificationCodeConfig verificationCodeConfig;
|
||||
@Resource
|
||||
private SmsConfig smsConfig;
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
/**
|
||||
|
|
@ -37,7 +40,7 @@ public class SmsService {
|
|||
String code = VerificationCodeUtils.generateVerificationCode(NUMERIC);
|
||||
String str = verificationCodeConfig.getContent().replace("<code>", code);
|
||||
str = str.replace("<time>", verificationCodeConfig.getTime().toString());
|
||||
String s = SmsUtils.smsToken(to, str, "");
|
||||
String s = SmsUtils.smsToken(smsConfig, to, str, "");
|
||||
if (StringUtils.isNotEmpty(s)) {
|
||||
if (s.contains("ok")) {
|
||||
String verifyKey = CacheConstants.VERIFICATION_CODE + StringUtils.nvl(to, "");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
com.bonus.common.security.config.MyFilter
|
||||
com.bonus.common.security.config.WebMvcConfig
|
||||
com.bonus.common.security.config.VerificationCodeConfig
|
||||
com.bonus.common.core.utils.sms.SmsConfig
|
||||
com.bonus.common.security.service.TokenService
|
||||
com.bonus.common.security.service.SmsService
|
||||
com.bonus.common.security.service.EmailService
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.bonus.common.core.utils.SpringUtils;
|
|||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.core.utils.bean.BeanValidators;
|
||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||
import com.bonus.common.core.utils.sms.SmsConfig;
|
||||
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.core.web.domain.BaseEntity;
|
||||
|
|
@ -77,6 +78,9 @@ public class SysUserServiceImpl implements ISysUserService {
|
|||
@Resource
|
||||
private VerificationCodeConfig verificationCodeConfig;
|
||||
|
||||
@Resource
|
||||
private SmsConfig smsConfig;
|
||||
|
||||
@Autowired
|
||||
private JavaMailSender mailSender; // 自动注入JavaMailSender,用于发送邮件
|
||||
|
||||
|
|
@ -603,7 +607,7 @@ public class SysUserServiceImpl implements ISysUserService {
|
|||
Integer i = userMapper.approvalStatus(userId);
|
||||
if (i > 0) {
|
||||
if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
|
||||
SmsUtils.smsToken(sysUser.getPhonenumber(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统", "");
|
||||
SmsUtils.smsToken(smsConfig, sysUser.getPhonenumber(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统", "");
|
||||
}
|
||||
if (StringUtils.isNotEmpty(sysUser.getEmail())) {
|
||||
sendSimpleEmail(sysUser.getEmail(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统");
|
||||
|
|
|
|||
Loading…
Reference in New Issue