From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 20 二月 2025 16:57:55 +0800 Subject: [PATCH] IOS广告增加区域屏蔽 --- src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java | 216 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 194 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java b/src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java index 5ccdcbb..dc803d3 100644 --- a/src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java +++ b/src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java @@ -1,17 +1,31 @@ package com.yeshi.buwan.controller.admin.api; import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import javax.annotation.Resource; +import com.google.common.base.Function; +import com.google.common.collect.Maps; import com.google.gson.Gson; -import com.yeshi.buwan.domain.SolrVideo; +import com.yeshi.buwan.domain.HomeVideo; +import com.yeshi.buwan.domain.VideoResource; +import com.yeshi.buwan.domain.solr.SolrAlbumVideo; +import com.yeshi.buwan.domain.solr.SolrShortVideo; +import com.yeshi.buwan.domain.video.InternetSearchVideo; +import com.yeshi.buwan.domain.video.VideoInfoExtra; import com.yeshi.buwan.dto.search.SolrResultDTO; +import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter; import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; -import com.yeshi.buwan.iqiyi.IqiYiNewAPI; -import com.yeshi.buwan.service.manager.SolrAlbumDataManager; +import com.yeshi.buwan.exception.video.IqiyiVideoSolrException; +import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; +import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; +import com.yeshi.buwan.service.imp.VideoResourceService; +import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; +import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; +import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; +import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager; +import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.vo.video.VideoAdminInfoVO; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -20,15 +34,12 @@ import org.springframework.web.bind.annotation.RequestMethod; import com.google.gson.GsonBuilder; -import com.yeshi.buwan.acFun.AcFunUtil; import com.yeshi.buwan.domain.VideoInfo; -import com.yeshi.buwan.iqiyi.util.IqiyiUtil; +import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; import com.yeshi.buwan.service.imp.ClassService; -import com.yeshi.buwan.service.imp.ResourceVideoService; import com.yeshi.buwan.service.imp.VideoManager; import com.yeshi.buwan.util.JsonUtil; import com.yeshi.buwan.util.StringUtil; -import com.yeshi.buwan.util.TimeUtil; import com.yeshi.buwan.web.tag.PageEntity; import net.sf.json.JSONArray; @@ -44,20 +55,35 @@ @Resource private ClassService classService; + @Resource - private ResourceVideoService resourceVideoService; + private VideoResourceService videoResourceService; @Resource private IqiyiUtil iqiyiUtil; - @Resource - private AcFunUtil acFunUtil; @Resource private ThreadPoolTaskExecutor taskExecutor; @Resource - private SolrAlbumDataManager solrAlbumDataManager; + private SolrAlbumVideoDataManager solrAlbumDataManager; + + @Resource + private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager; + + @Resource + private SolrShortVideoDataManager solrShortVideoDataManager; + + + @Resource + private VideoInfoExtraService videoInfoExtraService; + + @Resource + private Iqiyi2Service iqiyi2Service; + + @Resource + private IqiyiUtil2 iqiyiUtil2; @RequestMapping(value = "/changevideoshow", method = RequestMethod.POST) public void changeVideoShow(String id, int show, PrintWriter out) { @@ -85,7 +111,17 @@ } @RequestMapping(value = "/videolist", method = RequestMethod.POST) - public void videoList(int videotype, int page, String key, String resourceIds, int contenttype, PrintWriter out) { + public void videoList(int videotype, int page, String key, String type, String resourceIds, int fromtype, int contenttype, String freeType, String area, PrintWriter out) { + + if (StringUtil.isNullOrEmpty(type)) { + type = "name"; + } + + Integer freeTypeInt = null; + if (!StringUtil.isNullOrEmpty(freeType)) { + freeTypeInt = Integer.parseInt(freeType); + } + List<VideoInfo> list = null; long count = 0; @@ -93,7 +129,20 @@ //姝g墖鎼滅储 if (contenttype == 1) { SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); - filter.setKey(key); + + switch (type) { + case "name": + filter.setKey(key); + break; + case "actor": + filter.setActor(key); + break; + case "director": + filter.setDirector(key); + break; + } + + filter.setVideoType(videotype == 0 ? null : videotype); filter.setContentType(1); if (!StringUtil.isNullOrEmpty(resourceIds)) { @@ -102,16 +151,59 @@ for (int i = 0; i < array.size(); i++) { rids[i] = array.optString(i); } - filter.setResourceIds(rids); + filter.setResourceIds(Arrays.asList(rids)); } filter.setSortKey("updateTime"); - SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount); - if (dto.getVideoList() != null) - for (SolrVideo videoInfo : dto.getVideoList()) - voList.add(VideoAdminInfoVO.create(videoInfo)); - count = dto.getTotalCount(); + filter.setFreeType(freeTypeInt); + + filter.setArea(StringUtil.isNullOrEmpty(area) ? null : area.trim()); + + List<VideoResource> resourceList = videoResourceService.getResourceList(); + Map<Long, String> resourceMap = new HashMap<>(); + for (VideoResource vr : resourceList) { + resourceMap.put(Long.parseLong(vr.getId()), vr.getName()); + } + if (fromtype == HomeVideo.FROM_TYPE_LOCAL) { + SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount); + if (dto.getVideoList() != null) + for (SolrAlbumVideo videoInfo : (List<SolrAlbumVideo>) dto.getVideoList()) + voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); + count = dto.getTotalCount(); + } else if (fromtype == HomeVideo.FROM_TYPE_INTERNET) { + SolrResultDTO dto = solrInternetSearchVideoDataManager.find(filter, page, Constant.pageCount); + if (dto.getVideoList() != null) + for (InternetSearchVideo videoInfo : (List<InternetSearchVideo>) dto.getVideoList()) + voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); + count = dto.getTotalCount(); + } else if (fromtype == HomeVideo.FROM_TYPE_SHORT) { + SolrShortVideoSearchFilter shortFilter = new SolrShortVideoSearchFilter(); + shortFilter.setRootVideoType(filter.getVideoType()); + if (!StringUtil.isNullOrEmpty(key)) { + String[] keys = key.split(" "); + if (!StringUtil.isNullOrEmpty(keys[0])) + shortFilter.setTag(keys[0].trim()); + if (keys.length > 1) { + shortFilter.setKey(key.substring(key.indexOf(keys[0])).trim()); + } + } + + + if (!StringUtil.isNullOrEmpty(filter.getArea())) { + shortFilter.setAreas(Arrays.asList(new String[]{filter.getArea()})); + //鏌愪簺鐭棰戝垎绫讳负鏃ラ煩 + if (filter.getArea().equalsIgnoreCase("闊╁浗")) { + shortFilter.getAreas().add("鏃ラ煩"); + } + } + shortFilter.setFuzzy(true); + SolrResultDTO dto = solrShortVideoDataManager.find(shortFilter, page, Constant.pageCount); + if (dto.getVideoList() != null) + for (SolrShortVideo videoInfo : (List<SolrShortVideo>) dto.getVideoList()) + voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); + count = dto.getTotalCount(); + } } else { list = classService.getTypeVideoListAdmin(videotype == 0 ? "" : videotype + "", page, key, contenttype); @@ -120,6 +212,38 @@ for (VideoInfo videoInfo : list) voList.add(VideoAdminInfoVO.create(videoInfo)); } + + List<String> ids = new ArrayList<>(); + for (VideoAdminInfoVO a : voList) { + ids.add(a.getId()); + } + + List<VideoInfoExtra> extraList = videoInfoExtraService.listByIds(ids); + + Map<String, VideoInfoExtra> maps = Maps.uniqueIndex(extraList.iterator(), new Function<VideoInfoExtra, String>() { + @Override + public String apply(VideoInfoExtra extra) { + return extra.getId(); + } + }); + //杩囨护鍥剧墖 + for (VideoAdminInfoVO a : voList) { + VideoInfoExtra extra = maps.get(a.getId()); + if (extra != null) { + + if (a.getHpicture() != null) { + if (!StringUtil.isNullOrEmpty(extra.gethPosterPicture())) + a.setHpicture(extra.gethPosterPicture()); + } + + if (a.getVpicture() != null) { + if (!StringUtil.isNullOrEmpty(extra.getvPosterPicture())) + a.setVpicture(extra.getvPosterPicture()); + } + } + } + + JSONObject object = new JSONObject(); object.put("code", 0); JSONObject data = new JSONObject(); @@ -148,7 +272,18 @@ if (StringUtil.isNullOrEmpty(aid)) { out.print(JsonUtil.loadFalseAdmin("鏈兘鑾峰彇鍒颁笓杈�")); } else { - iqiyiUtil.updateAlbum(aid); + try { + iqiyi2Service.validAlbumSolrState(Long.parseLong(aid)); + iqiyiUtil2.syncByAid(Long.parseLong(aid),false); + } catch (IqiyiVideoSolrException e) { + if (e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_SAVE || + e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_EXIST || e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_ADD_TO_VIDEO) { + iqiyiUtil2.syncByAid(Long.parseLong(aid),false); + } else { + out.print(JsonUtil.loadFalseAdmin(e.getMsg())); + return; + } + } out.print(JsonUtil.loadTrueAdmin("涓撹緫鏇存柊鎴愬姛")); } } @@ -188,5 +323,42 @@ out.print(data); } + @RequestMapping("getVideoInfoExtra") + public void getVideoInfoExtra(String id, PrintWriter out) { + VideoInfoExtra extra = videoInfoExtraService.getById(id); + JSONObject object = new JSONObject(); + if (extra != null) { + object.put("code", 0); + object.put("data", new Gson().toJson(extra)); + } else { + object.put("code", 1); + object.put("msg", "鏃犻檮鍔犱俊鎭�"); + } + out.print(object); + } + + @RequestMapping("updateVideoInfoExtra") + public void updateVideoInfoExtra(String id, String vPicture, String hPicture, PrintWriter out) { + VideoInfoExtra extra = new VideoInfoExtra(); + extra.setId(id); + if (StringUtil.isNullOrEmpty(vPicture)) { + vPicture = ""; + } + + extra.setvPosterPicture(vPicture); + + if (StringUtil.isNullOrEmpty(hPicture)) { + hPicture = ""; + } + + extra.sethPosterPicture(hPicture); + + videoInfoExtraService.save(extra); + + JSONObject object = new JSONObject(); + object.put("code", 0); + out.print(object); + } + } -- Gitblit v1.8.0