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

解决调用风控记录数据重复问题

上级 9cf16a8e
流水线 #23613 已失败 于阶段
in 0 second
...@@ -204,7 +204,8 @@ public class AuthCodeServiceImpl implements AuthCodeService { ...@@ -204,7 +204,8 @@ public class AuthCodeServiceImpl implements AuthCodeService {
String rcRecordedKey = Constants.RC_RECORDED_DATA_KEY.replace("{mobile}", paramReq.getMobile()) String rcRecordedKey = Constants.RC_RECORDED_DATA_KEY.replace("{mobile}", paramReq.getMobile())
.replace("{ip}", IPUtil.getIpAdrress(request)); .replace("{ip}", IPUtil.getIpAdrress(request));
int needCheck = 1; int needCheck = 1;
if (cacheClient.exists(rcRecordedKey)) { Long num = cacheClient.decr(rcRecordedKey);
if (num.equals(99)) {
// 不需要拼图验证,直接去发短信, 不用记录风控数据(在调用获取拼图码时已经校验过,记录了数据) // 不需要拼图验证,直接去发短信, 不用记录风控数据(在调用获取拼图码时已经校验过,记录了数据)
return -1; return -1;
} }
...@@ -215,7 +216,8 @@ public class AuthCodeServiceImpl implements AuthCodeService { ...@@ -215,7 +216,8 @@ public class AuthCodeServiceImpl implements AuthCodeService {
Long count = cacheClient.decr(key); Long count = cacheClient.decr(key);
logger.info("validateJigsawCode-count:{}", count); logger.info("validateJigsawCode-count:{}", count);
if (count.equals(99)) { if (count.equals(99)) {
// a、本应需要拼图验证,但是在调用获取拼图数据接口时报错了,也直接去发送短信 // a、不需要拼图验证,可直接去发送短信
// b、本应需要拼图验证,但是在调用获取拼图数据接口时报错了,也直接去发送短信
return needCheck; return needCheck;
} }
} }
...@@ -303,10 +305,13 @@ public class AuthCodeServiceImpl implements AuthCodeService { ...@@ -303,10 +305,13 @@ public class AuthCodeServiceImpl implements AuthCodeService {
} }
} else { } else {
logger.info("getJigsawCode-don't need jigsaw code"); logger.info("getJigsawCode-don't need jigsaw code");
cacheClient.set(key, 100, Constants.JIGSAW_CODE_EXPIRE_SECONDS);
if (needCheck == -1) {
// 不需要拼图验证, 风控允许直接发送验证码记录缓存 // 不需要拼图验证, 风控允许直接发送验证码记录缓存
String key2 = Constants.RC_RECORDED_DATA_KEY.replace("{mobile}", mobile) String key2 = Constants.RC_RECORDED_DATA_KEY.replace("{mobile}", mobile)
.replace("{ip}", IPUtil.getIpAdrress(request)); .replace("{ip}", IPUtil.getIpAdrress(request));
cacheClient.set(key2, mobile, Constants.JIGSAW_CODE_EXPIRE_SECONDS); cacheClient.set(key2, 100, Constants.JIGSAW_CODE_EXPIRE_SECONDS);
}
} }
return data; return data;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册