From 56481656c7de11cdca69c1a7dd69db176ffd9ecd Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 08 五月 2021 12:49:30 +0800
Subject: [PATCH] 华为屏蔽金币任务中的看海量视频,新增广告平台概率控制

---
 src/main/java/com/yeshi/buwan/service/imp/SearchService.java |   38 ++++++++++++++++++++++++++++++++------
 1 files changed, 32 insertions(+), 6 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 84b4f1e..61264cd 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -288,7 +288,7 @@
     }
 
 
-    private SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
+    public SearchResult searchAlbum(int videoType, String key, int page, int pageSize) {
         List<VideoInfo> localList = new ArrayList<>();
         //涓撹緫瑙嗛闆嗗悎
         Set<String> solrAlbumVids = new HashSet<>();
@@ -316,12 +316,15 @@
             }
         }
 
-        //绗竴椤佃�屼笖涓嶄负楂樻竻鏃舵悳绱�
+        //绗竴椤�,涓嶄负楂樻竻,涓绘悳绱㈠紩鎿庢棤娉曟悳绱㈠埌鍐呭鏃舵悳绱�
         if (page == 1 && videoType != Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
             //page涓�1鏃� 鍏ㄧ綉鎼�
             SolrResultDTO internetSearchResultDTO = solrInternetSearchVideoDataManager.find(filter, 1, 20);
             if (internetSearchResultDTO != null && internetSearchResultDTO.getVideoList().size() > 0) {
-                List<InternetSearchVideo> isvList = internetSearchResultDTO.getVideoList();
+                List<InternetSearchVideo> iList = internetSearchResultDTO.getVideoList();
+                List<InternetSearchVideo> isvList = new ArrayList<>();
+                if (iList != null && iList.size() > 0)
+                    isvList.addAll(iList);
                 //鍒犻櫎鍓嶉潰鏈夌殑鏁版嵁锛屾牴鎹畆ootType涓庡悕绉扮瓫閫�
                 for (int i = 0; i < isvList.size(); i++) {
                     String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType();
@@ -333,11 +336,34 @@
                 for (InternetSearchVideo sv : isvList) {
                     VideoInfo video = VideoInfoFactory.create(sv);
                     video = loadAlbumData(video);
-                    localList.add(video);
+                    if (albumCount < 3) {
+                        localList.add(video);
+                    } else {
+                        if (video.getName().equalsIgnoreCase(key))
+                            localList.add(video);
+                    }
                 }
             }
-            //todo 鎸夊叧閿瘝鐨勫尮閰嶅害鎺掑簭
+            //鎸夊叧閿瘝鐨勫尮閰嶅害鎺掑簭
+            Comparator<VideoInfo> cm = (VideoInfo o1, VideoInfo o2) -> {
+                if (o1.getDefinition() - o2.getDefinition() == 0) {
+                    float s1 = CompareStrSimUtil.getSimilarityRatio(o1.getName(), key, true);
+                    float s2 = CompareStrSimUtil.getSimilarityRatio(o2.getName(), key, true);
+//                        if (s1 != s2)//鐩镐技搴﹁秺楂樿秺闈犲墠
+                    return s2 > s1 ? 1 : -1;
+//                        else
+//                            return o1.getDefinition() - o2.getDefinition();//楂樻竻鎺掑湪鍓�
+                } else {
+                    return o2.getDefinition() - o1.getDefinition();//楂樻竻鎺掑湪鍓�
+                }
 
+            };
+
+            Collections.sort(localList, cm);
+        }
+        //鏈悳绱㈠埌鍐呭
+        if (localList == null || localList.size() == 0) {
+            logger.warn("涓撹緫鎼滅储鏃犵粨鏋�#{}", key);
         }
         return new SearchResult(albumCount, localList);
     }
@@ -708,7 +734,7 @@
     }
 
 
-    class SearchResult {
+    public static class SearchResult {
         private int totalCount;
         private List<VideoInfo> videoInfoList;
 

--
Gitblit v1.8.0