瀏覽代碼

update risk filter large startOfDay

supeng 1 月之前
父節點
當前提交
8c4639fec7

+ 9 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -45,6 +45,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import java.time.Duration;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
@@ -435,6 +438,7 @@ public class RecommendService {
     private boolean isNoneUserRisk(RecommendRequest request, RecommendParam param) {
         boolean isNoneUserRisk = false;
         try {
+            long startOfDay = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
             if ((Objects.isNull(noneUserRiskExcludeAppTypes) || !noneUserRiskExcludeAppTypes.contains(param.getAppType()))
                     && Objects.equals(1089L, request.getHotSceneType())) {
                 if ((Objects.isNull(param.getUid()) || Objects.equals("0", param.getUid().trim()) || Objects.equals("null", param.getUid().trim()))
@@ -445,15 +449,16 @@ public class RecommendService {
                     if (Objects.nonNull(param.getUid()) && !Objects.equals("0", param.getUid().trim()) && !Objects.equals("null", param.getUid().trim())) {
                         //有uid
                         WxUserInfo wxUserInfo = getWxUserInfo(param.getUid());
-                        if (Objects.isNull(wxUserInfo)) {
-                            //有uid,但是未入库,新用户
+                        if (Objects.isNull(wxUserInfo) || (Objects.nonNull(wxUserInfo.getGmtCreateTimestamp()) && wxUserInfo.getGmtCreateTimestamp() > startOfDay)) {
+                            //有uid,当天为入库则为新用户
                             isNoneUserRisk = true;
                         }
                     } else if (Objects.nonNull(param.getMid()) && !Objects.equals("", param.getMid().trim())) {
                         //有mid
                         String key = String.format(MID_GENERATE_CACHE_KEY, param.getMid());
-                        if (!Boolean.TRUE.equals(midRedisTemplate.hasKey(key))) {
-                            //不存在则为新用户
+                        String value = midRedisTemplate.opsForValue().get(key);
+                        if (Objects.isNull(value) || Long.parseLong(value) > startOfDay) {
+                            //创建时间大于当天,则为新用户
                             isNoneUserRisk = true;
                         }
                     }