提交 8b210c15 编写于 作者: Chongwen.jiang's avatar Chongwen.jiang

1、风控调用业务修改到service层

2、验证码缓存key前缀常量提取
上级 0f4f8b92
流水线 #22420 已失败 于阶段
in 0 second
...@@ -58,4 +58,7 @@ public class Constants { ...@@ -58,4 +58,7 @@ public class Constants {
/** h5端发送短信验证码接口开关缓存key */ /** h5端发送短信验证码接口开关缓存key */
public static final String AUTHCODE_H5_SWITCH_KEY = "AUTH-CODE-H5-SWITCH"; public static final String AUTHCODE_H5_SWITCH_KEY = "AUTH-CODE-H5-SWITCH";
/** 验证码缓存key前缀 */
public static final String AUTH_CODE_PREFIX = "authCode-";
} }
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.Account; import com.pica.cloud.account.account.server.entity.Account;
import com.pica.cloud.account.account.server.entity.EncryptEntity; import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.entity.LoginResult; import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum; import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.mapper.AccountMapper;
import com.pica.cloud.account.account.server.req.AccountReq; import com.pica.cloud.account.account.server.req.AccountReq;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AccountService; import com.pica.cloud.account.account.server.service.AccountService;
...@@ -29,7 +29,6 @@ import org.apache.commons.lang3.StringUtils; ...@@ -29,7 +29,6 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date; import java.util.Date;
...@@ -46,9 +45,8 @@ import java.util.UUID; ...@@ -46,9 +45,8 @@ import java.util.UUID;
@RestController @RestController
@RequestMapping("/account") @RequestMapping("/account")
public class AccountController extends AccountBaseController { public class AccountController extends AccountBaseController {
private final String AUTH_CODE_PREFIX = "authCode-";
private Logger logger = LoggerFactory.getLogger(AccountController.class); private Logger logger = LoggerFactory.getLogger(AccountController.class);
@Autowired @Autowired
private AccountService accountService; private AccountService accountService;
@Autowired @Autowired
...@@ -225,8 +223,8 @@ public class AccountController extends AccountBaseController { ...@@ -225,8 +223,8 @@ public class AccountController extends AccountBaseController {
//获取验证码redis key //获取验证码redis key
private String getAuthCodeKey(String mobilePhone, String flag) { private String getAuthCodeKey(String mobilePhone, String flag) {
logger.info(AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE)); logger.info(Constants.AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE));
return AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE); return Constants.AUTH_CODE_PREFIX + flag + "-" + EncryptUtils.encryptContent(mobilePhone, EncryptConstants.ENCRYPT_TYPE_MOBILE);
} }
//校验验证码 //校验验证码
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.alibaba.fastjson.JSON;
import com.pica.cloud.account.account.server.constants.Constants; import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity; import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
import com.pica.cloud.account.account.server.entity.EncryptEntity; import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum; import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.enums.RcRepTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException; import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AccountService; import com.pica.cloud.account.account.server.service.AccountService;
import com.pica.cloud.account.account.server.service.AccountUnionService; import com.pica.cloud.account.account.server.service.AccountUnionService;
import com.pica.cloud.account.account.server.service.AuthCodeService;
import com.pica.cloud.account.account.server.service.CaptchaService; import com.pica.cloud.account.account.server.service.CaptchaService;
import com.pica.cloud.account.account.server.util.*; import com.pica.cloud.account.account.server.util.*;
import com.pica.cloud.foundation.entity.PicaException; import com.pica.cloud.foundation.entity.PicaException;
...@@ -20,9 +19,6 @@ import com.pica.cloud.foundation.entity.PicaWarnException; ...@@ -20,9 +19,6 @@ import com.pica.cloud.foundation.entity.PicaWarnException;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.CommonUtil; import com.pica.cloud.foundation.utils.utils.CommonUtil;
import com.pica.cloud.foundation.utils.utils.ValidateUtils; import com.pica.cloud.foundation.utils.utils.ValidateUtils;
import com.pica.cloud.riskcontrol.riskcontrol.client.CheckCodeClient;
import com.pica.cloud.riskcontrol.riskcontrol.common.req.CheckcodeRiskReq;
import com.pica.cloud.riskcontrol.riskcontrol.common.resp.CheckcodeRiskResp;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.catalina.servlet4preview.http.HttpServletRequest; import org.apache.catalina.servlet4preview.http.HttpServletRequest;
...@@ -30,20 +26,14 @@ import org.apache.commons.lang3.StringUtils; ...@@ -30,20 +26,14 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Objects;
@Api(description = "短信验证码资源") @Api(description = "短信验证码资源")
@RestController @RestController
public class AutoCodeController extends AccountBaseController { public class AutoCodeController extends AccountBaseController {
private final String AUTH_CODE_PREFIX = "authCode-";
private Logger logger = LoggerFactory.getLogger(AccountController.class); private Logger logger = LoggerFactory.getLogger(AccountController.class);
@Autowired @Autowired
...@@ -59,11 +49,8 @@ public class AutoCodeController extends AccountBaseController { ...@@ -59,11 +49,8 @@ public class AutoCodeController extends AccountBaseController {
private ICacheClient cacheClient; private ICacheClient cacheClient;
@Autowired @Autowired
private CheckCodeClient rcClient; private AuthCodeService authCodeService;
@Autowired
@Qualifier("accountThreadPool")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@GetMapping("/ip") @GetMapping("/ip")
public PicaResponse getIp(HttpServletRequest request){ public PicaResponse getIp(HttpServletRequest request){
...@@ -72,7 +59,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -72,7 +59,7 @@ public class AutoCodeController extends AccountBaseController {
/** /**
* @Description native获取验证码,新老版本兼容 todo joy * @Description native获取验证码,新老版本兼容
* @Author peijun.zhao * @Author peijun.zhao
* @Date 2020/2/28 9:55 * @Date 2020/2/28 9:55
* @ModifyDate 2020/2/28 9:55 * @ModifyDate 2020/2/28 9:55
...@@ -90,9 +77,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -90,9 +77,7 @@ public class AutoCodeController extends AccountBaseController {
if (request.getBizType() != null && request.getBizType().equals(1)) { if (request.getBizType() != null && request.getBizType().equals(1)) {
logger.info("app-rcValidate-start"); logger.info("app-rcValidate-start");
// 调用风控接口 // 调用风控接口
this.rcValidate(request.getMobile(), request.getFlag(), authCodeService.rcValidate(req, request, super.getDeviceInfo());
IPUtil.getIpAdrress(req), super.getDeviceInfo(),
request.getDevice_token());
// 发送短信验证码 // 发送短信验证码
processSysCode(request.getMobile(), request.getFlag()); processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse(); return PicaResponse.toResponse();
...@@ -100,7 +85,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -100,7 +85,7 @@ public class AutoCodeController extends AccountBaseController {
// 老版本业务(发送短信验证码) // 老版本业务(发送短信验证码)
processSysCode(request.getMobile(), request.getFlag()); processSysCode(request.getMobile(), request.getFlag());
// 记录风控数据 // 记录风控数据
recordRcData(req, request); authCodeService.recordRcData(req, request, super.getDeviceInfo("device_ip"));
return PicaResponse.toResponse(); return PicaResponse.toResponse();
} }
} }
...@@ -123,9 +108,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -123,9 +108,7 @@ public class AutoCodeController extends AccountBaseController {
if (request.getBizType() != null && request.getBizType().equals(1)) { if (request.getBizType() != null && request.getBizType().equals(1)) {
logger.info("h5-rcValidate-start"); logger.info("h5-rcValidate-start");
// 调用风控接口 // 调用风控接口
this.rcValidate(request.getMobile(), request.getFlag(), authCodeService.rcValidate(req, request, super.getDeviceInfo());
IPUtil.getIpAdrress(req), super.getDeviceInfo(),
request.getDevice_token());
// 发送短信验证码 // 发送短信验证码
processSysCode(request.getMobile(), request.getFlag()); processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse(); return PicaResponse.toResponse();
...@@ -133,7 +116,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -133,7 +116,7 @@ public class AutoCodeController extends AccountBaseController {
// h5(发送短信验证码) // h5(发送短信验证码)
processSysCode(request.getMobile(), request.getFlag()); processSysCode(request.getMobile(), request.getFlag());
// 记录风控数据 // 记录风控数据
recordRcData(req, request); authCodeService.recordRcData(req, request, super.getDeviceInfo("device_ip"));
return PicaResponse.toResponse(); return PicaResponse.toResponse();
} }
} }
...@@ -174,37 +157,12 @@ public class AutoCodeController extends AccountBaseController { ...@@ -174,37 +157,12 @@ public class AutoCodeController extends AccountBaseController {
super.sendMobileMessage(mobilePhone, message, senderId); super.sendMobileMessage(mobilePhone, message, senderId);
// 记录风控数据 // 记录风控数据
recordRcData(req, request); authCodeService.recordRcData(req, request, super.getDeviceInfo("device_ip"));
return PicaResponse.toResponse(StringUtils.EMPTY); return PicaResponse.toResponse(StringUtils.EMPTY);
} }
/**
* @Description 记录风控数据
* @Author Chongwen.jiang
* @Date 2020/2/27 16:53
* @ModifyDate 2020/2/27 16:53
* @Params [req, request]
* @Return void
*/
private void recordRcData(HttpServletRequest req, BaseRequest request) {
logger.info("recordRcData-start");
CheckcodeRiskReq rec = new CheckcodeRiskReq();
rec.setMobile(request.getMobile());
rec.setIp(IPUtil.getIpAdrress(req));
rec.setDeviceIp(super.getDeviceInfo("device_ip"));
rec.setDeviceId(request.getDevice_token());
logger.info("recordRcData-request-{}", JSON.toJSONString(rec));
try {
threadPoolTaskExecutor.execute(() -> {
logger.info("recordRcData-execute-{}", JSON.toJSONString(rec));
PicaResponse resp = rcClient.logSend(rec);
logger.info("recordRcData-resp-{}", JSON.toJSONString(resp));
});
} catch (Exception e) {
logger.error("recordRcData invoke error", e.getMessage());
}
}
@ApiOperation("微信获取验证码") @ApiOperation("微信获取验证码")
@PostMapping(value = "/authCode/wechat") @PostMapping(value = "/authCode/wechat")
...@@ -277,7 +235,7 @@ public class AutoCodeController extends AccountBaseController { ...@@ -277,7 +235,7 @@ public class AutoCodeController extends AccountBaseController {
//获取验证码redis key //获取验证码redis key
private String getAuthCodeKey(String mobilePhone, String flag) { private String getAuthCodeKey(String mobilePhone, String flag) {
return AUTH_CODE_PREFIX + flag + "-" + AESUtil.encryptV0(mobilePhone); return Constants.AUTH_CODE_PREFIX + flag + "-" + AESUtil.encryptV0(mobilePhone);
} }
//手机格式校验 //手机格式校验
...@@ -294,74 +252,6 @@ public class AutoCodeController extends AccountBaseController { ...@@ -294,74 +252,6 @@ public class AutoCodeController extends AccountBaseController {
return PicaResponse.toResponse(cacheCode); return PicaResponse.toResponse(cacheCode);
} }
/**
* @Description 调用风控接口
* @Author Chongwen.jiang
* @Date 2020/2/21 17:12
* @ModifyDate 2020/2/21 17:12
* @Params [mobile]
* @Return com.pica.cloud.account.account.server.resp.UnifiedVerificationResp
*/
private void rcValidate(String mobile,Integer flag,
String publicIp,String deviceInfoStr,
String deviceToken) {
// 调用风控接口
PicaResponse picaResponse = null;
try {
logger.info("rcValidate-publicIp:{}, deviceToken:{}, deviceInfoStr:{}",
publicIp, deviceToken, deviceInfoStr);
CheckcodeRiskReq rcReq = new CheckcodeRiskReq();
rcReq.setMobile(mobile);
rcReq.setIp(publicIp);
PICAPDeviceInfo deviceInfo = JSON.parseObject(deviceInfoStr, PICAPDeviceInfo.class);
rcReq.setDeviceIp(deviceInfo.getDevice_ip());
rcReq.setDeviceId(deviceToken);
logger.info("rc-checkcodeRisk-req:{}", JSON.toJSONString(rcReq));
picaResponse = rcClient.checkcodeRisk(rcReq);
logger.info("rc-checkcodeRisk-resp:{}", JSON.toJSONString(picaResponse));
} catch (Exception e) {
logger.error("rc-checkcodeRisk-invoke-exception", e);
}
if (picaResponse != null &&
PicaResultCode.SUCCESS.code().equals(picaResponse.getCode())) {
Object data = picaResponse.getData();
if (Objects.nonNull(data)) {
CheckcodeRiskResp respData = JSON.parseObject(
JSON.toJSONString(data), CheckcodeRiskResp.class);
if (StringUtils.isNotEmpty(respData.getProcessCode())) {
String processCode = respData.getProcessCode();
if (StringUtils.isNotEmpty(processCode)) {
// 请求返回正常
if (processCode.equals(RcRepTypeEnum.RC_SEND_FAIL.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_SEND_FAIL.getCode(),
AccountExceptionEnum.PICA_RC_SEND_FAIL.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_TRIGGER.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_TRIGGER.getCode(),
AccountExceptionEnum.PICA_RC_TRIGGER.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_BLACKLIST.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_BLACKLIST.getCode(),
AccountExceptionEnum.PICA_RC_BLACKLIST.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_DAY_LIMIT.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_DAY_LIMIT.getCode(),
AccountExceptionEnum.PICA_RC_DAY_LIMIT.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_60_SECOND_LIMIT.getCode())) {
// 获取剩余秒数
Long time = cacheClient.get(this.getAuthCodeKey(mobile, flag.toString()) + "-secure", Long.class);
int remainTime = 59 - (int) (System.currentTimeMillis() - time) / 1000;
if (remainTime > 0) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getCode(),
AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getMessage().replace("{remainTime}", String.valueOf(remainTime)));
}
} else {
// processCode=1(允许发送短信验证码)
}
}
}
}
}
}
} }
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.req.BaseRequest;
import javax.servlet.http.HttpServletRequest;
/**
* @ClassName AuthCodeService
* @Description 验证码业务
* @Author Chongwen.jiang
* @Date 2020/3/5 17:01
* @ModifyDate 2020/3/5 17:01
* @Version 1.0
*/
public interface AuthCodeService {
void rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr);
void recordRcData(HttpServletRequest req, BaseRequest baseRequest, String deviceIp);
}
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSON;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.RcRepTypeEnum;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AuthCodeService;
import com.pica.cloud.account.account.server.util.AESUtil;
import com.pica.cloud.account.account.server.util.IPUtil;
import com.pica.cloud.account.account.server.util.PICAPDeviceInfo;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.entity.PicaWarnException;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.riskcontrol.riskcontrol.client.CheckCodeClient;
import com.pica.cloud.riskcontrol.riskcontrol.common.req.CheckcodeRiskReq;
import com.pica.cloud.riskcontrol.riskcontrol.common.resp.CheckcodeRiskResp;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
/**
* @ClassName AuthCodeServiceImpl
* @Description
* @Author Chongwen.jiang
* @Date 2020/3/5 17:01
* @ModifyDate 2020/3/5 17:01
* @Version 1.0
*/
@Service
public class AuthCodeServiceImpl implements AuthCodeService {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private CheckCodeClient rcClient;
@Autowired
private ICacheClient cacheClient;
@Autowired
@Qualifier("accountThreadPool")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
/**
* @Description 调用风控接口
* @Author Chongwen.jiang
* @Date 2020/2/21 17:12
* @ModifyDate 2020/2/21 17:12
* @Params [mobile]
* @Return com.pica.cloud.account.account.server.resp.UnifiedVerificationResp
*/
@Override
public void rcValidate(HttpServletRequest request, BaseRequest baseRequest, String deviceInfoStr) {
// 调用风控接口
PicaResponse picaResponse = null;
try {
PICAPDeviceInfo deviceInfo = JSON.parseObject(deviceInfoStr, PICAPDeviceInfo.class);
String publicIp = IPUtil.getIpAdrress(request);
String deviceToken = baseRequest.getDevice_token();
logger.info("rcValidate-publicIp:{}, deviceToken:{}, deviceInfoStr:{}",
publicIp, deviceToken, deviceInfoStr);
CheckcodeRiskReq rcReq = new CheckcodeRiskReq();
rcReq.setMobile(baseRequest.getMobile());
rcReq.setIp(publicIp);
rcReq.setDeviceIp(deviceInfo.getDevice_ip());
rcReq.setDeviceId(deviceToken);
logger.info("rc-checkcodeRisk-req:{}", JSON.toJSONString(rcReq));
picaResponse = rcClient.checkcodeRisk(rcReq);
logger.info("rc-checkcodeRisk-resp:{}", JSON.toJSONString(picaResponse));
} catch (Exception e) {
logger.error("rc-checkcodeRisk-invoke-exception", e);
}
if (picaResponse != null &&
PicaResultCode.SUCCESS.code().equals(picaResponse.getCode())) {
Object data = picaResponse.getData();
if (Objects.nonNull(data)) {
CheckcodeRiskResp respData = JSON.parseObject(
JSON.toJSONString(data), CheckcodeRiskResp.class);
if (StringUtils.isNotEmpty(respData.getProcessCode())) {
String processCode = respData.getProcessCode();
if (StringUtils.isNotEmpty(processCode)) {
// 请求返回正常
if (processCode.equals(RcRepTypeEnum.RC_SEND_FAIL.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_SEND_FAIL.getCode(),
AccountExceptionEnum.PICA_RC_SEND_FAIL.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_TRIGGER.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_TRIGGER.getCode(),
AccountExceptionEnum.PICA_RC_TRIGGER.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_BLACKLIST.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_BLACKLIST.getCode(),
AccountExceptionEnum.PICA_RC_BLACKLIST.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_DAY_LIMIT.getCode())) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_DAY_LIMIT.getCode(),
AccountExceptionEnum.PICA_RC_DAY_LIMIT.getMessage());
} else if (processCode.equals(RcRepTypeEnum.RC_60_SECOND_LIMIT.getCode())) {
// 获取剩余秒数
String authCodeKey = Constants.AUTH_CODE_PREFIX + baseRequest.getFlag() + "-" + AESUtil.encryptV0(baseRequest.getMobile()) + "-secure";
Long time = cacheClient.get(authCodeKey, Long.class);
int remainTime = 59 - (int) (System.currentTimeMillis() - time) / 1000;
if (remainTime > 0) {
throw new PicaWarnException(AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getCode(),
AccountExceptionEnum.PICA_RC_60_SECOND_LIMIT.getMessage().replace("{remainTime}", String.valueOf(remainTime)));
}
} else {
// processCode=1(允许发送短信验证码)
}
}
}
}
}
}
/**
* @Description 记录风控数据
* @Author Chongwen.jiang
* @Date 2020/2/27 16:53
* @ModifyDate 2020/2/27 16:53
* @Params [req, request]
* @Return void
*/
@Override
public void recordRcData(HttpServletRequest request, BaseRequest baseRequest, String deviceIp) {
logger.info("recordRcData-start");
CheckcodeRiskReq rec = new CheckcodeRiskReq();
rec.setMobile(baseRequest.getMobile());
rec.setIp(IPUtil.getIpAdrress(request));
rec.setDeviceIp(deviceIp);
rec.setDeviceId(baseRequest.getDevice_token());
logger.info("recordRcData-request-{}", JSON.toJSONString(rec));
try {
threadPoolTaskExecutor.execute(() -> {
logger.info("recordRcData-execute-{}", JSON.toJSONString(rec));
PicaResponse resp = rcClient.logSend(rec);
logger.info("recordRcData-resp-{}", JSON.toJSONString(resp));
});
} catch (Exception e) {
logger.error("recordRcData invoke error", e.getMessage());
}
}
}
package com.pica.cloud.account.account.server.util; package com.pica.cloud.account.account.server.util;
import com.pica.cloud.account.account.server.controller.AccountController; import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.mapper.AccountPatientInfoMapper;
import com.pica.cloud.account.account.server.mapper.DoctorMapper; import com.pica.cloud.account.account.server.mapper.DoctorMapper;
import com.pica.cloud.foundation.entity.PicaException; import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
...@@ -19,21 +18,14 @@ import org.springframework.stereotype.Component; ...@@ -19,21 +18,14 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class AccountUtils { public class AccountUtils {
private Logger logger = LoggerFactory.getLogger(AccountUtils.class);
@Autowired @Autowired
private ICacheClient cacheClient; private ICacheClient cacheClient;
private Logger logger = LoggerFactory.getLogger(AccountController.class);
@Autowired
private AccountPatientInfoMapper accountPatientInfoMapper;
@Autowired @Autowired
private DoctorMapper doctorInfoMapper; private DoctorMapper doctorInfoMapper;
private static final String AUTH_CODE_PREFIX = "authCode-";
private static final String AUTH_CODE_COUNT_PREFIX = "authCode-count-";
//手机非空和格式校验 //手机非空和格式校验
public static void checkMobilePhone(String mobilePhone) { public static void checkMobilePhone(String mobilePhone) {
if (StringUtils.isBlank(mobilePhone) || !ValidateUtils.isMobile(mobilePhone)) { if (StringUtils.isBlank(mobilePhone) || !ValidateUtils.isMobile(mobilePhone)) {
...@@ -59,7 +51,7 @@ public class AccountUtils { ...@@ -59,7 +51,7 @@ public class AccountUtils {
//获取验证码redis key //获取验证码redis key
public static String getAuthCodeKey(String mobilePhone, String flag) { public static String getAuthCodeKey(String mobilePhone, String flag) {
return AUTH_CODE_PREFIX + flag + "-" + AESUtil.encryptV0(mobilePhone); return Constants.AUTH_CODE_PREFIX + flag + "-" + AESUtil.encryptV0(mobilePhone);
} }
//手机号和验证码校验 //手机号和验证码校验
......
package com.pica.cloud.account.account.server.util; package com.pica.cloud.account.account.server.util;
import com.pica.cloud.account.account.server.constants.Constants;
/** /**
* Created on 2020/1/9 16:18 * Created on 2020/1/9 16:18
* author:crs * author:crs
...@@ -7,8 +9,6 @@ package com.pica.cloud.account.account.server.util; ...@@ -7,8 +9,6 @@ package com.pica.cloud.account.account.server.util;
*/ */
public class RegisterCodeKeyUtils { public class RegisterCodeKeyUtils {
private static final String AUTH_CODE_PREFIX = "authCode-";
/** /**
* 获取注册验证码的key * 获取注册验证码的key
* *
...@@ -17,7 +17,7 @@ public class RegisterCodeKeyUtils { ...@@ -17,7 +17,7 @@ public class RegisterCodeKeyUtils {
* @return * @return
*/ */
public static String getRegisterKey(String mobilePhone, String authCode) { public static String getRegisterKey(String mobilePhone, String authCode) {
return AUTH_CODE_PREFIX + AESUtil.encryptV0(mobilePhone) +"-"+ authCode; return Constants.AUTH_CODE_PREFIX + AESUtil.encryptV0(mobilePhone) +"-"+ authCode;
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册