短信发送日志调整

This commit is contained in:
2023-08-25 09:34:03 +08:00
parent df51123872
commit 3668582d4a
6 changed files with 69 additions and 48 deletions

View File

@@ -21,4 +21,7 @@ public class EleEvtParam {
private String unit; private String unit;
private String data; private String data;
private String showName;
} }

View File

@@ -34,5 +34,6 @@ public class EleEvtParm {
private String data; private String data;
private String showName;
} }

View File

@@ -43,5 +43,14 @@ public class AppSendMsg {
*/ */
private String sendStatus; private String sendStatus;
/**
* 发送失败备注
*/
private String remark;
/**
* 短信模板
*/
private String template;
} }

View File

@@ -27,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
/** /**
* 类的介绍: * 类的介绍:
@@ -60,8 +61,12 @@ public class AppUserController extends BaseController {
}) })
public HttpResult<String> authCode(String phone, String devCode, String type) { public HttpResult<String> authCode(String phone, String devCode, String type) {
String methodDescribe = getMethodDescribe("authCode"); String methodDescribe = getMethodDescribe("authCode");
appUserService.setMessage(phone,devCode,type); String code = appUserService.setMessage(phone,devCode,type);
if (Objects.equals(code,"OK")){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "fail", methodDescribe);
}
} }
/** /**

View File

@@ -11,7 +11,7 @@ public interface IAppUserService {
* @param devCode 设备码 * @param devCode 设备码
* @param type 验证码类型 * @param type 验证码类型
*/ */
void setMessage(String phone, String devCode, String type); String setMessage(String phone, String devCode, String type);
/** /**
* 手机app注册(所有用户初始统一为游客,需要特定的码升级) * 手机app注册(所有用户初始统一为游客,需要特定的码升级)

View File

@@ -68,12 +68,14 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void setMessage(String phone, String devCode, String type) { public String setMessage(String phone, String devCode, String type) {
if (!PubUtils.match(PatternRegex.PHONE_REGEX, phone)){ if (!PubUtils.match(PatternRegex.PHONE_REGEX, phone)){
throw new BusinessException(UserResponseEnum.REGISTER_PHONE_WRONG); throw new BusinessException(UserResponseEnum.REGISTER_PHONE_WRONG);
} }
SendSmsResponse sendSmsResponse = null;
String msgTemplate = null;
String vcode = null;
try { try {
String msgTemplate;
switch (type) { switch (type) {
case "0": case "0":
msgTemplate = MessageEnum.getTemplateByCode(0); msgTemplate = MessageEnum.getTemplateByCode(0);
@@ -148,11 +150,11 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
request.setSignName("灿能云"); request.setSignName("灿能云");
//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
request.setTemplateCode(msgTemplate); request.setTemplateCode(msgTemplate);
String vcode = getMessageCode(); vcode = getMessageCode();
String code = "{\"code\":\"" + vcode + "\"}"; String code = "{\"code\":\"" + vcode + "\"}";
request.setTemplateParam(code); request.setTemplateParam(code);
//请求失败这里会抛ClientException异常 //请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); sendSmsResponse = acsClient.getAcsResponse(request);
String key = RedisKeyEnum.SMS_LOGIN_KEY.getKey() + phone; String key = RedisKeyEnum.SMS_LOGIN_KEY.getKey() + phone;
if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) { if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) {
//成功发送短信验证码后保存进redis验证码失效为5分钟 //成功发送短信验证码后保存进redis验证码失效为5分钟
@@ -160,20 +162,14 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
} else { } else {
throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL); throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
} }
AppSendMsg appSendMsg = new AppSendMsg(); //短信入库
appSendMsg.setPhone(phone); addSendMessage(phone,vcode,msgTemplate,sendSmsResponse);
appSendMsg.setMessage(vcode);
appSendMsg.setSendTime(LocalDateTime.now());
appSendMsg.setSendStatus(sendSmsResponse.getCode() == null ? "无状态" : sendSmsResponse.getCode());
appSendMsgService.save(appSendMsg);
} catch (Exception e) { } catch (Exception e) {
logger.error("发送短信异常,异常为:"+e.getMessage()); logger.error("发送短信异常,异常为:"+e.getMessage());
if (e.getMessage().length() < 10) { //短信入库
throw new BusinessException(e.getMessage()); addSendMessage(phone,vcode,msgTemplate,sendSmsResponse);
} else {
throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
}
} }
return sendSmsResponse.getCode();
} }
@Override @Override
@@ -338,6 +334,8 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
* @param userId * @param userId
*/ */
public void sendPasswordMessage(String phone, String userId) { public void sendPasswordMessage(String phone, String userId) {
SendSmsResponse sendSmsResponse = null;
String password = null;
String msgTemplate = MessageEnum.getTemplateByCode(3); String msgTemplate = MessageEnum.getTemplateByCode(3);
//开始执行短信发送 //开始执行短信发送
//设置超时时间-可自行调整 //设置超时时间-可自行调整
@@ -365,30 +363,21 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
request.setSignName("灿能云"); request.setSignName("灿能云");
//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
request.setTemplateCode(msgTemplate); request.setTemplateCode(msgTemplate);
String password = redisUtil.getStringByKey(userId); password = redisUtil.getStringByKey(userId);
String code = "{\"pwd\":\"" + password + "\"}"; String code = "{\"pwd\":\"" + password + "\"}";
request.setTemplateParam(code); request.setTemplateParam(code);
//请求失败这里会抛ClientException异常 //请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); sendSmsResponse = acsClient.getAcsResponse(request);
if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) { if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) {
//成功发送短信验证码后,删除用户密码信息 //成功发送短信验证码后,删除用户密码信息
redisUtil.delete(userId); redisUtil.delete(userId);
} else { } else {
throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL); throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
} }
AppSendMsg appSendMsg = new AppSendMsg(); addSendMessage(phone,password,msgTemplate,sendSmsResponse);
appSendMsg.setPhone(phone);
appSendMsg.setMessage(password);
appSendMsg.setSendTime(LocalDateTime.now());
appSendMsg.setSendStatus(sendSmsResponse.getCode() == null ? "无状态" : sendSmsResponse.getCode());
appSendMsgService.save(appSendMsg);
} catch (ClientException e) { } catch (ClientException e) {
logger.error("发送短信异常,异常为:"+e.getMessage()); logger.error("发送短信异常,异常为:"+e.getMessage());
if (e.getMessage().length() < 10) { addSendMessage(phone,password,msgTemplate,sendSmsResponse);
throw new BusinessException(e.getMessage());
} else {
throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
}
} }
} }
@@ -426,4 +415,18 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
return user; return user;
} }
/**
* 验证码入库
*/
public void addSendMessage(String phone, String vcode, String template, SendSmsResponse sendSmsResponse) {
AppSendMsg appSendMsg = new AppSendMsg();
appSendMsg.setPhone(phone);
appSendMsg.setMessage(vcode);
appSendMsg.setSendTime(LocalDateTime.now());
appSendMsg.setSendStatus(sendSmsResponse.getCode() == null ? "无状态" : sendSmsResponse.getCode());
appSendMsg.setRemark(sendSmsResponse.getMessage());
appSendMsg.setTemplate(template);
appSendMsgService.save(appSendMsg);
}
} }