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/controller/parser/ClassParser.java | 138 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 105 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java b/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java index 3754f39..513e9d3 100644 --- a/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java +++ b/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java @@ -7,14 +7,14 @@ import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial; import com.yeshi.buwan.domain.special.Special; import com.yeshi.buwan.domain.system.DetailSystem; +import com.yeshi.buwan.domain.system.DetailSystemConfig; import com.yeshi.buwan.dto.search.SolrResultDTO; import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; -import com.yeshi.buwan.pptv.PPTVUtil; +import com.yeshi.buwan.videos.pptv.PPTVUtil; import com.yeshi.buwan.service.imp.*; import com.yeshi.buwan.service.imp.recommend.CategoryRecommendVideoService; import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService; -import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; -import com.yeshi.buwan.service.manager.SolrCommonVideoDataManager; +import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.JuHe.VideoResourceUtil; import com.yeshi.buwan.util.ad.CommonAdUtil; @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Set; @Controller public class ClassParser { @@ -74,6 +73,9 @@ @Resource private HomeRecommendSpecialService homeRecommendSpecialService; + + @Resource + private DetailSystemConfigService detailSystemConfigService; @RequireUid public void getClass(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { @@ -121,8 +123,14 @@ if (!StringUtil.isNullOrEmpty(list.get(i).getPicture())) { list.get(i).getType().setIcon(list.get(i).getPicture()); } - typeList.add(list.get(i).getType()); + if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= Constant.IOS_ONLINING_VERSION) { + if (VideoConstant.isMainCategory(list.get(i).getType().getId())) { + typeList.add(list.get(i).getType()); + } + } else + typeList.add(list.get(i).getType()); } + JSONObject object = new JSONObject(); object.put("count", (new StringBuilder(String.valueOf(typeList.size()))).toString()); @@ -157,28 +165,6 @@ } } - - if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() > 53 && !"qq".equalsIgnoreCase(acceptData.getChannel())) { - SuperVideoType sty = new SuperVideoType(); - sty.setCreatetime(0 + ""); - sty.setPicture(""); - VideoType vt = new VideoType(Constant.VIDEO_TYPE_ZHIBO); - vt.setName("缇庡コ鐩存挱"); - vt.setShow("1"); - vt.setCategoryType("http://m.v.6.cn/event/porkvideo?src=9n8wc5medm&nologo=1&t=2"); - vt.setIcon("https://hbimg.huabanimg.com/12834704bb4aa39342c2fb51e0c644181b13997b70eb-CqlE1I_fw658/format/webp"); - sty.setType(vt); - boolean isC = false; - for (SuperVideoType svt : list) { - if (svt.getType().getId() == vt.getId()) { - isC = true; - break; - } - } - - if (!isC) - list.add(sty); - } //Android骞冲彴3.8.7涔嬪悗杩斿洖VIP if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= 105) { @@ -259,6 +245,44 @@ typelist.add(type); } + if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= Constant.IOS_ONLINING_VERSION) { + typelist = new ArrayList<>(); + HomeClassVO vo = new HomeClassVO(); + vo.setId(309L); + vo.setName("鎺ㄨ崘"); + vo.setShowTitle("鎺ㄨ崘"); + vo.setDataType(HomeClassVO.DATA_TYPE_RECOMMEND); + typelist.add(vo); + + vo = new HomeClassVO(); + vo.setId(VideoConstant.VIDEO_CATEGORY_DIANYING); + vo.setName("鐢靛奖"); + vo.setShowTitle("鐢靛奖"); + vo.setDataType(HomeClassVO.DATA_TYPE_CLASS); + typelist.add(vo); + + vo = new HomeClassVO(); + vo.setId(VideoConstant.VIDEO_CATEGORY_DIANSHIJU); + vo.setName("鐢佃鍓�"); + vo.setShowTitle("鐢佃鍓�"); + vo.setDataType(HomeClassVO.DATA_TYPE_CLASS); + typelist.add(vo); + + vo = new HomeClassVO(); + vo.setId(VideoConstant.VIDEO_CATEGORY_DONGMAN); + vo.setName("鍔ㄦ极"); + vo.setShowTitle("鍔ㄦ极"); + vo.setDataType(HomeClassVO.DATA_TYPE_CLASS); + typelist.add(vo); + + vo = new HomeClassVO(); + vo.setId(VideoConstant.VIDEO_CATEGORY_ZONGYI); + vo.setName("缁艰壓"); + vo.setShowTitle("缁艰壓"); + vo.setDataType(HomeClassVO.DATA_TYPE_CLASS); + typelist.add(vo); + } + JSONObject object = new JSONObject(); object.put("count", (new StringBuilder(String.valueOf(typelist.size()))).toString()); JSONArray array = new JSONArray(); @@ -304,6 +328,13 @@ if (sv.getType().getId() != 309L && sv.getType().getId() != 310L) typelist.add(vo); } + + //IOS瀹℃牳鐗堟湰 + DetailSystemConfig onLineVersion = detailSystemConfigService.getConfigByKey("ios_online_version", acceptData.getDetailSystem(), acceptData.getVersion()); + if (onLineVersion != null && Integer.parseInt(onLineVersion.getValue()) <= acceptData.getVersion()) { + typelist.clear(); + } + //鑾峰彇棣栭〉鎺ㄨ崘鏍囩 List<HomeRecommendSpecial> specialList = homeRecommendSpecialService.listSpecialByDetailSystemId(acceptData.getDetailSystem().getId(), null, 1, Constant.pageCount); if (specialList != null) { @@ -315,6 +346,8 @@ vo.setShowTitle(special.getName()); vo.setDataKey(special.getDataKey()); vo.setDataType(HomeClassVO.DATA_TYPE_RECOMMEND); + if (vo.getName().contains("楂樻竻")) + vo.setColor("#ff6600"); typelist.add(0, vo); } } @@ -386,7 +419,7 @@ DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion(), acceptData.getChannel()); List<VideoInfo> list = starService.getStarVideo(detailSystem.getId(), starId, pageIndex, CacheUtil.getMD5Long(resourceList)); @@ -448,7 +481,7 @@ if (Utils.isTest(request, user, detailSystem.getId())) detailSystem = systemService.getDetailSystemById(40 + ""); - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel()); String resourceMD5 = CacheUtil.getMD5Long(resourceList); @@ -479,7 +512,7 @@ } else if (!StringUtil.isNullOrEmpty(homeType)) { - list = new ArrayList<VideoInfo>(); + list = new ArrayList<>(); List<HomeVideo> homeVideoList = homeTypeService.getVideoByTypes(homeType, pageIndex, detailSystem); for (HomeVideo hv : homeVideoList) { @@ -538,7 +571,7 @@ break; default: } - filter.setResourceIds(new String[]{PPTVUtil.RESOURCE_ID + ""}); + filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""})); //鏇存柊鏃堕棿 if ("1".equalsIgnoreCase(order)) { @@ -818,11 +851,33 @@ out.print(JsonUtil.loadTrueJson(object.toString())); } + @Resource + private VideoResourceService videoResourceService; + @RequireUid public void getSpecialDetail(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String specialid = request.getParameter("Id"); Special special = specialService.getSpecial(specialid); List<VideoInfo> list = specialService.getSpecialVideoList(specialid); + List<Long> availableResourceIds = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel()); + List<VideoInfo> tempList = new ArrayList<>(); + for (VideoInfo videoInfo : list) { + List<VideoResource> resourceList = videoResourceService.getResourceByVideo(videoInfo); + List<Long> rids = new ArrayList<>(); + for (VideoResource vr : resourceList) { + if (availableResourceIds.contains(Long.parseLong(vr.getId()))) { + rids.add(Long.parseLong(vr.getId())); + break; + } + } + if (rids.size() > 0) { + tempList.add(videoInfo); + } + } + + list = tempList; + + JSONObject object = new JSONObject(); object.put("count", list.size()); JSONArray array = new JSONArray(); @@ -895,8 +950,25 @@ public void getRecommendCategoryVideoList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String typeid = request.getParameter("Type"); DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<VideoInfo> rankList = categoryRecommendCacheVideoService.getVideoListByRank(Integer.parseInt(typeid), - detailSystem.getId(), acceptData.getPlatform(), acceptData.getVersion()); + List<VideoInfo> rankList = null; +// if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= Constant.IOS_ONLINING_VERSION) { +// SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); +// filter.setResourceIds(new String[]{25 + ""}); +// filter.setVideoType(Integer.parseInt(typeid)); +// filter.setFreeType(0); +// SolrResultDTO dto = solrAlbumVideoDataManager.find(filter, 1, 30); +// List<SolrAlbumVideo> list = dto.getVideoList(); +// rankList = new ArrayList<>(); +// for (SolrAlbumVideo video : list) { +// rankList.add(VideoInfoFactory.create(video)); +// } +// } +// else { + rankList = categoryRecommendCacheVideoService.getVideoListByRank(Integer.parseInt(typeid), + detailSystem.getId(), acceptData.getPlatform(), acceptData.getVersion(), acceptData.getChannel()); +// } + + List<VideoInfo> list = new ArrayList<>(); list.addAll(rankList); for (VideoInfo vi : list) {// 娓呴櫎鏃犵敤鏁版嵁,闃叉娴垂甯﹀,鏇存敼鍥剧墖 -- Gitblit v1.8.0