From ad3ac53da1c3a11a96ae62d790aa61a81b9eab91 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 20 三月 2021 18:47:23 +0800
Subject: [PATCH] 完善APP首页顶部标签栏兼容,初步处理推送

---
 src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java |   55 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java b/src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
index c04f028..8fe2cee 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
@@ -2,12 +2,17 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.math.BigDecimal;
 import java.util.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.google.gson.Gson;
 import com.yeshi.buwan.domain.*;
+import com.yeshi.buwan.domain.jump.JumpDetail;
+import com.yeshi.buwan.domain.jump.JumpTypeEnum;
+import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial;
 import com.yeshi.buwan.domain.system.DetailSystemConfig;
 import com.yeshi.buwan.domain.system.DetailSystem;
 import com.yeshi.buwan.domain.video.VideoWatchHistory;
@@ -15,6 +20,7 @@
 import com.yeshi.buwan.pptv.entity.PPTVSeries;
 import com.yeshi.buwan.service.imp.*;
 import com.yeshi.buwan.service.inter.juhe.PPTVService;
+import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService;
 import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService;
 import com.yeshi.buwan.util.*;
 import com.yeshi.buwan.util.annotation.RequireUid;
@@ -79,17 +85,23 @@
     @Resource
     private VideoWatchHistoryService videoWatchHistoryService;
 
-    private final Logger playLogger = LoggerFactory.getLogger("videoPlay");
+    @Resource
+    private HomeRecommendSpecialService homeRecommendSpecialService;
+
+    private final Logger userPlayLogger = LoggerFactory.getLogger("videoPlayUser");
 
     @RequireUid
     public void getHomeAd(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
         String vtid = request.getParameter("Vtid");
-        if (!"310".equals(vtid)) {
+        HomeRecommendSpecial special = homeRecommendSpecialService.getSpecial(vtid);
+        //鍏煎鏂扮増鏈�
+        if (special != null) {
+
             JSONObject object = new JSONObject();
 
             DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
 
-            List<HomeAd> list = homeAdService.getHomeAdList(detailSystem);
+            List<HomeAd> list = homeAdService.getHomeAdList(detailSystem, special != null ? special.getDataKey() : null);
 
             if (acceptData.getPlatform().equalsIgnoreCase("ios"))// IOS娴嬭瘯
             {
@@ -115,7 +127,6 @@
                 for (int i = 0; i < list.size(); i++)
                     array.add(StringUtil.outPutResultJson(list.get(i)));
                 object.put("data", array);
-
             } else {
                 for (HomeAd ad : list) {
                     if (ad.getVideo() != null) {
@@ -133,6 +144,7 @@
 
                 object.put("data", array);
             }
+            object.put("bannerSizeRate", special.getBannerSizeRate());
             out.print(JsonUtil.loadTrueJson(object.toString()));
         } else {
             classParser.getRecommendCategoryVideoBanner(acceptData, request, out);
@@ -152,12 +164,14 @@
             vtid = "309"; // 涓轰簡鍏煎浠ュ墠鐨勬帹鑽�
         }
 
+        HomeRecommendSpecial special = homeRecommendSpecialService.getSpecial(vtid);
+
         DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
         JSONObject object = new JSONObject();
 
         List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
         List<HomeType> list1 = homeTypeService.getHomeType(detailSystem.getId(), resourceList,
-                CacheUtil.getMD5Long(resourceList), -1, Long.parseLong(vtid));
+                CacheUtil.getMD5Long(resourceList), -1, special != null ? special.getDataKey() : null);
         List<HomeType> list = new ArrayList<>();
         for (HomeType ht : list1)
             list.add(ht);
@@ -188,6 +202,20 @@
                         }
                     } catch (Exception e) {
                         e.printStackTrace();
+                    }
+                }
+
+                if (VersionUtil.isGraterThan387(acceptData.getPlatform(), acceptData.getVersion())) {
+                    DetailSystemConfig adContent = configService.getConfigByKey("home_banner_ad_content", acceptData.getDetailSystem(), acceptData.getVersion());
+                    DetailSystemConfig adPosition = configService.getConfigByKey("home_banner_ad_position", acceptData.getDetailSystem(), acceptData.getVersion());
+                    if (adContent != null && adPosition != null) {
+                        HomeType.HomeTypeAd ad = new Gson().fromJson(adContent.getValue(), HomeType.HomeTypeAd.class);
+                        int adP = Integer.parseInt(adPosition.getValue());
+                        if (adP < list.size() && adP > -1) {
+                            HomeType homeType = new HomeType();
+                            homeType.setAd(ad);
+                            list.add(adP, homeType);
+                        }
                     }
                 }
             }
@@ -222,13 +250,14 @@
         JSONArray array = new JSONArray();
 
         for (HomeType ht : list) {
-            for (int i = 0; i < ht.getHomeVideoList().size(); i++) {
-                //鏀瑰彉鍥剧墖
-                if (JuheVideoUtil.isNeedDelete(ht.getHomeVideoList().get(i).getVideo(), detailSystem.getId())) {
-                    ht.getHomeVideoList().remove(i);
-                    i--;
+            if (ht.getHomeVideoList() != null)
+                for (int i = 0; i < ht.getHomeVideoList().size(); i++) {
+                    //鏀瑰彉鍥剧墖
+                    if (JuheVideoUtil.isNeedDelete(ht.getHomeVideoList().get(i).getVideo(), detailSystem.getId())) {
+                        ht.getHomeVideoList().remove(i);
+                        i--;
+                    }
                 }
-            }
         }
 
         for (int i = 0; i < list.size(); i++)
@@ -236,7 +265,6 @@
         object.put("data", array);
         out.print(JsonUtil.loadTrueJson(object.toString()));
     }
-
 
 
     public HomeType convertHomeVideoList(HomeType type) {
@@ -365,7 +393,7 @@
             }
         });
 
-        playLogger.info(VideoLogFactory.createUserVideoDetailLog(acceptData.getDevice(), loginUid, acceptData.getDetailSystem().getId(), videoId, resourceId, from));
+        userPlayLogger.info(VideoLogFactory.createUserVideoDetailLog(acceptData.getDevice(), acceptData.getUtdId(), loginUid, acceptData.getDetailSystem().getId(), videoId, resourceId, from));
 
 
         //PPTV缃戦〉鎾斁
@@ -388,6 +416,7 @@
             String playUrl = PPTVUtil.getPlayUrl(series, series.getSeries().get(p));
             data.put("videoId", videoId);
             data.put("playUrl", playUrl);
+            data.put("name", series.getName());
             data.put("pptv", true);
             out.print(JsonUtil.loadTrueJson(data.toString()));
             return;

--
Gitblit v1.8.0