소스 검색

feat: 游客风控通过后增加48h有效期限

hidewnd 1 개월 전
부모
커밋
65dfdb72ae
1개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

+ 12 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -113,6 +113,11 @@ public class RiskServiceImpl implements RiskService {
     private RedisService redisService;
     @Resource
     private AppMapper appMapper;
+
+    @Value("${risk.visitor.validity-period:48}")
+    private Integer loginCheckValidityPeriod;
+
+
     /**
      * 查询配置字段选项
      */
@@ -1010,6 +1015,12 @@ public class RiskServiceImpl implements RiskService {
         }
         // 游客用户总收益校验
         if(dyzUser.getLoginType() != null && LoginType.VISITOR == dyzUser.getLoginType()){
+            // 已通过用户 不再进行校验
+            String cacheKey = StrUtil.format("visitor:login_validity_{}_{}", dyzUser.getAppId(), dyzUser.getUserId());
+            if (redisService.hasKey(cacheKey)) {
+                log.info("visitor[{}] last check success time < {} h", dyzUser.getUserId(), loginCheckValidityPeriod);
+                return Result.resultOk(RepMessage.RISK_SUCCESS);
+            }
             boolean checkResult = checkVisitorRisk(dyzUser);
             if (!checkResult) {
                // 20250911 需求调整 锁定用户
@@ -1045,6 +1056,7 @@ public class RiskServiceImpl implements RiskService {
                 return Result.resultErr(RepMessage.RISK_VISITOR_LOWER_VALUE);
             }
 //            return checkResult ? Result.resultOk(RepMessage.RISK_SUCCESS) : Result.resultErr(RepMessage.RISK_VISITOR_LOWER_VALUE);
+            redisService.setTimeOutHoursStr(cacheKey, "ok", loginCheckValidityPeriod);
         }
         return Result.resultOk(RepMessage.RISK_SUCCESS);
     }