From 8fee151ffae0c3818694b7318583814bf92663e2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 27 八月 2021 18:52:28 +0800
Subject: [PATCH] 聚合视频资源包调整,接入韩迷

---
 src/main/java/com/yeshi/buwan/service/imp/SearchService.java |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
index d1e3147..8d765cd 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -10,7 +10,7 @@
 import com.yeshi.buwan.domain.web.HotSearchAdmin;
 import com.yeshi.buwan.dto.search.SolrResultDTO;
 import com.yeshi.buwan.dto.search.SolrVideoSearchFilter;
-import com.yeshi.buwan.pptv.PPTVUtil;
+import com.yeshi.buwan.videos.pptv.PPTVUtil;
 import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
 import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
 import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager;
@@ -34,6 +34,8 @@
 @Service
 public class SearchService {
     private Logger logger = LoggerFactory.getLogger(SearchService.class);
+
+    private final String ALBUM_SEARCH_FUZZY_KEYS = "銆�,銆�,銆�";
 
 
     @Resource
@@ -288,7 +290,7 @@
     }
 
 
-    public SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
+    public SearchResult searchAlbum(int videoType, String key, List<Long> resourceIds, int page, int pageSize) {
         List<VideoInfo> localList = new ArrayList<>();
         //涓撹緫瑙嗛闆嗗悎
         Set<String> solrAlbumVids = new HashSet<>();
@@ -298,8 +300,15 @@
         if (videoType == Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
             filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""}));
             logger.info("楂樻竻鎼滅储# key锛歿}", key);
-        } else
+        } else {
+
+            List<String> rids = new ArrayList<>();
+            for (Long rid : resourceIds) {
+                rids.add(rid + "");
+            }
+            filter.setResourceIds(rids);
             filter.setVideoType(videoType == 0 ? null : videoType);
+        }
         filter.setContentType(1);
 
         SolrResultDTO solrResultDTO = solrAlbumDataManager.find(filter, page, pageSize);
@@ -316,7 +325,7 @@
             }
         }
 
-        //绗竴椤�,涓嶄负楂樻竻,涓绘悳绱㈠紩鎿庢棤娉曟悳绱㈠埌鍐呭鏃舵悳绱�
+        //绗竴椤�,涓嶄负楂樻竻鏃舵悳绱�
         if (page == 1 && videoType != Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
             //page涓�1鏃� 鍏ㄧ綉鎼�
             SolrResultDTO internetSearchResultDTO = solrInternetSearchVideoDataManager.find(filter, 1, 20);
@@ -327,7 +336,7 @@
                     isvList.addAll(iList);
                 //鍒犻櫎鍓嶉潰鏈夌殑鏁版嵁锛屾牴鎹畆ootType涓庡悕绉扮瓫閫�
                 for (int i = 0; i < isvList.size(); i++) {
-                    String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType();
+                    String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType() + "#" + isvList.get(i).getYear();
                     if (albumSet.contains(uniqueId)) {
                         isvList.remove(i);
                         i--;
@@ -350,7 +359,11 @@
                     float s1 = CompareStrSimUtil.getSimilarityRatio(o1.getName(), key, true);
                     float s2 = CompareStrSimUtil.getSimilarityRatio(o2.getName(), key, true);
 //                        if (s1 != s2)//鐩镐技搴﹁秺楂樿秺闈犲墠
-                    return s2 > s1 ? 1 : -1;
+                    try {
+                        return s1 != s2 ? (s2 > s1 ? 1 : -1) : (Integer.parseInt(o2.getYear()) - Integer.parseInt(o1.getYear()));
+                    } catch (Exception e) {
+                        return s2 > s1 ? 1 : -1;
+                    }
 //                        else
 //                            return o1.getDefinition() - o2.getDefinition();//楂樻竻鎺掑湪鍓�
                 } else {
@@ -418,7 +431,7 @@
         if (!StringUtil.isNullOrEmpty(key) && key.length() > 30)
             key = key.substring(0, 30);
         sh.setKey(key);
-        if(uid!=null) {
+        if (uid != null) {
             UserInfo user = new UserInfo();
             user.setId(uid);
             sh.setUser(user);
@@ -438,7 +451,7 @@
             localList = new ArrayList<>();
             //鍏堟悳绱笓杈�
             int pageSize = 20;
-            SearchResult searchResult = searchAlbum(videoType, key, page, pageSize);
+            SearchResult searchResult = searchAlbum(videoType, key, resourceList, page, pageSize);
             if (searchResult != null && searchResult.videoInfoList != null) {
                 localList.addAll(searchResult.videoInfoList);
             }

--
Gitblit v1.8.0