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