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