From b41a6efe17ba61d150c5a9b7309651cebae54e0d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 03 九月 2021 16:40:43 +0800
Subject: [PATCH] 韩迷TV相关bug修改,电视直播完善(后台+前端API)

---
 src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java
index deade04..9d60758 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java
@@ -112,8 +112,9 @@
     }
 
 
-    private List<HomeVideo> betchInternetVideos(List<HomeVideo> homeVideoList) {
-        for (HomeVideo hv : homeVideoList) {
+    private List<HomeVideo> betchInternetVideos(List<HomeVideo> homeVideoList, List<Long> resourceIds) {
+        for (int i = 0; i < homeVideoList.size(); i++) {
+            HomeVideo hv = homeVideoList.get(i);
             if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
                 continue;
             }
@@ -122,15 +123,28 @@
             }
             InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKeyCache(hv.getVideoId());
             if (internetSearchVideo != null) {
-                hv.setVideo(VideoInfoFactory.create(internetSearchVideo));
+                String[] rids = internetSearchVideo.getResourceIds().split(",");
+                List<Long> ridList = new ArrayList<>();
+                for (String rid : rids) {
+                    ridList.add(Long.parseLong(rid));
+                }
+                ridList.retainAll(resourceIds);
+                if (ridList.size() > 0)
+                    hv.setVideo(VideoInfoFactory.create(internetSearchVideo));
+                else {
+                    homeVideoList.remove(i);
+                    i--;
+                }
             }
+
         }
 
         return homeVideoList;
     }
 
-    private List<HomeVideo> betchShortVideos(List<HomeVideo> homeVideoList) {
-        for (HomeVideo hv : homeVideoList) {
+    private List<HomeVideo> betchShortVideos(List<HomeVideo> homeVideoList, List<Long> resourceIds) {
+        for (int i = 0; i < homeVideoList.size(); i++) {
+            HomeVideo hv = homeVideoList.get(i);
             if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
                 continue;
             }
@@ -140,7 +154,13 @@
 
             SolrShortVideo shortVideo = solrShortVideoDataManager.findOne(hv.getVideoId());
             if (shortVideo != null) {
-                hv.setVideo(VideoInfoFactory.create(shortVideo));
+                Long rid = Long.parseLong(shortVideo.getResourceId() + "");
+                if (resourceIds.contains(rid)) {
+                    hv.setVideo(VideoInfoFactory.create(shortVideo));
+                } else {
+                    homeVideoList.remove(i);
+                    i--;
+                }
             }
         }
 
@@ -180,8 +200,8 @@
         });
 
         List<VideoInfo> videoInfoList = new ArrayList<>();
-        homeVideos = betchInternetVideos(homeVideos);
-        homeVideos = betchShortVideos(homeVideos);
+        homeVideos = betchInternetVideos(homeVideos, resourceIds);
+        homeVideos = betchShortVideos(homeVideos, resourceIds);
         for (int i = 0; i < homeVideos.size(); i++) {
             if (homeVideos.get(i).getVideo() == null) {
                 homeVideos.remove(i);
@@ -197,7 +217,7 @@
             }
         }
         videoInfoExtraService.batchExtra(videoInfoList, resourceIds);
-        return betchInternetVideos(homeVideos);
+        return betchInternetVideos(homeVideos, resourceIds);
     }
 
     @Override

--
Gitblit v1.8.0