From f7b2baec57a19039ca85880bbba4e17fe27f0511 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 10 三月 2021 18:21:13 +0800
Subject: [PATCH] 删除冗余代码,初步优化首页的推荐专题,3.8.7之后在我的里面添加VIP分类

---
 src/main/java/com/yeshi/buwan/controller/parser/UserParser.java |  256 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 191 insertions(+), 65 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..1f3fd7e 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
@@ -1,33 +1,39 @@
 package com.yeshi.buwan.controller.parser;
 
 import com.yeshi.buwan.domain.*;
+import com.yeshi.buwan.domain.Collection;
+import com.yeshi.buwan.domain.system.DetailSystem;
+import com.yeshi.buwan.domain.user.LoginUser;
+import com.yeshi.buwan.dto.user.LoginInfoDto;
+import com.yeshi.buwan.exception.user.LoginUserException;
+import com.yeshi.buwan.exception.user.RegisterUserException;
 import com.yeshi.buwan.service.imp.*;
-import com.yeshi.buwan.service.manager.SolrDataManager;
+import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager;
 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 {
     @Resource
     private SystemService systemService;
     @Resource
-    private ConfigService configService;
+    private DetailSystemConfigService configService;
     @Resource
     private UserService userService;
     @Resource
@@ -46,9 +52,10 @@
     private BanQuanService banQuanService;
     @Resource
     private VideoInfoService videoInfoService;
-
     @Resource
-    private SolrDataManager solrDataManager;
+    private SolrAlbumVideoDataManager solrDataManager;
+    @Resource
+    private ConfigParser configParser;
 
     public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
         DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
@@ -65,7 +72,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 +93,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 +122,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 +149,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 +180,7 @@
         if (acceptData.getPlatform().equalsIgnoreCase("ios")) {
             if (Constant.IOSTest) {
                 if (acceptData.getVersion() == 1) {
-                    list = new ArrayList<String>();
+                    list = new ArrayList<>();
                 }
             }
         }
@@ -167,7 +199,7 @@
     private List<VideoDetailInfo> createSearchVideoDetailsVO(VideoInfo video) {
         List<VideoDetailInfo> detailList = new ArrayList<>();
         if (video.getVideoType() != null && (Integer.parseInt(video.getVideoType().getId() + "") == VideoCategoryConstant.CATEGORY_DIANSHIJU || Integer.parseInt(video.getVideoType().getId() + "") == VideoCategoryConstant.CATEGORY_DONGMAN)) {
-            if (video.getVideocount() <= 5) {
+            if (video.getVideocount()!=null&& video.getVideocount() <= 5) {
                 for (int i = 0; i < video.getVideocount(); i++) {
                     VideoDetailInfo detail = new VideoDetailInfo();
                     detail.setTag((i + 1) + "");
@@ -232,7 +264,7 @@
             object.put("data", array);
             out.print(JsonUtil.loadTrueJson(object.toString()));
         } else {
-            List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion());
+            List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion());
             String cacheMD5 = "0";
             if (resourceList != null && resourceList.size() > 0)
                 for (Long l : resourceList)
@@ -243,18 +275,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 +323,110 @@
                 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;
+        }
+
+        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), 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(acceptData.getDetailSystem().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(), acceptData.getDetailSystem().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), acceptData.getDetailSystem().getId())) {
+                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) {
@@ -308,7 +435,7 @@
 
         DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
 
-        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion());
+        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
         List<VideoInfo> list1 = StringUtil.isNullOrEmpty(videoId)
                 ? recommendService.guessLikeList(ds.getId(), 4, resourceList, CacheUtil.getMD5Long(resourceList))
                 : recommendService.guessLikeList(ds.getId(), 4, videoId, resourceList,
@@ -318,7 +445,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) {
@@ -490,7 +617,7 @@
             return;
         }
 
-        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion());
+        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
 
         DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
         List<VideoInfo> list = recommendService.getRelativeVideoList(ds.getId(), 4, videoId, resourceList,
@@ -529,7 +656,7 @@
             return;
         }
 
-        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion());
+        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
 
         DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
         List<VideoInfo> list1 = recommendService.peopleSee(ds.getId(), 4, videoId, resourceList,
@@ -538,7 +665,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 +699,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)) {
@@ -604,24 +732,22 @@
         if (StringUtil.isNullOrEmpty(nickName))
             nickName = "鏃犲悕姘�";
 
-        DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
-        // 娉ㄥ唽 --鐢ㄦ埛鍚�,鏄电О,瀵嗙爜
-        LoginUser user = new LoginUser();
-        user.setCreatetime(System.currentTimeMillis() + "");
-        user.setDetailsystem(ds.getId());
-        user.setDevice(acceptData.getDevice());
-        user.setLoginType(3);
-        user.setName(nickName);
-        user.setOpenid(account);
-        user.setPwd(StringUtil.Md5(pwd));
-        user.setPortrait(savePortrait(request));
-        user.setIpinfo(ip + ":" + port);
 
-        String result = userService.registerByEmail(user);
-        if (result.contains("鎴愬姛"))
+        LoginInfoDto loginInfoDto = new LoginInfoDto();
+        loginInfoDto.setEmail(account);
+        loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId());
+        loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_EMAIL);
+        loginInfoDto.setPwd(StringUtil.Md5(pwd));
+        loginInfoDto.setIpInfo(ip + ":" + port);
+        loginInfoDto.setNickName(nickName);
+
+
+        try {
+            userService.register(loginInfoDto);
             out.print(JsonUtil.loadTrueJson("娉ㄥ唽鎴愬姛"));
-        else
-            out.print(JsonUtil.loadFalseJson(result));
+        } catch (RegisterUserException e) {
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+        }
     }
 
     /**
@@ -678,17 +804,17 @@
         // systemService.getDetailSystemByPackage(packageName);
         // 娉ㄥ唽 --鐢ㄦ埛鍚�,鏄电О,瀵嗙爜
 
-        LoginUser user = new LoginUser();
-        user.setDevice(acceptData.getDevice());
-        user.setLoginType(3);
-        user.setOpenid(account);
-        user.setPwd(StringUtil.Md5(pwd));
-        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("鐧诲綍澶辫触"));
-        else
+        LoginInfoDto loginInfoDto = new LoginInfoDto();
+        loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_EMAIL);
+        loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId());
+        loginInfoDto.setEmail(account);
+        loginInfoDto.setPwd(StringUtil.Md5(pwd));
+        try {
+            LoginUser user = userService.login(loginInfoDto);
             out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(user)));
+        } catch (LoginUserException e) {
+            out.print(JsonUtil.loadFalseJson(e.getMessage()));
+        }
     }
 
     /**
@@ -703,6 +829,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 +840,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 +904,7 @@
         }
 
         if (!verifyCode.equalsIgnoreCase(request.getSession().getAttribute(email) + "")) {
-            out.print(JsonUtil.loadTrueJson("楠岃瘉鐮侀敊璇�"));
+            out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�"));
             return;
         }
 
@@ -823,16 +950,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