From cad915058c3c53bf328a8ae9ca9bc7de099caba7 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 06 二月 2021 15:27:49 +0800
Subject: [PATCH] 接口bug修改

---
 src/main/java/com/yeshi/buwan/controller/parser/UserParser.java |  221 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 186 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
index 90e6900..26574da 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
@@ -1,26 +1,28 @@
 package com.yeshi.buwan.controller.parser;
 
 import com.yeshi.buwan.domain.*;
+import com.yeshi.buwan.domain.Collection;
+import com.yeshi.buwan.domain.user.LoginUser;
 import com.yeshi.buwan.service.imp.*;
-import com.yeshi.buwan.service.manager.SolrDataManager;
+import com.yeshi.buwan.service.manager.SolrAlbumDataManager;
 import com.yeshi.buwan.util.*;
 import com.yeshi.buwan.util.JuHe.VideoResourceUtil;
 import com.yeshi.buwan.util.annotation.RequireUid;
 import com.yeshi.buwan.util.email.MailSenderUtil;
 import com.yeshi.buwan.util.video.VideoCategoryConstant;
+import com.yeshi.buwan.util.video.VideoConstant;
 import com.yeshi.buwan.vo.AcceptData;
+import com.yeshi.buwan.vo.video.VideoListResultVO;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.springframework.stereotype.Controller;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 import java.io.File;
 import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 @Controller
 public class UserParser {
@@ -46,9 +48,10 @@
     private BanQuanService banQuanService;
     @Resource
     private VideoInfoService videoInfoService;
-
     @Resource
-    private SolrDataManager solrDataManager;
+    private SolrAlbumDataManager solrDataManager;
+    @Resource
+    private ConfigParser configParser;
 
     public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
         DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
@@ -65,7 +68,7 @@
             object.put("Uid", uid);
             object.put("Portrait", userInfo.getPortrait());
             object.put("Nickname", userInfo.getNickname());
-            object.put("TopIcon", map.get("top_icon"));
+
             object.put("ZiXun", map.get("zixun_url"));
             if (acceptData.getPlatform().equalsIgnoreCase("ios") && !"涓浗".equalsIgnoreCase(userInfo.getCountry()))// 姝e湪瀹℃牳鐨勭増鏈�
                 object.put("CommentUrl", "");
@@ -86,7 +89,14 @@
             object.put("WXShareIcon", map.get("wx_share_icon"));
             object.put("WXShareUrl", map.get("wx_share_url"));
             object.put("WXShareContent", map.get("wx_share_content"));
-            object.put("TuiGuang", map.get("taobao_tuiguang"));
+
+            if ("qq".equalsIgnoreCase(acceptData.getChannel())) {
+                object.put("TopIcon", "");
+                object.put("TuiGuang", "");
+            } else {
+                object.put("TuiGuang", map.get("taobao_tuiguang"));
+                object.put("TopIcon", map.get("top_icon"));
+            }
             object.put("SOHU_partner", detailSystem.getSohuPartner());
             object.put("SOHU_key", detailSystem.getSohuKey());
 
@@ -108,12 +118,22 @@
             object.put("shopurl", map.get("shopurl"));
             object.put("copyplate", map.get("copy_plate"));
 
-            // 鏄惁骞垮憡鐐瑰嚮涓嬭浇
-            if ("huawei".equalsIgnoreCase(acceptData.getChannel())
-                    && acceptData.getVersion() >= Integer.parseInt(map.get("ad_click_download_version"))) {
+            //寮�鍏宠缃�
+            String channel = acceptData.getChannel().toLowerCase();
+            String adOpenSettings = map.get("ad_other_open_settings");
+            JSONObject adOpenSettingsJson = JSONObject.fromObject(adOpenSettings);
+
+            if (!adOpenSettingsJson.keySet().contains(channel.toLowerCase())) {
+                channel = "qq";
+            }
+
+            int closeVersion = adOpenSettingsJson.optInt(channel);
+            if (acceptData.getVersion() >= closeVersion) {
                 object.put("adClickDownload", true);
-            } else
+            } else {
                 object.put("adClickDownload", false);
+            }
+
 
             // 骞垮憡绫诲瀷
             object.put("adType", map.get("ad_type"));
@@ -125,7 +145,15 @@
                 fullVideoVersion = json.optInt(acceptData.getChannel().toLowerCase(), 0);
             }
 
-            if (acceptData.getVersion() >= fullVideoVersion) {// 鏄惁灞忚斀璇︽儏椤靛叏灞忓箍鍛�
+
+            ConfigParser.ADConfig adConfig = configParser.getAdShowType("ad_video_detail_full_video", acceptData.getChannel(), acceptData.getVersion(), map);
+            String type = adConfig == null ? "" : adConfig.getType();
+
+            if (!StringUtil.isNullOrEmpty(type)) {// 鏄惁灞忚斀璇︽儏椤靛叏灞忓箍鍛�
+                JSONObject adType = JSONObject.fromObject(map.get("ad_type"));
+                adType.put("videoDetailSplashAd", true);
+                object.put("adType", adType.toString());
+            } else {
                 JSONObject adType = JSONObject.fromObject(map.get("ad_type"));
                 adType.put("videoDetailSplashAd", false);
                 object.put("adType", adType.toString());
@@ -148,7 +176,7 @@
         if (acceptData.getPlatform().equalsIgnoreCase("ios")) {
             if (Constant.IOSTest) {
                 if (acceptData.getVersion() == 1) {
-                    list = new ArrayList<String>();
+                    list = new ArrayList<>();
                 }
             }
         }
@@ -243,18 +271,12 @@
                     acceptData.getUid(), key, pageIndex, (StringUtil.isNullOrEmpty(contentType) ? 0 : Integer.parseInt(contentType)),
                     acceptData.getSystem(), resourceList, cacheMD5);
             //缁勭粐鏁版嵁
-            Set<Integer> albumCategorys = VideoCategoryConstant.getAlbumCategorys();
             for (VideoInfo video : list) {
                 //濡傛灉鏄鐗囷紝涓斾负5澶у垎绫� 灏遍噰鐢ㄧ珫鏉″睍绀�
-                /**
-                 * 鏄笓杈戯紝骞朵笖涓烘鐗�
-                 */
-                //video.getVideoType() != null && albumCategorys.contains(Integer.parseInt(video.getVideoType().getId() + "")) &&
-                if (video.getContentType() == 0) {
+                if (video.getShowType() == 1) {
                     video.setVideoDetailList(createSearchVideoDetailsVO(video));
-                    video.setShowType(1);
-                } else
-                    video.setShowType(0);
+
+                }
             }
             cacheMD5 = "0";
             if (list != null) {
@@ -297,9 +319,137 @@
                 array.add(StringUtil.outPutResultJson(list.get(i)));
             }
             object.put("data", array);
+            if (pageIndex == 1) {//杩斿洖瀵艰埅鏍�
+
+            }
+
             out.print(JsonUtil.loadTrueJson(object.toString()));
         }
     }
+
+
+    // 鎼滅储
+    public void searchNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        //type: 0-鍏ㄩ儴  1-
+        String key = request.getParameter("Key");
+        String type = request.getParameter("Type");
+        String page = request.getParameter("Page");
+
+        if (StringUtil.isNullOrEmpty(key)) {
+            out.print(JsonUtil.loadFalseJson("璇蜂笂浼燢ey"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(type)) {
+            out.print(JsonUtil.loadFalseJson("璇蜂笂浼燭ype"));
+            return;
+        }
+
+        int pageIndex = StringUtil.getPage(page);
+        if (pageIndex <= 0) {
+            pageIndex = 1;
+        }
+
+        DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
+        UserInfo user1 = userService.getUserInfo(acceptData.getUid());
+        if (Utils.isTest(request, user1, detailSystem.getId())) {
+            detailSystem = systemService.getDetailSystemById(40 + "");
+            JSONObject object = new JSONObject();
+            object.put("count", 0);
+            JSONArray array = new JSONArray();
+            object.put("data", array);
+            out.print(JsonUtil.loadTrueJson(object.toString()));
+        } else {
+            List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion());
+            String cacheMD5 = "0";
+            if (resourceList != null && resourceList.size() > 0)
+                for (Long l : resourceList)
+                    cacheMD5 += "#" + l;
+            cacheMD5 = StringUtil.Md5(cacheMD5);
+
+            VideoListResultVO videoListResultVO = searchService.searchNew(detailSystem.getId(), request.getRemoteAddr(),
+                    acceptData.getUid(), key, pageIndex, Integer.parseInt(type),
+                    acceptData.getSystem(), resourceList, cacheMD5);
+            //缁勭粐鏁版嵁
+            for (VideoInfo video : videoListResultVO.getVideoList()) {
+                //濡傛灉鏄鐗囷紝涓斾负5澶у垎绫� 灏遍噰鐢ㄧ珫鏉″睍绀�
+                if (video.getShowType() == 1) {
+                    video.setVideoDetailList(createSearchVideoDetailsVO(video));
+                }
+            }
+            cacheMD5 = "0";
+            if (videoListResultVO.getVideoList() != null) {
+                for (VideoInfo info : videoListResultVO.getVideoList()) {
+                    cacheMD5 += info.getId() + "#";
+                }
+            }
+            List<VideoInfo> list = banQuanService.getBanQuanVideo(videoListResultVO.getVideoList(), detailSystem.getId(), cacheMD5);
+
+            JSONObject object = new JSONObject();
+            object.put("count", Constant.isUpdate ? 19 + "" : videoListResultVO.getCount());
+            JSONArray array = new JSONArray();
+            for (int i = 0; i < list.size(); i++) {
+                if (JuheVideoUtil.isNeedDelete((VideoInfo) list.get(i), detailSystem.getId())) {
+                    list.remove(i);
+                    i--;
+                }
+            }
+
+            List<String> keyList = banQuanService.getBanQuanKeyListAll(Integer.parseInt(detailSystem.getId()));
+            for (int i = 0; i < list.size(); i++) {
+
+                boolean delete = false;
+                for (int j = 0; j < keyList.size(); j++) {
+                    if (list.get(i).getName().contains(keyList.get(j))) {
+                        delete = true;
+                        break;
+                    }
+                }
+                if (delete) {
+                    list.remove(i);
+                    i--;
+                }
+
+            }
+
+            for (int i = 0; i < list.size(); i++) {
+                ((VideoInfo) list.get(i))
+                        .setPicture(VideoPictureUtil.getShowPicture((VideoInfo) list.get(i), acceptData.getPlatform(), acceptData.getVersion() + ""));
+                array.add(StringUtil.outPutResultJson(list.get(i)));
+            }
+            object.put("data", array);
+            if (pageIndex == 1) {//杩斿洖瀵艰埅鏍�
+                List<VideoType> typeList = new ArrayList<>();
+                VideoType vt = new VideoType();
+                vt.setId(0);
+                vt.setName("鍏ㄩ儴");
+                typeList.add(vt);
+                Set<Long> set = new HashSet<>();
+                for (VideoInfo videoInfo : list) {
+                    if (videoInfo.getShowType() == 1 && videoInfo.getVideoType() != null)
+                        set.add(videoInfo.getVideoType().getId());
+                }
+
+                for (Iterator<Long> its = set.iterator(); its.hasNext(); ) {
+                    Long typeId = its.next();
+                    String typeName = VideoConstant.getMainCategoryName(typeId);
+                    if (!StringUtil.isNullOrEmpty(typeName)) {
+                        vt = new VideoType();
+                        vt.setId(typeId);
+                        vt.setName(typeName);
+                        typeList.add(vt);
+                    }
+                }
+                JSONArray array1 = new JSONArray();
+                for (VideoType vt1 : typeList)
+                    array1.add(StringUtil.outPutResultJson(vt1));
+                object.put("typeList", array1);
+            }
+
+            out.print(JsonUtil.loadTrueJson(object.toString()));
+        }
+    }
+
 
     // 鐚滀綘鍠滄
     public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
@@ -318,7 +468,7 @@
             list1 = videoInfoService.simpleRandomVideoList(4);
         }
 
-        List<VideoInfo> list = new ArrayList<VideoInfo>();
+        List<VideoInfo> list = new ArrayList<>();
         list.addAll(list1);
 
         if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) {
@@ -538,7 +688,7 @@
             list1 = videoInfoService.simpleRandomVideoList(4);
         }
 
-        List<VideoInfo> list = new ArrayList<VideoInfo>();
+        List<VideoInfo> list = new ArrayList<>();
         list.addAll(list1);
 
         if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) {
@@ -572,6 +722,7 @@
         String pwd = request.getParameter("Pwd");// 瀵嗙爜
         String nickName = request.getParameter("NickName");// 鏄电О
         String code = request.getParameter("VerifyCode");// 楠岃瘉鐮�
+        String portrait = request.getParameter("Portrait");// 楠岃瘉鐮�
 
 
         if (StringUtil.isNullOrEmpty(account)) {
@@ -614,7 +765,7 @@
         user.setName(nickName);
         user.setOpenid(account);
         user.setPwd(StringUtil.Md5(pwd));
-        user.setPortrait(savePortrait(request));
+        user.setPortrait(savePortrait(portrait, request.getSession()));
         user.setIpinfo(ip + ":" + port);
 
         String result = userService.registerByEmail(user);
@@ -686,7 +837,7 @@
         user.setPortrait("http://buwan-1255749512.file.myqcloud.com/resource/ic_portrait_default.png");
         user = userService.loginByEmail(user);
         if (user == null || user.getState() != LoginUser.STATE_NORMAL)
-            out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触"));
+            out.print(JsonUtil.loadFalseJson("璐﹀彿鎴栧瘑鐮侀敊璇�"));
         else
             out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(user)));
     }
@@ -703,6 +854,7 @@
         String birthDay = request.getParameter("BirthDay");// 鐢熸棩
         String personalSign = request.getParameter("PersonalSign");// 涓�х鍚�
         String loginUid = request.getParameter("LoginUid");// 涓�х鍚�
+        String portrait = request.getParameter("Portrait");
         if (StringUtil.isNullOrEmpty(loginUid)) {
             out.print(JsonUtil.loadFalseJson("璇蜂笂浼燣oginUid"));
             return;
@@ -713,7 +865,7 @@
         if (user != null) {
             if (!StringUtil.isNullOrEmpty(nickName))
                 user.setName(nickName);
-            String potrait = savePortrait(request);
+            String potrait = savePortrait(portrait, request.getSession());
             if (!StringUtil.isNullOrEmpty(potrait))
                 user.setPortrait(potrait);
             if (!StringUtil.isNullOrEmpty(sex))
@@ -777,7 +929,7 @@
         }
 
         if (!verifyCode.equalsIgnoreCase(request.getSession().getAttribute(email) + "")) {
-            out.print(JsonUtil.loadTrueJson("楠岃瘉鐮侀敊璇�"));
+            out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�"));
             return;
         }
 
@@ -823,16 +975,15 @@
 
     }
 
-    private String savePortrait(HttpServletRequest request) {
-        String base64 = request.getParameter("Portrait");
+    public static String savePortrait(String base64, HttpSession session) {
         if (StringUtil.isNullOrEmpty(base64))
             return "";
 
         String fileName = "portrait_" + System.currentTimeMillis() + ".jpg";
         // 瀹氫箟涓婁紶璺緞
-        String path = request.getSession().getServletContext().getRealPath("upload") + "/" + fileName;
-        if (!new File(request.getSession().getServletContext().getRealPath("upload") + "/").exists())
-            new File(request.getSession().getServletContext().getRealPath("upload") + "/").mkdirs();
+        String path = session.getServletContext().getRealPath("upload") + "/" + fileName;
+        if (!new File(session.getServletContext().getRealPath("upload") + "/").exists())
+            new File(session.getServletContext().getRealPath("upload") + "/").mkdirs();
         boolean isS = StringUtil.generateImageFromBase64(base64, path);
         if (!isS)
             return "";

--
Gitblit v1.8.0