|
|
@@ -3,6 +3,7 @@ package com.inspur.customer.service.authcode;
|
|
|
import com.alibaba.cola.dto.Response;
|
|
|
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
import com.inspur.customer.service.client.authcode.AuthCodeService;
|
|
|
import com.inspur.customer.service.dto.AuthCodeCheckDTO;
|
|
|
import com.inspur.customer.service.dto.AuthCodeDTO;
|
|
|
@@ -10,12 +11,16 @@ import com.inspur.customer.service.dto.AuthCodeCheckResponse;
|
|
|
import com.inspur.inform.client.email.SmsbEmailService;
|
|
|
import com.inspur.inform.client.sms.SmsbSmsService;
|
|
|
import com.inspur.inform.object.message.EmailMessage;
|
|
|
+import com.inspur.inform.object.message.SmsMessage;
|
|
|
+import com.inspur.inform.object.message.sms.SmsbSmsMessageResponse;
|
|
|
+import com.inspur.inform.object.message.sms.SmsbSmsTemplateType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
@@ -25,7 +30,7 @@ import java.util.concurrent.TimeUnit;
|
|
|
* @date 2022/6/29 17:22
|
|
|
*/
|
|
|
@Slf4j
|
|
|
-@DubboService
|
|
|
+@DubboService(interfaceClass = AuthCodeService.class)
|
|
|
public class AuthCodeServiceImpl implements AuthCodeService {
|
|
|
|
|
|
@DubboReference
|
|
|
@@ -46,22 +51,34 @@ public class AuthCodeServiceImpl implements AuthCodeService {
|
|
|
*/
|
|
|
public Response sendAuthCode(AuthCodeDTO authCodeDTO){
|
|
|
try{
|
|
|
+
|
|
|
//生成一个6位验证码
|
|
|
int authcode = (int)((Math.random() * 9 + 1) * 100000);
|
|
|
//发送邮件
|
|
|
- EmailMessage emailMessage = new EmailMessage();
|
|
|
- emailMessage.setSubject("浪潮安播云");
|
|
|
- emailMessage.setEmailContent("【浪潮安播云】验证码:"+ authcode +"(有效期为5分钟),请勿泄露给他人,如非本人操作,请忽略此信息。 ");
|
|
|
- emailMessage.setAddressees(Lists.newArrayList(authCodeDTO.getEmail()));
|
|
|
- Boolean aBoolean = smsbEmailService.sendEmail(emailMessage);
|
|
|
- if(aBoolean)redisTemplate.opsForValue().set("smsb:authcode:email:" + authCodeDTO.getEmail(), authcode + "", 5, TimeUnit.MINUTES);
|
|
|
+ if(StringUtils.isNotBlank(authCodeDTO.getEmail())){
|
|
|
+ EmailMessage emailMessage = new EmailMessage();
|
|
|
+ emailMessage.setSubject("浪潮安播云");
|
|
|
+ emailMessage.setEmailContent("【浪潮安播云】您的验证码"+ authcode +",该验证码5分钟内有效,请勿泄漏于他人!");
|
|
|
+ emailMessage.setAddressees(Lists.newArrayList(authCodeDTO.getEmail()));
|
|
|
+ Boolean aBoolean = smsbEmailService.sendEmail(emailMessage);
|
|
|
+ if(aBoolean)redisTemplate.opsForValue().set("smsb:authcode:email:" + authCodeDTO.getEmail(), authcode + "", 5, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
//发送手机短信
|
|
|
- SendSmsResponse sendPhoneNum = smsbSmsService.send("待定 SMS_154950909", authCodeDTO.getPhoneNum(), "浪潮安播云", "{\"MSRcode\":\"" + authCodeDTO + "\"}");
|
|
|
- if ("OK".equals(sendPhoneNum.body.code)) {
|
|
|
- redisTemplate.opsForValue().set("smsb:authcode:phoneNum:" + authCodeDTO.getPhoneNum(), authcode + "", 5, TimeUnit.MINUTES);
|
|
|
+ if(StringUtils.isNotBlank(authCodeDTO.getPhoneNum())){
|
|
|
+ SmsMessage smsMessage = new SmsMessage();
|
|
|
+ Map<String, String> maps = Maps.newHashMap();
|
|
|
+ maps.put("MSRcode",""+authcode);
|
|
|
+ smsMessage.setTemplateParam(maps);
|
|
|
+ smsMessage.setPhones(Lists.newArrayList(authCodeDTO.getPhoneNum()));
|
|
|
+ smsMessage.setSignName("浪潮安播云");
|
|
|
+ smsMessage.setTemplateType(SmsbSmsTemplateType.AUTH_CODE);
|
|
|
+ SmsbSmsMessageResponse smsbSmsMessageResponse = smsbSmsService.sendWarningMessage(smsMessage);
|
|
|
+ if (smsbSmsMessageResponse.getSuccess()) {
|
|
|
+ redisTemplate.opsForValue().set("smsb:authcode:phoneNum:" + authCodeDTO.getPhoneNum(), authcode + "", 5, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
- log.error("发送验证码报错 --》 {}", authCodeDTO);
|
|
|
+ log.error("发送验证码报错 --》 {}", authCodeDTO, e);
|
|
|
return Response.buildFailure("999","发送失败!");
|
|
|
}
|
|
|
return Response.buildSuccess();
|