From 20f473dc4997e8b8a76f8c75d0a649be0a5ea139 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 02 四月 2021 00:32:03 +0800
Subject: [PATCH] 广告控制逻辑代码初步编写
---
src/main/java/com/yeshi/buwan/service/imp/SearchService.java | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 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..be9f7af 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,32 @@
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 = new Comparator<VideoInfo>() {
+ @Override
+ public int compare(VideoInfo o1, VideoInfo o2) {
+ 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();//楂樻竻鎺掑湪鍓�
+ }
+ };
+ Collections.sort(localList, cm);
+ }
+ //鏈悳绱㈠埌鍐呭
+ if (localList == null || localList.size() == 0) {
+ logger.warn("涓撹緫鎼滅储鏃犵粨鏋�#{}", key);
}
return new SearchResult(albumCount, localList);
}
@@ -708,7 +732,7 @@
}
- class SearchResult {
+ public static class SearchResult {
private int totalCount;
private List<VideoInfo> videoInfoList;
--
Gitblit v1.8.0