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 |  284 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 138 insertions(+), 146 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 7a6b741..1f3fd7e 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java
@@ -2,8 +2,13 @@
 
 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.SolrAlbumDataManager;
+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;
@@ -11,12 +16,14 @@
 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.*;
@@ -26,7 +33,7 @@
     @Resource
     private SystemService systemService;
     @Resource
-    private ConfigService configService;
+    private DetailSystemConfigService configService;
     @Resource
     private UserService userService;
     @Resource
@@ -45,9 +52,10 @@
     private BanQuanService banQuanService;
     @Resource
     private VideoInfoService videoInfoService;
-
     @Resource
-    private SolrAlbumDataManager solrDataManager;
+    private SolrAlbumVideoDataManager solrDataManager;
+    @Resource
+    private ConfigParser configParser;
 
     public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
         DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
@@ -64,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", "");
@@ -85,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());
 
@@ -134,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());
@@ -157,7 +180,7 @@
         if (acceptData.getPlatform().equalsIgnoreCase("ios")) {
             if (Constant.IOSTest) {
                 if (acceptData.getVersion() == 1) {
-                    list = new ArrayList<String>();
+                    list = new ArrayList<>();
                 }
             }
         }
@@ -176,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) + "");
@@ -241,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)
@@ -311,8 +334,6 @@
 
     // 鎼滅储
     public void searchNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
-
-
         //type: 0-鍏ㄩ儴  1-
         String key = request.getParameter("Key");
         String type = request.getParameter("Type");
@@ -328,110 +349,82 @@
             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);
+        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);
 
-            List<VideoInfo> list = searchService.searchNew(detailSystem.getId(), request.getRemoteAddr(),
-                    acceptData.getUid(), key, pageIndex, Integer.parseInt(type),
-                    acceptData.getSystem(), resourceList, cacheMD5);
-            //缁勭粐鏁版嵁
-            for (VideoInfo video : list) {
-                //濡傛灉鏄鐗囷紝涓斾负5澶у垎绫� 灏遍噰鐢ㄧ珫鏉″睍绀�
-                if (video.getShowType() == 1) {
-                    video.setVideoDetailList(createSearchVideoDetailsVO(video));
-                }
+        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 (list != null) {
-                for (VideoInfo info : list) {
-                    cacheMD5 += info.getId() + "#";
-                }
-            }
-            list = banQuanService.getBanQuanVideo(list, detailSystem.getId(), cacheMD5);
-
-            JSONObject object = new JSONObject();
-            object.put("count", Constant.isUpdate ? 19 + "" : list.size());
-            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()));
         }
+        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()));
+
     }
 
 
@@ -442,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,
@@ -452,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) {
@@ -624,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,
@@ -663,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,
@@ -672,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) {
@@ -706,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)) {
@@ -738,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()));
+        }
     }
 
     /**
@@ -812,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()));
+        }
     }
 
     /**
@@ -837,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;
@@ -847,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))
@@ -911,7 +904,7 @@
         }
 
         if (!verifyCode.equalsIgnoreCase(request.getSession().getAttribute(email) + "")) {
-            out.print(JsonUtil.loadTrueJson("楠岃瘉鐮侀敊璇�"));
+            out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�"));
             return;
         }
 
@@ -957,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