package com.yeshi.buwan.controller.parser; 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; import com.yeshi.buwan.domain.system.DetailSystem; import com.yeshi.buwan.domain.HotStar; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.ad.CommonAd; import com.yeshi.buwan.domain.ad.CommonAdPositionAd; 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.news.NewsService; import com.yeshi.buwan.util.JsonUtil; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.ad.CommonAdUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @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 DetailSystemConfigService detailSystemConfigService; public void getSpecialMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List list = specialService.getSpecialOnMain(ds.getId()); int pid = 0; if (acceptData.getPlatform().equalsIgnoreCase("android")) pid = 1; else pid = 3; List 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())); } public void getHotStarMainList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List 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 newsList = new ArrayList(); List 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())); } public void getAppHui(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { int pid = CommonAdUtil.getFoundAPPHuiPosition(acceptData.getPlatform()); // DetailSystem ds = // systemService.getDetailSystemByPackage(packageName); List 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())); } @Resource private SolrAlbumVideoDataManager solrAlbumVideoDataManager; // 获取猜你喜欢 public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String page = request.getParameter("Page"); if (StringUtil.isNullOrEmpty(page)) { out.print(JsonUtil.loadFalseJson("请上传page")); return; } List list = null; 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 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); 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; } }