瀏覽代碼

feat:Tab去除兜底

zhaohaipeng 1 周之前
父節點
當前提交
bd8cc7fd68

+ 15 - 11
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/tab/TabService.java

@@ -64,8 +64,18 @@ public class TabService {
         TabParam tabParam = this.requestCoverToParam(request);
 
         List<TabProto> tabProtos = new ArrayList<>();
+
+        List<TabProto> personalizationTabs = this.personalizationTab(tabParam);
+
+        String invalidTabCacheKey = String.format(userInvalidTabCache, tabParam.getUnionId());
+        Set<String> invalidTabCache = Optional.ofNullable(redisTemplate.opsForSet().members(invalidTabCacheKey)).orElse(new HashSet<>());
+        personalizationTabs =personalizationTabs.stream()
+                .filter(i -> !invalidTabCache.contains(i.getKey()))
+                .limit(Math.min(personalizationTabs.size(), personalizationTabSize))
+                .collect(Collectors.toList());
+
+        tabProtos.addAll(personalizationTabs);
         tabProtos.addAll(this.territoryTab(tabParam));
-        tabProtos.addAll(this.personalizationTab(tabParam));
 
         return TabResponse.newBuilder()
                 .setResult(Result.newBuilder().setCode(1).setMessage("success"))
@@ -85,13 +95,14 @@ public class TabService {
     }
 
     private List<TabProto> personalizationTab(TabParam tabParam) {
-        List<TabProto> defaultTab = this.buildTabProto(homepageDefaultTab, TabSource.default_hot, TabType.personalization);
-        List<TabProto> tabProtos = new ArrayList<>(defaultTab);
+        List<TabProto> tabProtos = new ArrayList<>();
 
         if (StringUtils.isBlank(tabParam.getUnionId())) {
             log.error("unionId is empty");
             return tabProtos;
         }
+        List<TabProto> defaultTab = this.buildTabProto(homepageDefaultTab, TabSource.default_hot, TabType.personalization);
+        tabProtos.addAll(defaultTab);
 
         String key = String.format(personalizationTabCondidateFormat, tabParam.getUnionId());
         String value = redisTemplate.opsForValue().get(key);
@@ -120,14 +131,7 @@ public class TabService {
         tabProtos.addAll(0, returnCate2Tab);
         tabProtos.addAll(0, shareCate2Tab);
         tabProtos.addAll(0, profileTab);
-
-        String invalidTabCacheKey = String.format(userInvalidTabCache, tabParam.getUnionId());
-        Set<String> invalidTabCache = Optional.ofNullable(redisTemplate.opsForSet().members(invalidTabCacheKey)).orElse(new HashSet<>());
-
-        return tabProtos
-                .stream().filter(i -> !invalidTabCache.contains(i.getKey()))
-                .limit(Math.min(tabProtos.size(), personalizationTabSize))
-                .collect(Collectors.toList());
+        return tabProtos;
     }
 
     private List<TabProto> buildTabProto(List<String> tabNames, TabSource source, TabType type) {