From 04f09e52ffd4681bdfd85e51acd3da0d1280c3d3 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 16 四月 2022 16:07:10 +0800
Subject: [PATCH] bug修复

---
 src/main/java/com/yeshi/buwan/controller/parser/UserVideoParser.java |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 158 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/parser/UserVideoParser.java b/src/main/java/com/yeshi/buwan/controller/parser/UserVideoParser.java
index fb80b87..6b4463a 100644
--- a/src/main/java/com/yeshi/buwan/controller/parser/UserVideoParser.java
+++ b/src/main/java/com/yeshi/buwan/controller/parser/UserVideoParser.java
@@ -1,12 +1,21 @@
 package com.yeshi.buwan.controller.parser;
 
+import com.ks.lib.common.exception.ParamsException;
 import com.yeshi.buwan.domain.VideoInfo;
+import com.yeshi.buwan.domain.uservideo.CollectionVideoV2;
+import com.yeshi.buwan.domain.video.InternetSearchVideo;
 import com.yeshi.buwan.domain.video.VideoWatchHistory;
+import com.yeshi.buwan.service.imp.AttentionService;
+import com.yeshi.buwan.service.imp.CollectionService;
 import com.yeshi.buwan.service.imp.VideoService;
+import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
+import com.yeshi.buwan.service.inter.uservideo.CollectionVideoV2Service;
 import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService;
 import com.yeshi.buwan.util.Constant;
 import com.yeshi.buwan.util.JsonUtil;
+import com.yeshi.buwan.util.NumberUtil;
 import com.yeshi.buwan.util.StringUtil;
+import com.yeshi.buwan.util.factory.VideoInfoFactory;
 import com.yeshi.buwan.vo.AcceptData;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -15,10 +24,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Component
 public class UserVideoParser {
@@ -28,6 +34,19 @@
 
     @Resource
     private VideoService videoService;
+
+    @Resource
+    private CollectionService collectionService;
+
+    @Resource
+    private AttentionService attentionService;
+
+    @Resource
+    private CollectionVideoV2Service collectionVideoV2Service;
+
+    @Resource
+    private InternetSearchVideoService internetSearchVideoService;
+
 
     public void getWatchHistory(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
 
@@ -49,6 +68,16 @@
                 if (vi != null)
                     videoInfoMap.put(vi.getId(), vi);
             }
+        for (int i = 0; i < list.size(); i++) {
+            VideoWatchHistory wh = list.get(i);
+            if (videoInfoMap.get(list.get(i).getVideoId()) == null) {
+                list.remove(i--);
+                videoWatchHistoryService.delete(Arrays.asList(new String[]{wh.getId()}));
+            } else {
+                wh.setVideo(videoInfoMap.get(wh.getVideoId()));
+            }
+        }
+
         for (VideoWatchHistory wh : list) {
             wh.setVideo(videoInfoMap.get(wh.getVideoId()));
         }
@@ -73,4 +102,129 @@
         out.print(JsonUtil.loadTrueJson(""));
     }
 
+
+    /**
+     * 鑾峰彇鐢ㄦ埛瑙嗛鏁版嵁鏁伴噺淇℃伅
+     *
+     * @param acceptData
+     * @param request
+     * @param out
+     */
+    public void getUserVideoDataCount(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+
+        String loginUid = request.getParameter("LoginUid");
+        if (StringUtil.isNullOrEmpty(loginUid)) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        long collectionCount = collectionService.getCollectVideoCount(acceptData.getUid());
+        long collectionCountNew = collectionVideoV2Service.countByUid(loginUid);
+        long attentionCount = attentionService.getAttentionCountByLoginUid(Long.parseLong(loginUid));
+        JSONObject data = new JSONObject();
+        data.put("collectionCount", collectionCount == 0 ? collectionCountNew : collectionCount);
+        data.put("attentionCount", attentionCount);
+        out.print(JsonUtil.loadTrueJson(data.toString()));
+    }
+
+    public void collectVideo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+
+        String loginUid = request.getParameter("LoginUid");
+        String videoId = request.getParameter("VideoId");
+        if (StringUtil.isNullOrEmpty(loginUid)) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+        CollectionVideoV2 v2 = new CollectionVideoV2();
+        v2.setVideoId(videoId);
+        v2.setLoginUid(loginUid);
+        try {
+            collectionVideoV2Service.add(v2);
+        } catch (ParamsException e) {
+            if (e.getCode() == ParamsException.CODE_EXIST) {
+                out.print(JsonUtil.loadFalseJson("宸叉敹钘�"));
+                return;
+            }
+            out.print(JsonUtil.loadFalseJson("鏀惰棌鍑洪敊"));
+            return;
+        }
+
+        JSONObject data = new JSONObject();
+
+        out.print(JsonUtil.loadTrueJson(data.toString()));
+    }
+
+    public void cancelCollectVideo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        String loginUid = request.getParameter("LoginUid");
+        String videoIds = request.getParameter("VideoId");
+        if (StringUtil.isNullOrEmpty(loginUid)) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(videoIds)) {
+            out.print(JsonUtil.loadFalseJson("鏈笂浼犺棰慖D"));
+            return;
+        }
+
+        String[] videoIdArray = videoIds.split(",");
+
+        List<String> ids = new ArrayList<>();
+        for (String id : videoIdArray) {
+            ids.add(CollectionVideoV2.createId(loginUid, id));
+        }
+        collectionVideoV2Service.delete(ids);
+        JSONObject data = new JSONObject();
+        out.print(JsonUtil.loadTrueJson(data.toString()));
+    }
+
+
+    public void getCollectVideoList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
+        String loginUid = request.getParameter("LoginUid");
+        String page = request.getParameter("Page");
+        if (StringUtil.isNullOrEmpty(loginUid)) {
+            out.print(JsonUtil.loadFalseJson("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        long count = collectionVideoV2Service.countByUid(loginUid);
+        List<CollectionVideoV2> list = collectionVideoV2Service.listByUid(loginUid, Integer.parseInt(page), Constant.pageCount);
+        //鑾峰彇瑙嗛璇︽儏
+        List<String> localIds = new ArrayList<>();
+        List<String> internetIds = new ArrayList<>();
+        Map<String, Integer> pmap = new HashMap<>();
+        for (int i = 0; i < list.size(); i++) {
+            pmap.put(list.get(i).getVideoId(), i);
+            if (NumberUtil.isNumeric(list.get(i).getVideoId())) {
+                localIds.add(list.get(i).getVideoId());
+            } else {
+                internetIds.add(list.get(i).getVideoId());
+            }
+        }
+
+        VideoInfo[] videoInfos = new VideoInfo[list.size()];
+        //濉厖鏈湴瑙嗛
+        List<VideoInfo> localVideoInfoList = videoService.getVideoInfoList(localIds);
+        if (localVideoInfoList != null) {
+            for (VideoInfo video : localVideoInfoList) {
+                videoInfos[pmap.get(video.getId())] = video;
+            }
+        }
+        //濉厖鍏ㄧ綉鎼滆棰�
+        List<InternetSearchVideo> internetSearchVideoList = internetSearchVideoService.listByIds(internetIds);
+        for (InternetSearchVideo video : internetSearchVideoList) {
+            videoInfos[pmap.get(video.getId())] = VideoInfoFactory.create(video);
+        }
+        JSONObject data = new JSONObject();
+        data.put("count", count + "");
+        JSONArray array = new JSONArray();
+        for (int i = 0; i < videoInfos.length; i++) {
+            videoInfos[i].setIntroduction("");
+            array.add(StringUtil.outPutResultJson(videoInfos[i]));
+        }
+        data.put("data", array);
+        out.print(JsonUtil.loadTrueJson(data.toString()));
+    }
+
+
 }

--
Gitblit v1.8.0