From f788607ff771a47bc60d6a86e00b3433c40f3d2c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 24 九月 2021 15:22:03 +0800 Subject: [PATCH] 接入视频直播 --- src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java | 80 ++++++++++++++++++++++++++++++++------- 1 files changed, 65 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java index d494704..717c7ee 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java +++ b/src/main/java/com/yeshi/buwan/service/imp/juhe/FunTV2ServiceImpl.java @@ -6,25 +6,24 @@ import com.yeshi.buwan.dao.juhe.funtv.FunTVVideo2Dao; import com.yeshi.buwan.dao.juhe.funtv.VideoFunTV2Dao; import com.yeshi.buwan.dao.video.AlbumVideoMapDao; -import com.yeshi.buwan.domain.ResourceVideo; import com.yeshi.buwan.domain.VideoDetailInfo; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.VideoResource; import com.yeshi.buwan.domain.entity.PlayUrl; +import com.yeshi.buwan.domain.system.DetailSystemConfig; import com.yeshi.buwan.domain.video.AlbumVideoMap; -import com.yeshi.buwan.funtv.FunTVUtil2; -import com.yeshi.buwan.funtv.entity.FunTVAlbum2; -import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; -import com.yeshi.buwan.funtv.entity.FunTVVideo2; -import com.yeshi.buwan.funtv.entity.VideoFunTV2; -import com.yeshi.buwan.service.imp.CategoryVideoService; -import com.yeshi.buwan.service.imp.ResourceVideoService; -import com.yeshi.buwan.service.imp.VideoInfoService; -import com.yeshi.buwan.service.imp.VideoResourceService; +import com.yeshi.buwan.videos.funtv.FunTVUtil2; +import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; +import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2; +import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; +import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2; +import com.yeshi.buwan.service.imp.*; import com.yeshi.buwan.service.inter.juhe.FunTV2Service; +import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.mq.CMQManager; import com.yeshi.buwan.util.video.VideoConstant; import com.yeshi.buwan.vo.AcceptData; +import net.sf.json.JSONObject; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -64,6 +63,9 @@ @Resource private VideoResourceService videoResourceService; + + @Resource + private DetailSystemConfigService detailSystemConfigService; @Override @@ -107,7 +109,7 @@ } } else {//瑙嗛涓嶅瓨鍦� //鍒ゆ柇2涓棰戝疄浣撴槸鍚︿负鍚屼竴瑙嗛 - VideoInfo oldVideo = videoInfoService.getExistSameVideo(newVideoInfo); + VideoInfo oldVideo = videoInfoService.getExistSameVideoWithTime(newVideoInfo); if (oldVideo == null) { //娣诲姞瑙嗛 Serializable id = videoInfoDao.save(newVideoInfo); @@ -127,6 +129,7 @@ //鍔犲叆涓撹緫瑙嗛鏄犲皠 AlbumVideoMap map = new AlbumVideoMap(); + map.setId(newVideoInfo.getId()); map.setCreateTime(new Date()); map.setVideoId(newVideoInfo.getId()); map.setRootVideoType(newVideoInfo.getVideoType().getId()); @@ -216,18 +219,65 @@ return 1; } + private int getPlayType(AcceptData acceptData, FunTVVideo2 video2) { + //濡傛灉鏄鍦ㄤ笂绾跨殑鐗堟湰灏辩敤SDK鎾斁锛屽惁鍒欓噰鐢℉5 + + DetailSystemConfig config = detailSystemConfigService.getConfigByKey("funshion_sdk_player", acceptData.getDetailSystem(), acceptData.getVersion()); + //榛樿SDK鎾斁 + if (config == null) + return FunTVUtil2.PLAY_SDK; + + String channel = acceptData.getChannel(); + if (StringUtil.isNullOrEmpty(channel)) { + channel = "qq"; + } + channel = channel.toLowerCase().trim(); + JSONObject data = JSONObject.fromObject(config.getValue()); + JSONObject channelJSON = data.optJSONObject(channel); + //娓犻亾涓嶅瓨鍦ㄥ氨褰撳仛QQ娓犻亾鍋氬鐞� + if (channelJSON == null) + channelJSON = data.optJSONObject("qq"); + if (channelJSON == null) + return FunTVUtil2.PLAY_SDK; + + + int version = channelJSON.optInt("version"); + if (acceptData.getVersion() < version) { + //鍙栬瀹氬�� + String type = channelJSON.optString("type"); + if ("html".equalsIgnoreCase(type)) { + return FunTVUtil2.PLAY_HTML; + } else if ("sdk".equalsIgnoreCase(type)) { + return FunTVUtil2.PLAY_SDK; + } else { + return FunTVUtil2.PLAY_NONE; + } + } else { + //鍙栬瀹氱浉鍙嶅�� + String type = channelJSON.optString("type"); + if ("html".equalsIgnoreCase(type)) { + return FunTVUtil2.PLAY_SDK; + } else if ("sdk".equalsIgnoreCase(type)) { + return FunTVUtil2.PLAY_HTML; + } else { + return FunTVUtil2.PLAY_NONE; + } + } + } + + @Override public PlayUrl getPlayUrl(AcceptData acceptData, String detailSystemId, int resourceId, String id, String videoId) { FunTVVideo2 video2 = funTVVideo2Dao.get(id); VideoResource vr = videoResourceService.getResource(resourceId + ""); - int t = FunTVUtil2.getPlayType(acceptData,video2); + int t = getPlayType(acceptData, video2); PlayUrl pu = new PlayUrl(); pu.setParams(""); pu.setPlayType(t); pu.setResource(vr); pu.setAid(video2.getMediaId()); pu.setVid(video2.getId()); - + pu.setCode(video2.getCeCode()); if (t == FunTVUtil2.PLAY_NONE) { pu.setUrl(""); } else { @@ -257,8 +307,8 @@ VideoFunTV2 videoFunTV2 = videoFunTV2Dao.selectByMediaId(mediaId); if (videoFunTV2 == null) return; - videoFunTV2Dao.delete(videoFunTV2.getVideoId()); - resourceVideoService.delete(videoFunTV2.getVideoId()+"",FunTVUtil2.RESOURCE_ID+""); + videoFunTV2Dao.deleteByVideoId(videoFunTV2.getVideoId()); + resourceVideoService.delete(videoFunTV2.getVideoId() + "", FunTVUtil2.RESOURCE_ID + ""); //鍒犻櫎濯掍綋涓庡獟浣撳搴旂殑瑙嗛 funTVAlbum2Dao.delete(mediaId); List<FunTVVideo2> video2List = listAllEpisodeList(mediaId); -- Gitblit v1.8.0