From b37275dba6b782bf3bb3817c4504f6cdef1bef7c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 18 三月 2021 18:38:51 +0800 Subject: [PATCH] APP首页顶部标签兼容 --- src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java | 193 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 160 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 20f2dc7..d590cf0 100644 --- a/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java +++ b/src/main/java/com/yeshi/buwan/controller/parser/ClassParser.java @@ -5,12 +5,19 @@ import com.yeshi.buwan.domain.ad.CommonAdPositionAd; import com.yeshi.buwan.domain.recommend.CategoryRecommendVideo; import com.yeshi.buwan.domain.special.Special; +import com.yeshi.buwan.domain.system.DetailSystem; +import com.yeshi.buwan.dto.search.SolrResultDTO; +import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; +import com.yeshi.buwan.pptv.PPTVUtil; import com.yeshi.buwan.service.imp.*; import com.yeshi.buwan.service.imp.recommend.CategoryRecommendVideoService; +import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; +import com.yeshi.buwan.service.manager.SolrCommonVideoDataManager; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.JuHe.VideoResourceUtil; import com.yeshi.buwan.util.ad.CommonAdUtil; import com.yeshi.buwan.util.annotation.RequireUid; +import com.yeshi.buwan.util.video.VideoConstant; import com.yeshi.buwan.vo.AcceptData; import com.yeshi.buwan.vo.HomeClassVO; import com.yeshi.buwan.vo.video.VideoListResultVO; @@ -22,7 +29,9 @@ import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Set; @Controller public class ClassParser { @@ -55,6 +64,11 @@ @Resource private RedisManager redisManager; + @Resource + private SolrAlbumVideoDataManager solrAlbumVideoDataManager; + + @Resource + private SearchService searchService; @RequireUid public void getClass(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { @@ -138,22 +152,12 @@ } } -// if (acceptData.getPlatform().equalsIgnoreCase("android")) { -// for (SuperVideoType type : list) { -// if (type.getType().getName().contains("璧勮")) { -// type.getType().setName("涓绘挱"); -// type.getType().setId(1111); -// type.getType().setIcon("http://img.zcool.cn/community/017fdb57610d8a0000012e7e74b496.png"); -// break; -// } -// } -// } 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(22222); + 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"); @@ -170,6 +174,28 @@ if (!isC) list.add(sty); } + + //Android骞冲彴3.8.7涔嬪悗杩斿洖VIP + if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= 105) { + + SuperVideoType sty = new SuperVideoType(); + sty.setCreatetime(0 + ""); + sty.setPicture(""); + VideoType vt = new VideoType(Constant.VIDEO_TYPE_VIP); + vt.setName("VIP"); + vt.setShow("1"); + vt.setIcon("https://hbimg.huabanimg.com/4690ea8f8144f3d46c11e417c77daa5debcb71f9201f-WpAbfw_fw658/format/jpg"); + sty.setType(vt); + boolean isC = false; + for (SuperVideoType svt : list) { + if (svt.getType().getId() == vt.getId()) { + isC = true; + break; + } + } + list.add(sty); + } + List<VideoType> typelist = new ArrayList<VideoType>(); for (SuperVideoType sv : list) { @@ -194,7 +220,7 @@ /** * 鑾峰彇褰撳墠绯荤粺鎵�鏈夊悗鍙拌棰戝垎绫� * - * @param uid + * @param acceptData * @param request * @param out */ @@ -273,6 +299,8 @@ typelist.add(vo); } + typelist.get(0).setDataKey("recommend"); + HomeClassVO vo = new HomeClassVO(); vo.setDataType(HomeClassVO.DATA_TYPE_NOVEL); @@ -345,9 +373,9 @@ return; } - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); - DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion()); List<VideoInfo> list = starService.getStarVideo(detailSystem.getId(), starId, pageIndex, CacheUtil.getMD5Long(resourceList)); @@ -404,11 +432,12 @@ return; } - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); - DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); + DetailSystem detailSystem = acceptData.getDetailSystem(); UserInfo user = userService.getUserInfo(acceptData.getUid()); if (Utils.isTest(request, user, detailSystem.getId())) detailSystem = systemService.getDetailSystemById(40 + ""); + + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); String resourceMD5 = CacheUtil.getMD5Long(resourceList); @@ -454,6 +483,7 @@ .toString(); } else if (!StringUtil.isNullOrEmpty(videoType)) { if (StringUtil.isNullOrEmpty(categoryType) || "genre".equalsIgnoreCase(categoryType)) {// 鎸夊垎绫绘绱㈡暟鎹� + if (!StringUtil.isNullOrEmpty(order)) { Long startTime = System.currentTimeMillis(); List<VideoInfo> list1 = classService.getTypeVideoList(videoType, detailSystem, pageIndex, 20, @@ -473,19 +503,56 @@ list.add(info); } count = 1200 + ""; + + } else {// 鎸夊湴鍖烘绱㈡暟鎹� - String areaId = videoType;// 鍥界睄ID - CategoryContry cc = categoryAreaService.getCategoryArea(areaId); - String country = cc.getName(); - long typeid = cc.getParent().getCid(); - if (StringUtil.isNullOrEmpty(order)) - order = 1 + ""; - list = categoryAreaService.getVideoInfoByArea(typeid + "", detailSystem, pageIndex, 20, - Integer.parseInt(order), resourceList, country, - StringUtil.Md5(typeid + "-" + detailSystem + "-" + pageIndex + "-" + order + "-" + country - + "-" + CacheUtil.getMD5Long(resourceList))); - System.out.println("鍒楄〃鏈�缁堟暟閲�:" + list.size()); - count = 1000 + ""; + //闈濾IP鍒嗙被 + List<Integer> vipTypes = Arrays.asList(Constant.vipTypes); + if (vipTypes.contains(Integer.parseInt(videoType))) { + //VIP鍒嗙被 + SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); + filter.setFreeType(1); + switch (Integer.parseInt(videoType)) { + case Constant.VIDEO_TYPE_VIP_MOVIE: + filter.setVideoType(VideoConstant.VIDEO_CATEGORY_DIANYING); + break; + case Constant.VIDEO_TYPE_VIP_TV: + filter.setVideoType(VideoConstant.VIDEO_CATEGORY_DIANSHIJU); + break; + case Constant.VIDEO_TYPE_VIP_CARTOON: + filter.setVideoType(VideoConstant.VIDEO_CATEGORY_DONGMAN); + break; + case Constant.VIDEO_TYPE_VIP_SHOW: + filter.setVideoType(VideoConstant.VIDEO_CATEGORY_ZONGYI); + break; + default: + } + filter.setResourceIds(new String[]{PPTVUtil.RESOURCE_ID + ""}); + + //鏇存柊鏃堕棿 + if ("1".equalsIgnoreCase(order)) { + filter.setSortKey("updateTime"); + } else { + //瑙傜湅娆℃暟 + filter.setSortKey("watchcount"); + } + SolrResultDTO resultDTO = solrAlbumVideoDataManager.find(filter, pageIndex, 20); + count = resultDTO.getTotalCount() + ""; + list = searchService.convertSolrAlbumResultToVideo(resultDTO.getVideoList(), resourceList); + } else { + String areaId = videoType;// 鍥界睄ID + CategoryContry cc = categoryAreaService.getCategoryArea(areaId); + String country = cc.getName(); + long typeid = cc.getParent().getCid(); + if (StringUtil.isNullOrEmpty(order)) + order = 1 + ""; + list = categoryAreaService.getVideoInfoByArea(typeid + "", detailSystem, pageIndex, 20, + Integer.parseInt(order), resourceList, country, + StringUtil.Md5(typeid + "-" + detailSystem + "-" + pageIndex + "-" + order + "-" + country + + "-" + CacheUtil.getMD5Long(resourceList))); + System.out.println("鍒楄〃鏈�缁堟暟閲�:" + list.size()); + count = 1000 + ""; + } } } list = banQuanService.getBanQuanVideo(list, detailSystem.getId(), CacheUtil.getMD5VideoInfo(list)); @@ -557,6 +624,14 @@ String parentId = request.getParameter("ParentId"); + //鏄惁鍖呭惈VIP鐨勫垎绫� + boolean containsVIPType = false; + try { + List<Integer> vipTypeList = Arrays.asList(Constant.vipTypes); + containsVIPType = vipTypeList.contains(Integer.parseInt(parentId)); + } catch (Exception e) { + + } if (StringUtil.isNullOrEmpty(parentId)) { out.print(JsonUtil.loadFalseJson("璇蜂笂浼燩arentId")); return; @@ -612,9 +687,58 @@ list.add(vt); } + if (acceptData.getVersion() > 60) { // 20170915鍒犻櫎鎺ㄨ崘 + list.remove(0); + } + + } else if (containsVIPType) { + //VIP鍒嗙被 + + //VIP鏍瑰垎绫� + if (Constant.VIDEO_TYPE_VIP == Integer.parseInt(parentId)) { + VideoType type = new VideoType(Constant.VIDEO_TYPE_VIP); + type.setName("鍏ㄩ儴"); + type.setShow("1"); + type.setCategoryType("area"); + list.add(type); + + + type = new VideoType(Constant.VIDEO_TYPE_VIP_MOVIE); + type.setName("鐢靛奖"); + type.setShow("1"); + type.setCategoryType("area"); + list.add(type); + + type = new VideoType(Constant.VIDEO_TYPE_VIP_TV); + type.setName("鐢佃鍓�"); + type.setShow("1"); + type.setCategoryType("area"); + list.add(type); + + + type = new VideoType(Constant.VIDEO_TYPE_VIP_CARTOON); + type.setName("鍔ㄦ极"); + type.setShow("1"); + type.setCategoryType("area"); + list.add(type); + +// type = new VideoType(Constant.VIDEO_TYPE_VIP_SHOW); +// type.setName("缁艰壓"); +// type.setShow("1"); +// type.setCategoryType("area"); +// list.add(type); + } else { + VideoType type = new VideoType(Integer.parseInt(parentId)); + type.setName("鍏ㄩ儴"); + type.setShow("1"); + type.setCategoryType("area"); + list.add(type); + } + + } else { List<VideoType> clist = classService.getFirstTypeList(parentId); - list = new ArrayList<VideoType>(); + list = new ArrayList<>(); if (clist != null) for (VideoType vt : clist) list.add(vt); @@ -627,13 +751,14 @@ type.setShow("1"); type.setCategoryType("genre"); list.add(0, type); + if (acceptData.getVersion() > 60) { // 20170915鍒犻櫎鎺ㄨ崘 + list.remove(0); + } } for (int i = 0; i < list.size(); i++) { array.add(StringUtil.outPutResultJson(list.get(i))); } - if (acceptData.getVersion() > 60) { // 20170915鍒犻櫎鎺ㄨ崘 - array.remove(0); - } + object.put("count", array.size()); object.put("data", array); out.print(JsonUtil.loadTrueJson(object.toString())); @@ -746,6 +871,8 @@ if ("310".equals(typeid)) { // 310鍋氱殑鐗规畩澶勭悊:鍓嶇澶勭悊鐨勬槸HomeAd锛屾墍鏈夐渶瑕佽繑鍥瀐omeAD鐨勫舰寮� Object vi = json.get("VideoInfo"); json.put("Video", vi); + //璁剧疆banner鐨勬瘮渚� + object.put("bannerSizeRate", "0.56"); } json.put("LinkType", "1"); array.add(json); @@ -759,7 +886,7 @@ DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List<VideoInfo> rankList = categoryRecommendCacheVideoService.getVideoListByRank(Integer.parseInt(typeid), detailSystem.getId(), acceptData.getPlatform(), acceptData.getVersion()); - List<VideoInfo> list = new ArrayList<VideoInfo>(); + List<VideoInfo> list = new ArrayList<>(); list.addAll(rankList); for (VideoInfo vi : list) {// 娓呴櫎鏃犵敤鏁版嵁,闃叉娴垂甯﹀,鏇存敼鍥剧墖 vi.setIntroduction(""); -- Gitblit v1.8.0