From 8fee151ffae0c3818694b7318583814bf92663e2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 27 八月 2021 18:52:28 +0800
Subject: [PATCH] 聚合视频资源包调整,接入韩迷

---
 src/main/java/com/yeshi/buwan/service/imp/recommend/HomeVideoServiceImpl.java |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 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 baf34b5..deade04 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
@@ -3,15 +3,18 @@
 import com.yeshi.buwan.dao.HomeVideoDao;
 import com.yeshi.buwan.domain.HomeVideo;
 import com.yeshi.buwan.domain.VideoInfo;
+import com.yeshi.buwan.domain.solr.SolrShortVideo;
 import com.yeshi.buwan.domain.video.InternetSearchVideo;
 import com.yeshi.buwan.service.imp.VideoInfoService;
 import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
 import com.yeshi.buwan.service.inter.recommend.HomeVideoService;
 import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
+import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
 import com.yeshi.buwan.util.Constant;
 import com.yeshi.buwan.util.NumberUtil;
 import com.yeshi.buwan.util.StringUtil;
 import com.yeshi.buwan.util.factory.VideoInfoFactory;
+import com.yeshi.buwan.util.video.VideoUtil;
 import org.hibernate.Session;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -32,6 +35,9 @@
 
     @Resource
     private InternetSearchVideoService internetSearchVideoService;
+
+    @Resource
+    private SolrShortVideoDataManager solrShortVideoDataManager;
 
     @Resource
     private VideoInfoService videoInfoService;
@@ -111,12 +117,30 @@
             if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
                 continue;
             }
-            if (NumberUtil.isNumeric(hv.getVideoId())) {
+            if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_INTERNET) {
                 continue;
             }
             InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKeyCache(hv.getVideoId());
             if (internetSearchVideo != null) {
                 hv.setVideo(VideoInfoFactory.create(internetSearchVideo));
+            }
+        }
+
+        return homeVideoList;
+    }
+
+    private List<HomeVideo> betchShortVideos(List<HomeVideo> homeVideoList) {
+        for (HomeVideo hv : homeVideoList) {
+            if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) {
+                continue;
+            }
+            if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_SHORT) {
+                continue;
+            }
+
+            SolrShortVideo shortVideo = solrShortVideoDataManager.findOne(hv.getVideoId());
+            if (shortVideo != null) {
+                hv.setVideo(VideoInfoFactory.create(shortVideo));
             }
         }
 
@@ -146,7 +170,7 @@
                     rids.add("rv.`resourceid`=" + rid);
                 }
 
-            String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0  %s) OR hv.from_type>0 )  ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")");
+            String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0  %s) OR hv.from_type>0 )  ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")");
 
             sql += " GROUP BY hv.id ORDER BY hv.`orderby` DESC,hv.`createtime` DESC";
 
@@ -157,6 +181,7 @@
 
         List<VideoInfo> videoInfoList = new ArrayList<>();
         homeVideos = betchInternetVideos(homeVideos);
+        homeVideos = betchShortVideos(homeVideos);
         for (int i = 0; i < homeVideos.size(); i++) {
             if (homeVideos.get(i).getVideo() == null) {
                 homeVideos.remove(i);
@@ -186,7 +211,7 @@
                     rids.add("rv.`resourceid`=" + rid);
                 }
 
-            String sql = String.format("SELECT  count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")");
+            String sql = String.format("SELECT  count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE  hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")");
 
             return Long.parseLong(session.createSQLQuery(sql).uniqueResult() + "") + (hasBigPicture != null && hasBigPicture ? 1 : 0);
         });

--
Gitblit v1.8.0