From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 20 二月 2025 16:57:55 +0800 Subject: [PATCH] IOS广告增加区域屏蔽 --- src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 100 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java b/src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java index 49be080..bfbc8cb 100644 --- a/src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java +++ b/src/main/java/com/yeshi/buwan/controller/parser/SearchParser.java @@ -4,8 +4,10 @@ import com.yeshi.buwan.domain.solr.SolrAlbumVideo; import com.yeshi.buwan.domain.solr.SolrShortVideo; import com.yeshi.buwan.domain.special.SearchSpecial; +import com.yeshi.buwan.domain.special.SearchSpecialPositionMap; import com.yeshi.buwan.domain.video.InternetSearchVideo; import com.yeshi.buwan.dto.search.SolrResultDTO; +import com.yeshi.buwan.service.inter.search.SearchSpecialPositionMapService; import com.yeshi.buwan.service.inter.search.SearchSpecialService; import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager; @@ -21,12 +23,17 @@ import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; @Controller public class SearchParser { @Resource private SearchSpecialService searchSpecialService; + + @Resource + private SearchSpecialPositionMapService searchSpecialPositionMapService; @Resource private SolrAlbumVideoDataManager solrAlbumVideoDataManager; @@ -46,24 +53,76 @@ */ public void getSpecialVideo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String key = request.getParameter("key"); - SearchSpecial searchSpecial = searchSpecialService.selectByKey(key); + SearchSpecial searchSpecial = searchSpecialService.selectByPrimaryKey(key); if (searchSpecial == null) { out.print(JsonUtil.loadFalseJson("鎼滅储涓撻涓嶅瓨鍦�")); return; } String page = request.getParameter("page"); - if (NumberUtil.isNumeric(page)) { + if (!NumberUtil.isNumeric(page)) { out.print(JsonUtil.loadFalseJson("椤电爜閿欒")); return; + } + int pageIndex = Integer.parseInt(page); + switch (key) { + case "3#hanju-bagua": + pageIndex++; + break; + case "3#hanju-news": + pageIndex += 2; + break; + case "3#hanju-stars": + pageIndex += 3; + break; + case "3#hanju-hots": + pageIndex += 4; + + case "3#hanju-music": + pageIndex += 5; + break; } List<VideoInfo> videoInfoList = new ArrayList<>(); int pageSize = Constant.pageCount; boolean hasNextPage = false; - if (searchSpecial.getAlbumQuery() != null) { - SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(searchSpecial.getAlbumQuery(), Integer.parseInt(page), pageSize); + + //鑾峰彇鎼滅储鏉′欢 + SearchSpecial.QueryConditions conditions = null; + + if (searchSpecial.getContainerList() != null) { + //鎸塿ersion鎺掑簭 + Comparator<SearchSpecial.QueryConditionsContainer> cm = (o1, o2) -> o1.getMinVersion() - o2.getMinVersion(); + Collections.sort(searchSpecial.getContainerList(), cm); + + + for (SearchSpecial.QueryConditionsContainer container : searchSpecial.getContainerList()) { + if (acceptData.getDetailSystem().getId().equalsIgnoreCase(container.getDetailSystemId())) { + if (acceptData.getVersion() >= container.getMinVersion()) { + if (acceptData.getChannel().equalsIgnoreCase(container.getChannel())) { + conditions = container.getQueryConditions(); + break; + } + } + } + } + + if (conditions == null) { + for (SearchSpecial.QueryConditionsContainer container : searchSpecial.getContainerList()) { + if (acceptData.getDetailSystem().getId().equalsIgnoreCase(container.getDetailSystemId())) { + if (acceptData.getVersion() >= container.getMinVersion()) { + conditions = container.getQueryConditions(); + break; + } + } + } + } + } + + + if (conditions.getAlbumQuery() != null) { + SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(conditions.getAlbumQuery(), pageIndex, pageSize); if (solrResultDTO != null) { List<SolrAlbumVideo> list = solrResultDTO.getVideoList(); if (list != null) { @@ -77,8 +136,8 @@ } } - if (searchSpecial.getInternetQuery() != null) { - SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(searchSpecial.getInternetQuery(), Integer.parseInt(page), pageSize); + if (conditions.getInternetQuery() != null) { + SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(conditions.getInternetQuery(), pageIndex, pageSize); if (solrResultDTO != null) { List<InternetSearchVideo> list = solrResultDTO.getVideoList(); if (list != null) { @@ -92,14 +151,15 @@ } } - if (searchSpecial.getShortQuery() != null) { - SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(searchSpecial.getShortQuery(), Integer.parseInt(page), pageSize); + if (conditions.getShortQuery() != null) { + SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(conditions.getShortQuery(), pageIndex, pageSize); if (solrResultDTO != null) { List<SolrShortVideo> list = solrResultDTO.getVideoList(); if (list != null) { for (SolrShortVideo av : list) { videoInfoList.add(VideoInfoFactory.create(av)); } + Collections.shuffle(videoInfoList); if (list.size() > 0) { hasNextPage = true; } @@ -115,8 +175,38 @@ JSONObject data = new JSONObject(); data.put("hasNextPage", hasNextPage); data.put("list", array); - data.put("column", 2); - out.print(JsonUtil.loadTrueAdmin(data)); + data.put("column", searchSpecial.getColumn()); + out.print(JsonUtil.loadTrueJson(data.toString())); + } + + + public void getSearchVideoType(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + String pid = request.getParameter("pid"); + if (StringUtil.isNullOrEmpty(pid)) { + out.print(JsonUtil.loadFalseJson("浣嶇疆ID涓嶈兘涓虹┖")); + return; + } + JSONArray array = new JSONArray(); + List<SearchSpecialPositionMap> mapList = searchSpecialPositionMapService.listDetailByPosition(pid, 0, 50); + for (SearchSpecialPositionMap map : mapList) { + JSONObject item = new JSONObject(); + item.put("name", StringUtil.isNullOrEmpty(map.getShowName()) ? map.getSpecial().getName() : map.getShowName()); + item.put("id", map.getSpecialId()); + item.put("icon", map.getIcon()); + String name = item.optString("name"); + //榄呮棌鍜屽皬绫充笉娣诲姞 + if (("xiaomi" .equalsIgnoreCase(acceptData.getChannel())) && "hanju-video-types" .equalsIgnoreCase(pid)) { + if (name.contains("鐢佃鍓�") || name.contains("鐢靛奖") || name.contains("缁艰壓") || name.contains("灏戝効")) { + array.add(item); + } + } else { + array.add(item); + } + } + JSONObject data = new JSONObject(); + data.put("list", array); + data.put("count", array.size()); + out.print(JsonUtil.loadTrueJson(data.toString())); } -- Gitblit v1.8.0