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