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