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/FoundParser.java | 318 +++++++++++++++++++++++++++++----------------------- 1 files changed, 175 insertions(+), 143 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java b/src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java index 955536c..5ae3289 100644 --- a/src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java +++ b/src/main/java/com/yeshi/buwan/controller/parser/FoundParser.java @@ -2,12 +2,22 @@ import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import com.yeshi.buwan.domain.solr.SolrAlbumVideo; +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.videos.pptv.PPTVUtil; +import com.yeshi.buwan.service.imp.*; +import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; +import com.yeshi.buwan.util.Constant; +import com.yeshi.buwan.util.factory.VideoInfoFactory; import com.yeshi.buwan.vo.AcceptData; import org.springframework.stereotype.Controller; @@ -19,11 +29,6 @@ import com.yeshi.buwan.domain.news.FoundNews; import com.yeshi.buwan.domain.news.News; import com.yeshi.buwan.domain.special.Special; -import com.yeshi.buwan.service.imp.AdService; -import com.yeshi.buwan.service.imp.SpecialService; -import com.yeshi.buwan.service.imp.StarService; -import com.yeshi.buwan.service.imp.SystemService; -import com.yeshi.buwan.service.imp.VideoService; import com.yeshi.buwan.service.imp.news.NewsService; import com.yeshi.buwan.util.JsonUtil; import com.yeshi.buwan.util.StringUtil; @@ -35,166 +40,193 @@ @Controller public class FoundParser { - @Resource - private SpecialService specialService; - @Resource - private SystemService systemService; - @Resource - private StarService starService; - @Resource - private NewsService newsService; - @Resource - private AdService adService; - @Resource - private VideoService videoService; + @Resource + private SpecialService specialService; + @Resource + private SystemService systemService; + @Resource + private StarService starService; + @Resource + private NewsService newsService; + @Resource + private AdService adService; + @Resource + private VideoService videoService; + @Resource + private DetailSystemConfigService detailSystemConfigService; - public void getSpecialMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + public void getSpecialMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { - DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<Special> list = specialService.getSpecialOnMain(ds.getId()); - int pid = 0; - if (acceptData.getPlatform().equalsIgnoreCase("android")) - pid = 1; - else - pid = 3; - List<CommonAdPositionAd> adList = adService.getCommonAdByPid(pid + ""); - if (adList != null && adList.size() > 0) { - for (int i = 0; i < adList.size(); i++) { - int p = adList.get(i).getPosition(); - Special sc = new Special(); - CommonAd ca = adList.get(i).getAd(); - ca.setPid(pid + ""); - sc.setPicture(ca.getPicture()); - sc.setIntroduction(ca.getDesc()); - sc.setCommonAd(ca); - if (p < list.size()) { - list.add(p, sc); - } else {// 鐩存帴鍔犲埌鏈熬 - list.add(sc); - } - } - } + DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + List<Special> list = specialService.getSpecialOnMain(ds.getId()); + int pid = 0; + if (acceptData.getPlatform().equalsIgnoreCase("android")) + pid = 1; + else + pid = 3; + List<CommonAdPositionAd> adList = adService.getCommonAdByPid(pid + ""); + if (adList != null && adList.size() > 0) { + for (int i = 0; i < adList.size(); i++) { + int p = adList.get(i).getPosition(); + Special sc = new Special(); + CommonAd ca = adList.get(i).getAd(); + ca.setPid(pid + ""); + sc.setPicture(ca.getPicture()); + sc.setIntroduction(ca.getDesc()); + sc.setCommonAd(ca); + if (p < list.size()) { + list.add(p, sc); + } else {// 鐩存帴鍔犲埌鏈熬 + list.add(sc); + } + } + } - JSONObject object = new JSONObject(); - object.put("count", list.size() + ""); - JSONArray array = new JSONArray(); - for (int i = 0; i < list.size(); i++) - array.add(StringUtil.outPutResultJson(list.get(i))); - object.put("data", array); - out.print(JsonUtil.loadTrueJson(object.toString())); - } + JSONObject object = new JSONObject(); + object.put("count", list.size() + ""); + JSONArray array = new JSONArray(); + for (int i = 0; i < list.size(); i++) + array.add(StringUtil.outPutResultJson(list.get(i))); + object.put("data", array); + out.print(JsonUtil.loadTrueJson(object.toString())); + } - public void getHotStarMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + public void getHotStarMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { - DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<HotStar> list = starService.getHotStarOnMain(ds.getId()); - JSONObject object = new JSONObject(); - object.put("count", list.size() + ""); - JSONArray array = new JSONArray(); - for (int i = 0; i < list.size(); i++) - array.add(StringUtil.outPutResultJson(list.get(i))); - object.put("data", array); - out.print(JsonUtil.loadTrueJson(object.toString())); - } + DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + List<HotStar> list = starService.getHotStarOnMain(ds.getId()); + JSONObject object = new JSONObject(); + object.put("count", list.size() + ""); + JSONArray array = new JSONArray(); + for (int i = 0; i < list.size(); i++) + array.add(StringUtil.outPutResultJson(list.get(i))); + object.put("data", array); + out.print(JsonUtil.loadTrueJson(object.toString())); + } - public void getNewsMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { - DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<News> newsList = new ArrayList<News>(); + public void getNewsMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + List<News> newsList = new ArrayList<News>(); - List<FoundNews> list = newsService.getNewsOnMain(ds.getId()); - for (FoundNews fn : list) { - if (!StringUtil.isNullOrEmpty(fn.getPicture()) && fn.getNews().getImgList() != null - && fn.getNews().getImgList().size() > 0) - fn.getNews().getImgList().get(0).setUrl(fn.getPicture()); - fn.getNews().setReadCount((int) (Math.random() * 10000)); - newsList.add(fn.getNews()); - } - if (newsList != null && newsList.size() > 0) { - newsList.get(0).setShowType(4); - } + List<FoundNews> list = newsService.getNewsOnMain(ds.getId()); + for (FoundNews fn : list) { + if (!StringUtil.isNullOrEmpty(fn.getPicture()) && fn.getNews().getImgList() != null + && fn.getNews().getImgList().size() > 0) + fn.getNews().getImgList().get(0).setUrl(fn.getPicture()); + fn.getNews().setReadCount((int) (Math.random() * 10000)); + newsList.add(fn.getNews()); + } + if (newsList != null && newsList.size() > 0) { + newsList.get(0).setShowType(4); + } - JSONObject object = new JSONObject(); - object.put("count", newsList.size() + ""); - JSONArray array = new JSONArray(); - for (int i = 0; i < newsList.size(); i++) - array.add(StringUtil.outPutResultJson(newsList.get(i))); - object.put("data", array); - out.print(JsonUtil.loadTrueJson(object.toString())); - } + JSONObject object = new JSONObject(); + object.put("count", newsList.size() + ""); + JSONArray array = new JSONArray(); + for (int i = 0; i < newsList.size(); i++) + array.add(StringUtil.outPutResultJson(newsList.get(i))); + object.put("data", array); + out.print(JsonUtil.loadTrueJson(object.toString())); + } - public void getAppHui(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + public void getAppHui(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + int pid = CommonAdUtil.getFoundAPPHuiPosition(acceptData.getPlatform()); - int pid = CommonAdUtil.getFoundAPPHuiPosition(acceptData.getPlatform()); + // DetailSystem ds = + // systemService.getDetailSystemByPackage(packageName); - // DetailSystem ds = - // systemService.getDetailSystemByPackage(packageName); + List<CommonAdPositionAd> adList = adService.getCommonAdByPid(pid + ""); - List<CommonAdPositionAd> adList = adService.getCommonAdByPid(pid + ""); + JSONObject object = new JSONObject(); + object.put("count", adList.size() + ""); + JSONArray array = new JSONArray(); + for (int i = 0; i < adList.size(); i++) { + adList.get(i).getAd().setPid(pid + ""); + array.add(StringUtil.outPutResultJson(adList.get(i).getAd())); + } + object.put("data", array); + object.put("Url", "http://www.baidu.com"); + out.print(JsonUtil.loadTrueJson(object.toString())); + } - JSONObject object = new JSONObject(); - object.put("count", adList.size() + ""); - JSONArray array = new JSONArray(); - for (int i = 0; i < adList.size(); i++) { - adList.get(i).getAd().setPid(pid + ""); - array.add(StringUtil.outPutResultJson(adList.get(i).getAd())); - } - object.put("data", array); - object.put("Url", "http://www.baidu.com"); - out.print(JsonUtil.loadTrueJson(object.toString())); - } + @Resource + private SolrAlbumVideoDataManager solrAlbumVideoDataManager; - // 鑾峰彇鐚滀綘鍠滄 - public void guessLike(AcceptData acceptData,HttpServletRequest request, PrintWriter out) { + // 鑾峰彇鐚滀綘鍠滄 + public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { - String page = request.getParameter("Page"); + String page = request.getParameter("Page"); - if (StringUtil.isNullOrEmpty(page)) { - out.print(JsonUtil.loadFalseJson("璇蜂笂浼爌age")); - return; - } - List<VideoInfo> list = videoService.guessLike(Integer.parseInt(page)); - if (list != null) - Collections.shuffle(list); - - JSONObject object = new JSONObject(); - object.put("count", "1000"); - JSONArray array = new JSONArray(); - for (int i = 0; i < list.size(); i++) { - list.get(i).setDuration(getDurationDesc(list.get(i).getDuration())); - list.get(i).setWatchCount((int) (Math.random() * 500) + ""); - if (!StringUtil.isNullOrEmpty(list.get(i).getHpicture())) - list.get(i).setPicture(list.get(i).getHpicture()); - array.add(StringUtil.outPutResultJson(list.get(i))); - } - object.put("data", array); - out.print(JsonUtil.loadTrueJson(object.toString())); - } + if (StringUtil.isNullOrEmpty(page)) { + out.print(JsonUtil.loadFalseJson("璇蜂笂浼爌age")); + return; + } - private String getDurationDesc(String duration) { - if (StringUtil.isNullOrEmpty(duration)) - return ""; - try { - int d = Integer.parseInt(duration); - if (d < 3600) { - int m = d / 60; - int s = d % 60; - return (m < 10 ? "0" + m : m + "") + ":" + (s < 10 ? "0" + s : s + ""); + List<VideoInfo> list = null; - } else { - int h = d / 3600; - int m = (d % 3600) / 60; - int s = d % 60; - return (h < 10 ? "0" + h : h + "") + ":" + (m < 10 ? "0" + m : m + "") + ":" - + (s < 10 ? "0" + s : s + ""); - } + DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + //IOS瀹℃牳鐗堟湰 + DetailSystemConfig onLineVersion = detailSystemConfigService.getConfigByKey("ios_online_version", acceptData.getDetailSystem(), acceptData.getVersion()); + if (onLineVersion != null && Integer.parseInt(onLineVersion.getValue()) <= acceptData.getVersion()) { + SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); + filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""})); + SolrResultDTO resultDTO = solrAlbumVideoDataManager.find(filter, Integer.parseInt(page), Constant.pageCount); + if (resultDTO != null) { + List<SolrAlbumVideo> solrAlbumVideoList = resultDTO.getVideoList(); + if (solrAlbumVideoList != null && solrAlbumVideoList.size() > 0) { + list = new ArrayList<>(); + for (SolrAlbumVideo av : solrAlbumVideoList) { + VideoInfo videoInfo = VideoInfoFactory.create(av); + videoInfo.setDuration(""); + list.add(videoInfo); + } + } + } + } else { + list = videoService.guessLike(Integer.parseInt(page)); + } + if (list != null) + Collections.shuffle(list); - } catch (Exception e) { - } - return duration; - } + JSONObject object = new JSONObject(); + object.put("count", "1000"); + JSONArray array = new JSONArray(); + for (int i = 0; i < list.size(); i++) { + list.get(i).setDuration(getDurationDesc(list.get(i).getDuration())); + list.get(i).setWatchCount((int) (Math.random() * 500) + ""); + if (!StringUtil.isNullOrEmpty(list.get(i).getHpicture())) + list.get(i).setPicture(list.get(i).getHpicture()); + array.add(StringUtil.outPutResultJson(list.get(i))); + } + object.put("data", array); + out.print(JsonUtil.loadTrueJson(object.toString())); + } + + private String getDurationDesc(String duration) { + if (StringUtil.isNullOrEmpty(duration)) + return ""; + try { + int d = Integer.parseInt(duration); + if (d < 3600) { + int m = d / 60; + int s = d % 60; + return (m < 10 ? "0" + m : m + "") + ":" + (s < 10 ? "0" + s : s + ""); + + } else { + int h = d / 3600; + int m = (d % 3600) / 60; + int s = d % 60; + return (h < 10 ? "0" + h : h + "") + ":" + (m < 10 ? "0" + m : m + "") + ":" + + (s < 10 ? "0" + s : s + ""); + } + + } catch (Exception e) { + } + return duration; + } } -- Gitblit v1.8.0