From cd7767932dddeaf6d9c73a83d4a9b38f0341b77f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 28 一月 2022 12:46:17 +0800 Subject: [PATCH] bug修复 --- src/main/java/com/yeshi/buwan/controller/admin/api/VideoAdminController.java | 404 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 303 insertions(+), 101 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 69c0750..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,26 +1,45 @@ package com.yeshi.buwan.controller.admin.api; import java.io.PrintWriter; -import java.util.List; +import java.util.*; import javax.annotation.Resource; -import com.yeshi.buwan.iqiyi.IqiYiNewAPI; +import com.google.common.base.Function; +import com.google.common.collect.Maps; +import com.google.gson.Gson; +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.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; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; 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; @@ -30,101 +49,247 @@ @RequestMapping("admin/new/api/video") public class VideoAdminController { - @Resource - private VideoManager videoManager; + @Resource + private VideoManager videoManager; - @Resource - private ClassService classService; + @Resource + private ClassService classService; - @Resource - private ResourceVideoService resourceVideoService; - @Resource - private IqiyiUtil iqiyiUtil; + @Resource + private VideoResourceService videoResourceService; - @Resource - private AcFunUtil acFunUtil; + @Resource + private IqiyiUtil iqiyiUtil; - @Resource - private ThreadPoolTaskExecutor taskExecutor; - @RequestMapping(value = "/changevideoshow", method = RequestMethod.POST) - public void changeVideoShow(String id, int show, PrintWriter out) { - VideoInfo vi = videoManager.getVideoInfo(id); - if (vi != null) { - vi.setShow(show + ""); - videoManager.changeVideoShow(vi); - } - JSONObject object = new JSONObject(); - object.put("code", 0); - object.put("msg", "淇敼鎴愬姛"); - out.print(object); - } + @Resource + private ThreadPoolTaskExecutor taskExecutor; - @RequestMapping(value = "/deletevideo", method = RequestMethod.POST) - public void deleteVideo(String id, PrintWriter out) { - String[] ids = id.split(","); - for (String idStr : ids) - videoManager.deleteVideo(idStr); + @Resource + private SolrAlbumVideoDataManager solrAlbumDataManager; - JSONObject object = new JSONObject(); - object.put("code", 0); - object.put("msg", "鍒犻櫎鎴愬姛"); - out.print(object); - } + @Resource + private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager; - @RequestMapping(value = "/videolist", method = RequestMethod.POST) - public void videoList(int videotype, int page, String key, int contenttype, PrintWriter out) { - List<VideoInfo> list = classService.getTypeVideoListAdmin(videotype == 0 ? "" : videotype + "", page, key, - contenttype); - long count = classService.getTypeVideoListAdminCount(videotype == 0 ? "" : videotype + "", key, contenttype); - JSONObject object = new JSONObject(); - object.put("code", 0); - JSONObject data = new JSONObject(); - JSONArray array = new JSONArray(); - for (VideoInfo vi : list) { - JSONObject item = new JSONObject(); - item.put("id", vi.getId()); - item.put("name", vi.getName()); - item.put("picture", vi.getHpicture()); - item.put("updatetime", - TimeUtil.getGernalTime( - Long.parseLong( - StringUtil.isNullOrEmpty(vi.getCreatetime() + "") ? "0" : vi.getCreatetime() + ""), - "yyyy-MM-dd")); - item.put("show", vi.getShow()); - array.add(item); - } - PageEntity entity = new PageEntity(); - entity.setPageIndex(page); - entity.setPageSize(20); - entity.setTotalCount((int) count); + @Resource + private SolrShortVideoDataManager solrShortVideoDataManager; - data.put("pageEntity", new GsonBuilder().create().toJson(entity)); - data.put("data", array); - object.put("data", data); - out.println(object); - } - @RequestMapping("updateVideos") - public void updateVideos(PrintWriter out) { - iqiyiUtil.updateAll(""); - out.print(JsonUtil.loadTrueAdmin("鎵ц鎴愬姛")); - } + @Resource + private VideoInfoExtraService videoInfoExtraService; - @RequestMapping("updateIqiyiAlbum") - public void updateIqiyiAlbum(String url, PrintWriter out) { - String aid = IqiYiNewAPI.getAidByUrl(url); - if (StringUtil.isNullOrEmpty(aid)) { - out.print(JsonUtil.loadFalseAdmin("鏈兘鑾峰彇鍒颁笓杈�")); - } else { - iqiyiUtil.updateAlbum(aid); - out.print(JsonUtil.loadTrueAdmin("涓撹緫鏇存柊鎴愬姛")); - } - } + @Resource + private Iqiyi2Service iqiyi2Service; - @RequestMapping("addIqiyiShortVideo") - public void addIqiyiShortVideo(String urlJson, PrintWriter out) { + @Resource + private IqiyiUtil2 iqiyiUtil2; + + @RequestMapping(value = "/changevideoshow", method = RequestMethod.POST) + public void changeVideoShow(String id, int show, PrintWriter out) { + VideoInfo vi = videoManager.getVideoInfo(id); + if (vi != null) { + vi.setShow(show + ""); + videoManager.changeVideoShow(vi); + } + JSONObject object = new JSONObject(); + object.put("code", 0); + object.put("msg", "淇敼鎴愬姛"); + out.print(object); + } + + @RequestMapping(value = "/deletevideo", method = RequestMethod.POST) + public void deleteVideo(String id, PrintWriter out) { + String[] ids = id.split(","); + for (String idStr : ids) + videoManager.deleteVideo(idStr); + + JSONObject object = new JSONObject(); + object.put("code", 0); + object.put("msg", "鍒犻櫎鎴愬姛"); + out.print(object); + } + + @RequestMapping(value = "/videolist", method = RequestMethod.POST) + 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; + List<VideoAdminInfoVO> voList = new ArrayList<>(); + //姝g墖鎼滅储 + if (contenttype == 1) { + SolrVideoSearchFilter filter = new SolrVideoSearchFilter(); + + 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)) { + JSONArray array = JSONArray.fromObject(resourceIds); + String[] rids = new String[array.size()]; + for (int i = 0; i < array.size(); i++) { + rids[i] = array.optString(i); + } + filter.setResourceIds(Arrays.asList(rids)); + } + + filter.setSortKey("updateTime"); + + 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); + count = classService.getTypeVideoListAdminCount(videotype == 0 ? "" : videotype + "", key, contenttype); + if (list != null) + 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(); + JSONArray array = new JSONArray(); + + PageEntity entity = new PageEntity(); + entity.setPageIndex(page); + entity.setPageSize(20); + entity.setTotalCount((int) count); + + data.put("pageEntity", new GsonBuilder().create().toJson(entity)); + data.put("data", new Gson().toJson(voList)); + object.put("data", data); + out.println(object); + } + + @RequestMapping("updateVideos") + public void updateVideos(PrintWriter out) { + iqiyiUtil.updateAll(""); + out.print(JsonUtil.loadTrueAdmin("鎵ц鎴愬姛")); + } + + @RequestMapping("updateIqiyiAlbum") + public void updateIqiyiAlbum(String url, PrintWriter out) { + String aid = IqiYiNewAPI.getAidByUrl(url); + if (StringUtil.isNullOrEmpty(aid)) { + out.print(JsonUtil.loadFalseAdmin("鏈兘鑾峰彇鍒颁笓杈�")); + } else { + 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("涓撹緫鏇存柊鎴愬姛")); + } + } + + @RequestMapping("addIqiyiShortVideo") + public void addIqiyiShortVideo(String urlJson, PrintWriter out) { // JSONArray array = JSONArray.fromObject(urlJson); // int count = 0; // for (int i = 0; i < array.size(); i++) { @@ -143,20 +308,57 @@ // iqiyiUtil.updateAlbum(aid); // out.print(JsonUtil.loadTrueAdmin("涓撹緫鏇存柊鎴愬姛")); // } - } + } - @RequestMapping("iqiyiUpdate") - public void iqiyiUpdate(PrintWriter out) { - taskExecutor.execute(new Runnable() { - @Override - public void run() { - iqiyiUtil.updateAll(""); - } - }); - JSONObject data = new JSONObject(); - data.put("msg", "姝e湪鍚庡彴鏇存柊涓�"); - out.print(data); - } + @RequestMapping("iqiyiUpdate") + public void iqiyiUpdate(PrintWriter out) { + taskExecutor.execute(new Runnable() { + @Override + public void run() { + iqiyiUtil.updateAll(""); + } + }); + JSONObject data = new JSONObject(); + data.put("msg", "姝e湪鍚庡彴鏇存柊涓�"); + 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