Przeglądaj źródła

fix: 兼容旧包风控请求参数

hidewnd 4 dni temu
rodzic
commit
ab617affd2

+ 3 - 1
yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskConfigMapper.java

@@ -90,5 +90,7 @@ public interface RiskConfigMapper {
      */
     List<RiskTemplateView> getTemplateByAppIds(@Param("appIds") String appId);
 
-    List<RiskTemplateView> getEnableRiskTemplateBtCodes(@Param("appId")String appId, @Param("templateCodes") List<String> templateCodes);
+    List<RiskTemplateView> getEnableRiskTemplateByCodes(@Param("appId")String appId, @Param("templateCodes") List<String> templateCodes);
+
+    List<RiskTemplateView> getEnableRiskByCodes(@Param("templateCodes") List<String> templateCodes);
 }

+ 20 - 7
yt-risk/risk-manage/src/main/java/com/ytpm/strategy/RiskStrategyContext.java

@@ -110,7 +110,15 @@ public class RiskStrategyContext {
                 log.info("visitor[{}] last check success time < {} h", dyzUser.getUserId(), loginCheckValidityPeriod);
             } else {
                 List<String> templateCodes = Arrays.asList("344", "345");
-                List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateBtCodes(dyzUser.getAppId(), templateCodes);
+                List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateByCodes(dyzUser.getAppId(), templateCodes);
+                // 兼容旧包逻辑
+                if (CollUtil.isEmpty(risks)) {
+                    templateCodes = Arrays.asList(
+                            StrUtil.format("{}-344",dyzUser.getAppId()),
+                            StrUtil.format("{}-345",dyzUser.getAppId())
+                    );
+                    risks = configMapper.getEnableRiskByCodes(templateCodes);
+                }
                 riskCheck(dyzUser, params, risks);
                 redisService.setTimeOutHoursStr(cacheKey, "ok", loginCheckValidityPeriod);
             }
@@ -125,7 +133,7 @@ public class RiskStrategyContext {
             validate(new RiskTemplateVo(risk322View), dyzUser, params);
         }
         List<String> templateCodes = Arrays.asList("334", "335");
-        List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateBtCodes(dyzUser.getAppId(), templateCodes);
+        List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateByCodes(dyzUser.getAppId(), templateCodes);
         riskCheck(dyzUser, params, risks);
     }
 
@@ -143,7 +151,7 @@ public class RiskStrategyContext {
         List<String> templateCodes = strategyMap.values().stream()
                 .filter(strategy -> AbstractRiskStrategy.RISK_TIMING_AD.equals(strategy.getRiskTiming()))
                 .map(RiskStrategy::getRiskCode).collect(Collectors.toList());
-        List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateBtCodes(dyzUser.getAppId(), templateCodes);
+        List<RiskTemplateView> risks = configMapper.getEnableRiskTemplateByCodes(dyzUser.getAppId(), templateCodes);
         riskCheck(dyzUser, params, risks);
     }
 
@@ -189,13 +197,18 @@ public class RiskStrategyContext {
         String riskCode = templateVo.getRiskCode();
         YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
         if (ytApp == null) {
-            log.warn(StrUtil.format("[RiskStrategyContext]校验应用查询不存在:appId: {} userId: {}",
+            log.warn(StrUtil.format("[RiskStrategyContext]查询应用不存在,可能来自旧包请求:appId: {} userId: {}",
                     dyzUser.getAppId(), dyzUser.getUserId()));
         }
         YtPlatformUserApp userApp = ytApp == null ? null : appMapper.selectParentApp(ytApp.getSuperiorId());
-        if (ytApp != null && userApp == null) {
-            log.warn(StrUtil.format("[RiskStrategyContext]校验母包应用查询不存在:superiorId:{} appId: {} userId: {}",
-                    ytApp.getSuperiorId(), dyzUser.getAppId(), dyzUser.getUserId()));
+        // 兼容旧包
+        if (userApp == null && StrUtil.isNotEmpty(dyzUser.getAppId())) {
+            userApp = appMapper.selectParentApp(dyzUser.getAppId());
+        }
+        if (userApp == null) {
+            String superiorId = ytApp == null ? "" : ytApp.getSuperiorId();
+            log.warn(StrUtil.format("[RiskStrategyContext]查询母包应用不存在:superiorId:{} appId: {} userId: {}",
+                    superiorId, dyzUser.getAppId(), dyzUser.getUserId()));
         }
         params.put("app", ytApp);
         params.put("platformUserApp", userApp);

+ 25 - 1
yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml

@@ -317,7 +317,7 @@
             #{item}
         </foreach>
     </select>
-    <select id="getEnableRiskTemplateBtCodes" resultMap="RiskTemplateViewMap">
+    <select id="getEnableRiskTemplateByCodes" resultMap="RiskTemplateViewMap">
         SELECT
             rt.template_id,
             rt.app_id,
@@ -344,4 +344,28 @@
             )
         </if>
     </select>
+    <select id="getEnableRiskByCodes" resultMap="RiskTemplateViewMap">
+        SELECT
+            rt.template_id,
+            rt.app_id,
+            rt.template_code,
+            rt.template_name,
+            rt.template_content,
+            rt.effect_node,
+            rt.enabled,
+            rc.config_id,
+            rc.field_name,
+            rc.field_desc,
+            rc.config_type,
+            rc.config_val,
+            rc.multy
+        FROM yt_risk_template rt
+        LEFT JOIN yt_risk_template_config rtc ON rt.template_id = rtc.template_id
+        LEFT JOIN yt_risk_config rc ON rtc.config_id = rc.config_id
+        WHERE rt.enabled = 1
+        and rt.template_code in
+        <foreach collection="templateCodes" item="code" separator="," open="(" close=")">
+            #{code}
+        </foreach>
+    </select>
 </mapper>