From b41a6efe17ba61d150c5a9b7309651cebae54e0d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 03 九月 2021 16:40:43 +0800 Subject: [PATCH] 韩迷TV相关bug修改,电视直播完善(后台+前端API) --- src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java | 196 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 175 insertions(+), 21 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 261d523..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,10 +111,15 @@ } @RequestMapping(value = "/videolist", method = RequestMethod.POST) - public void videoList(int videotype, int page, String key, String type, 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); } @@ -120,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); @@ -138,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(); @@ -166,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("涓撹緫鏇存柊鎴愬姛")); } } @@ -206,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