|
@@ -435,10 +435,10 @@ public class RecommendService {
|
|
|
boolean isNoneUserRisk = isNoneUserRisk(request, param);
|
|
boolean isNoneUserRisk = isNoneUserRisk(request, param);
|
|
|
boolean hitRiskScene = riskScenes.contains(request.getHotSceneType());
|
|
boolean hitRiskScene = riskScenes.contains(request.getHotSceneType());
|
|
|
boolean hitRiskUidCache = riskUserCache.getUnchecked(RedisKeyConstants.Recommend.riskUserUid).contains(param.getUid());
|
|
boolean hitRiskUidCache = riskUserCache.getUnchecked(RedisKeyConstants.Recommend.riskUserUid).contains(param.getUid());
|
|
|
- // V563/V566/V567 实验补丁: 命中其一时, 把 String "null" uid 的命中改回 false,
|
|
|
|
|
- // 修 RickUserCacheJob 将 BIGINT NULL 转 String.valueOf(null)="null" 写入
|
|
|
|
|
- // Redis Set, 导致 client 传 "null" 字符串 uid 的 guest user 全部错杀的 bug.
|
|
|
|
|
- if (hitRiskUidCache && "null".equals(param.getUid()) && isHitNullUidFixExp(request, param)) {
|
|
|
|
|
|
|
+ // 全量修复: RickUserCacheJob 将 BIGINT NULL 转 String.valueOf(null)="null" 写入
|
|
|
|
|
+ // Redis Set, 导致 client 传 "null" 字符串 uid 的 guest user 全部错杀。
|
|
|
|
|
+ // 命中 risk uid Set 但 uid 为字面 "null" 时, 视为错杀, 改回 false。
|
|
|
|
|
+ if (hitRiskUidCache && "null".equals(param.getUid())) {
|
|
|
hitRiskUidCache = false;
|
|
hitRiskUidCache = false;
|
|
|
}
|
|
}
|
|
|
boolean hitRiskMidCache = riskUserCache.getUnchecked(RedisKeyConstants.Recommend.riskUserMid).contains(param.getMid());
|
|
boolean hitRiskMidCache = riskUserCache.getUnchecked(RedisKeyConstants.Recommend.riskUserMid).contains(param.getMid());
|
|
@@ -495,27 +495,6 @@ public class RecommendService {
|
|
|
return param;
|
|
return param;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * null uid 风控错杀修复的实验集 (V562/V563/V565/V566/V567/...). 命中其中任一实验时走精准修复路径;
|
|
|
|
|
- * 多实验共享同一修复, 加新实验只需扩这个 Set。
|
|
|
|
|
- *
|
|
|
|
|
- * 走 judgeHitAlgoExp, 同时覆盖 abExpCodes 通道和 rootSessionId 尾号通道.
|
|
|
|
|
- */
|
|
|
|
|
- private static final Set<String> NULL_UID_FIX_EXP_CODES = new HashSet<>(Arrays.asList("562", "563", "565", "566", "567"));
|
|
|
|
|
-
|
|
|
|
|
- private boolean isHitNullUidFixExp(RecommendRequest request, RecommendParam param) {
|
|
|
|
|
- for (String code : NULL_UID_FIX_EXP_CODES) {
|
|
|
|
|
- if (experimentService.judgeHitAlgoExp(
|
|
|
|
|
- param.getAppType(),
|
|
|
|
|
- request.getRootSessionId(),
|
|
|
|
|
- param.getAbExpCodes(),
|
|
|
|
|
- code)) {
|
|
|
|
|
- return true;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private boolean isNoneUserRisk(RecommendRequest request, RecommendParam param) {
|
|
private boolean isNoneUserRisk(RecommendRequest request, RecommendParam param) {
|
|
|
boolean isNoneUserRisk = false;
|
|
boolean isNoneUserRisk = false;
|
|
|
try {
|
|
try {
|