package com.yeshi.buwan.controller.parser; import com.google.gson.Gson; import com.yeshi.buwan.domain.*; import com.yeshi.buwan.domain.jump.JumpDetail; import com.yeshi.buwan.domain.jump.JumpTypeEnum; import com.yeshi.buwan.domain.recommend.AdRecommendRight; import com.yeshi.buwan.domain.system.DetailSystem; import com.yeshi.buwan.domain.system.SystemInfo; import com.yeshi.buwan.service.imp.*; import com.yeshi.buwan.service.imp.recommend.AdRecommendRightService; import com.yeshi.buwan.service.inter.jump.JumpDetailService; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.annotation.RequireUid; import com.yeshi.buwan.util.log.VideoLogFactory; import com.yeshi.buwan.util.zhibo.MeiNvZhiBoUtil; import com.yeshi.buwan.vo.AcceptData; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.util.List; @Controller public class OtherParser { private final Logger playLogger = LoggerFactory.getLogger("videoPlay"); private String[] sdks = {"4.0.1", "4.0.2", "4.1.0", "4.2.2", "4.2.4", "4.4.2", "4.4.4", "5.0.1", "5.1.0"}; private String[] fbl = {"720x1280", "480x800", "480x854", "640x960", "1080x1920"}; @Resource private OtherService otherService; @Resource private AdService adService; @Resource private SystemService systemService; @Resource private HomeNoticeService homeNoticeService; @Resource private IntersectionService intersectionService; @Resource private MeiNvZhiBoUtil meiNvZhiBoUtil; @Resource private AdRecommendRightService adRecommendRightService; @Resource private JumpDetailService jumpDetailService; @Resource private RedisManager redisManager; @RequireUid public void advice(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String content = request.getParameter("Content"); if (StringUtil.isNullOrEmpty(content)) { out.print(JsonUtil.loadFalseJson("请上传Content")); return; } otherService.advice(acceptData.getUid(), content); out.print(JsonUtil.loadTrueJson("")); out.flush(); out.close(); return; } public void test(HttpServletRequest request, PrintWriter out) { out.print("123"); out.flush(); out.close(); } public void getWxAd(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { List adList = adService.getWinAd(new SystemInfo(acceptData.getSystem())); WXAd ad = null; if (adList != null && adList.size() > 0) { int position = (int) (adList.size() * Math.random()); ad = adList.get(position); } if (ad != null) { String result = StringUtil.outPutResultJson(ad); out.print(JsonUtil.loadTrueJson(result)); } out.flush(); out.close(); return; } @RequireUid public void wxClickAction(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String id = request.getParameter("Id"); if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseJson("请上传Id")); return; } WXStatistics wx = new WXStatistics(); wx.setAction("1"); wx.setCreatetime((new StringBuilder(String.valueOf(System.currentTimeMillis()))).toString()); wx.setUser(new UserInfo(acceptData.getUid())); wx.setWxad(new WXAd(id)); adService.insertWXStatistics(wx); out.print(JsonUtil.loadTrueJson("")); out.flush(); out.close(); return; } public void getNotice(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List list = homeNoticeService.getHomeNoticeList(detailSystem.getId()); String content = ""; String url = ""; HomeNotice notice = null; if (list != null && list.size() > 0) { int position = (int) ((list.size() + 1) * Math.random()); if (position == 0) position = 1; if (position > list.size()) position = list.size(); notice = list.get(position - 1); long now = System.currentTimeMillis(); if (TimeUtil.convertAllTimeToTemp(notice.getStarttime()) < now && now < TimeUtil.convertAllTimeToTemp(notice.getEndtime())) {// 在显示时间内 } else { notice = null; } } JumpDetail jumpDetail = null; if (notice != null && acceptData.getVersion() >= 98 && "android".equalsIgnoreCase(acceptData.getPlatform())) { content = notice.getContent(); url = notice.getUrl().split("\\?")[1].replace("url=", "").trim(); jumpDetail = jumpDetailService.selectByTypeCache(JumpTypeEnum.baichuan); } JSONObject params = new JSONObject(); params.put("url", url); JSONObject object = new JSONObject(); object.put("Content", content);// content object.put("Url", url);// url object.put("ShowAd", "0");// 广告显示 object.put("Params", params);// 跳转参数 object.put("jumpDetail", new Gson().toJson(jumpDetail)); out.print(JsonUtil.loadTrueJson(object.toString())); out.flush(); out.close(); return; } public void getRealUrl(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String url = request.getParameter("Url"); String urlId = request.getParameter("Id"); String realUrl = ""; if (!StringUtil.isNullOrEmpty(urlId) || !StringUtil.isNullOrEmpty(url)) { if (StringUtil.isNullOrEmpty(urlId)) { realUrl = ""; } else { realUrl = ""; } } out.print(JsonUtil.loadTrueJson("http://www.baidu.com")); out.flush(); out.close(); return; } public void getIntersection(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String id = request.getParameter("Id"); if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseJson("请上传Id")); return; } List list = intersectionService.getIntersectionVideoList(id); if (list != null && list.size() > 0) { JSONObject object = new JSONObject(); object.put("count", (new StringBuilder(String.valueOf(list.size()))).toString()); 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())); } else out.print(JsonUtil.loadFalseJson("没有数据")); out.flush(); out.close(); return; } public void getMeiNvZhiBo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String type = request.getParameter("Type"); if (StringUtil.isNullOrEmpty(type)) { out.print(JsonUtil.loadFalseJson("请上传Type")); return; } DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List list = meiNvZhiBoUtil.getMeiNvZhiBo(type, detailSystem, acceptData.getVersion()); if (list != null && list.size() > 0) { JSONObject object = new JSONObject(); object.put("count", (new StringBuilder(String.valueOf(list.size()))).toString()); 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())); } else out.print(JsonUtil.loadFalseJson("没有数据")); out.flush(); out.close(); return; } public void getYearList(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { JSONArray array = new JSONArray(); String[] sts = Constant.YEARS; for (int i = 0; i < sts.length; i++) { JSONObject obj = new JSONObject(); obj.put("Name", sts[i]); obj.put("Id", i); array.add(obj); } out.print(JsonUtil.loadTrueJson(array.toString())); out.flush(); out.close(); return; } public void adRecommendRight(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { AdRecommendRight ad = adRecommendRightService.getAdRecommendRight(); if (ad == null) out.print(JsonUtil.loadFalseJson("")); else out.print(JsonUtil.loadTrueJson(new Gson().toJson(ad))); out.flush(); out.close(); } public void playStatistic(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { String videoId = request.getParameter("VideoId"); String resourceId = request.getParameter("ResourceId"); playLogger.info(VideoLogFactory.createStatisticLog("", Integer.parseInt(resourceId), videoId)); out.print(JsonUtil.loadTrueJson("")); return; } }