|
|
@@ -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;
|
|
|
}
|
|
|
}
|