From 745320cbb4edfa4fbc8f0f95483a4ee7893d5769 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 22 四月 2021 20:18:08 +0800
Subject: [PATCH] 3.9.2完善

---
 src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java |  199 +++++++++++++++++++++++++++++--------------------
 1 files changed, 119 insertions(+), 80 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java
index 7d48717..9af1335 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/juhe/PPTVServiceImpl.java
@@ -23,6 +23,7 @@
 import com.yeshi.buwan.service.imp.VideoTypeService;
 import com.yeshi.buwan.service.inter.juhe.PPTVService;
 import com.yeshi.buwan.util.mq.CMQManager;
+import com.yeshi.buwan.util.video.VideoConstant;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
@@ -66,97 +67,114 @@
         if (series.getSeries() == null || series.getSeries().size() <= 0)
             return;
 
-        VideoInfo newVideoInfo = PPTVUtil.convertToVideoInfo(series);
-        if (newVideoInfo == null)
+        List<PPTVUtil.VideoConvertResult> newVideoInfoList = PPTVUtil.convertToVideoInfo(series);
+        if (newVideoInfoList == null)
             return;
 
-        VideoType videoType = videoTypeService.getVideoType(newVideoInfo.getVideoType().getId());
-        if (videoType.getParent() != null)
-            newVideoInfo.setVideoType(videoType.getParent());
+        for (PPTVUtil.VideoConvertResult newVideoInfoResult : newVideoInfoList) {
+            VideoInfo newVideoInfo = newVideoInfoResult.videoInfo;
 
-        VideoPPTVMap videoPPTV = videoPPTVMapDao.selectByInfoId(series.getInfoID());
-        if (videoPPTV != null) {//娓犻亾瑙嗛宸茬粡瀛樺湪
-            VideoInfo videoInfo = videoInfoService.getVideoInfo(videoPPTV.getVideoId() + "");
-            if (videoInfo == null)
-                return;
-            newVideoInfo.setId(videoInfo.getId());
-            if (!newVideoInfo.getTag().equalsIgnoreCase(videoInfo.getTag())) {
-                newVideoInfo.setCreatetime(videoInfo.getCreatetime());
-                //鏇存柊淇℃伅tag淇℃伅
-                videoInfo.setVideocount(newVideoInfo.getVideocount());
-                videoInfo.setTag(newVideoInfo.getTag());
-                videoInfo.setPicture(newVideoInfo.getPicture());
-                videoInfo.setHpicture(newVideoInfo.getHpicture());
-                videoInfo.setVpicture(newVideoInfo.getVpicture());
-                videoInfo.setShow(newVideoInfo.getShow());
-                videoInfo.setVideoType(newVideoInfo.getVideoType());
-                videoInfoDao.update(videoInfo);
-            }
-        } else {//瑙嗛涓嶅瓨鍦�
-            //鍒ゆ柇2涓棰戝疄浣撴槸鍚︿负鍚屼竴瑙嗛
-            VideoInfo oldVideo = videoInfoService.getExistSameVideoWithDirector(newVideoInfo);
-            if (oldVideo == null) {
-                //娣诲姞瑙嗛
-                Serializable id = videoInfoDao.save(newVideoInfo);
-                newVideoInfo.setId(id + "");
-            } else {//涓哄悓涓�瑙嗛
-                //鏇存柊tag
-                newVideoInfo.setId(oldVideo.getId());
-                oldVideo.setVideocount(newVideoInfo.getVideocount());
-                oldVideo.setTag(newVideoInfo.getTag());
-                oldVideo.setPicture(newVideoInfo.getPicture());
-                oldVideo.setHpicture(newVideoInfo.getHpicture());
-                oldVideo.setVpicture(newVideoInfo.getVpicture());
-                oldVideo.setShow(newVideoInfo.getShow());
-                oldVideo.setVideoType(newVideoInfo.getVideoType());
-                videoInfoDao.update(oldVideo);
+            VideoType videoType = videoTypeService.getVideoType(newVideoInfo.getVideoType().getId());
+            if (videoType.getParent() != null)
+                newVideoInfo.setVideoType(videoType.getParent());
+
+            VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery();
+            daoQuery.programCode = newVideoInfoResult.programCode;
+            daoQuery.infoId = series.getInfoID();
+            List<VideoPPTVMap> videoPPTVMapList = videoPPTVMapDao.list(daoQuery);
+            VideoPPTVMap videoPPTV = null;
+            if (videoPPTVMapList != null && videoPPTVMapList.size() > 0)
+                videoPPTV = videoPPTVMapList.get(0);
+
+            if (videoPPTV != null) {//娓犻亾瑙嗛宸茬粡瀛樺湪
+                VideoInfo videoInfo = videoInfoService.getVideoInfo(videoPPTV.getVideoId() + "");
+                if (videoInfo == null)
+                    return;
+                newVideoInfo.setId(videoInfo.getId());
+                if (!newVideoInfo.getTag().equalsIgnoreCase(videoInfo.getTag())) {
+                    newVideoInfo.setCreatetime(videoInfo.getCreatetime());
+                    //鏇存柊淇℃伅tag淇℃伅
+                    videoInfo.setVideocount(newVideoInfo.getVideocount());
+                    videoInfo.setTag(newVideoInfo.getTag());
+                    videoInfo.setPicture(newVideoInfo.getPicture());
+                    videoInfo.setHpicture(newVideoInfo.getHpicture());
+                    videoInfo.setVpicture(newVideoInfo.getVpicture());
+                    videoInfo.setShow(newVideoInfo.getShow());
+                    videoInfo.setVideoType(newVideoInfo.getVideoType());
+                    videoInfoDao.update(videoInfo);
+                }
+            } else {//瑙嗛涓嶅瓨鍦�
+                //鍒ゆ柇2涓棰戝疄浣撴槸鍚︿负鍚屼竴瑙嗛
+                VideoInfo oldVideo = videoInfoService.getExistSameVideoWithDirector(newVideoInfo);
+                if (oldVideo == null) {
+                    //娣诲姞瑙嗛
+                    Serializable id = videoInfoDao.save(newVideoInfo);
+                    newVideoInfo.setId(id + "");
+                } else {//涓哄悓涓�瑙嗛
+                    //鏇存柊tag
+                    newVideoInfo.setId(oldVideo.getId());
+                    oldVideo.setVideocount(newVideoInfo.getVideocount());
+                    oldVideo.setTag(newVideoInfo.getTag());
+                    oldVideo.setPicture(newVideoInfo.getPicture());
+                    oldVideo.setHpicture(newVideoInfo.getHpicture());
+                    oldVideo.setVpicture(newVideoInfo.getVpicture());
+                    oldVideo.setShow(newVideoInfo.getShow());
+                    oldVideo.setVideoType(newVideoInfo.getVideoType());
+                    videoInfoDao.update(oldVideo);
+                }
+
+                //鍔犲叆涓撹緫瑙嗛鏄犲皠
+                AlbumVideoMap map = new AlbumVideoMap();
+                map.setId(newVideoInfo.getId());
+                map.setCreateTime(new Date());
+                map.setVideoId(newVideoInfo.getId());
+                map.setRootVideoType(newVideoInfo.getVideoType().getId());
+                map.setVideoCount(newVideoInfo.getVideocount());
+                albumVideoMapDao.save(map);
+
+                //鍔犲叆鏄犲皠
+                VideoPPTVMap vi = new VideoPPTVMap();
+                vi.setInfoId(series.getInfoID());
+                vi.setVideoId(newVideoInfo.getId());
+                vi.setCreateTime(new Date());
+                vi.setSeriesCode(series.getSeriesCode());
+                vi.setProgramCode(newVideoInfoResult.programCode);
+                videoPPTVMapDao.save(vi);
             }
 
-            //鍔犲叆涓撹緫瑙嗛鏄犲皠
-            AlbumVideoMap map = new AlbumVideoMap();
-            map.setId(newVideoInfo.getId());
-            map.setCreateTime(new Date());
-            map.setVideoId(newVideoInfo.getId());
-            map.setRootVideoType(newVideoInfo.getVideoType().getId());
-            map.setVideoCount(newVideoInfo.getVideocount());
-            albumVideoMapDao.save(map);
+            //娣诲姞瑙嗛璧勬簮闄勫姞淇℃伅
+            VideoResourceMapExtraInfo vrm = new VideoResourceMapExtraInfo(newVideoInfo.getId(), (long) PPTVUtil.RESOURCE_ID);
+            VideoResourceMapExtraInfo extra = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, vrm.getId());
+            if (extra == null) {
+                vrm.setFree(Integer.parseInt(series.getFree()));
+                vrm.setCreateTime(new Date());
+                videoResourceMapExtraInfoDao.save(vrm);
+            } else {//鏇存柊
+                extra.setFree(Integer.parseInt(series.getFree()));
+                extra.setUpdateTime(new Date());
+                videoResourceMapExtraInfoDao.update(extra);
+            }
 
-            //鍔犲叆鏄犲皠
-            VideoPPTVMap vi = new VideoPPTVMap();
-            vi.setInfoId(series.getInfoID());
-            vi.setVideoId(newVideoInfo.getId());
-            vi.setCreateTime(new Date());
-            videoPPTVMapDao.save(vi);
+            //娣诲姞瑙嗛鏉ユ簮鏄犲皠
+            resourceVideoService.addVideoResource(newVideoInfo.getId(), PPTVUtil.RESOURCE_ID + "");
+            //娣诲姞瑙嗛鍒嗙被鏄犲皠
+            categoryVideoService.addCategoryVideo(newVideoInfo.getId(), videoType.getId());
+            CMQManager.getInstance().addSolrMsg(newVideoInfo.getId());
         }
-
-        //娣诲姞瑙嗛璧勬簮闄勫姞淇℃伅
-        VideoResourceMapExtraInfo vrm = new VideoResourceMapExtraInfo(newVideoInfo.getId(), (long) PPTVUtil.RESOURCE_ID);
-        VideoResourceMapExtraInfo extra = videoResourceMapExtraInfoDao.find(VideoResourceMapExtraInfo.class, vrm.getId());
-        if (extra == null) {
-            vrm.setFree(Integer.parseInt(series.getFree()));
-            vrm.setCreateTime(new Date());
-            videoResourceMapExtraInfoDao.save(vrm);
-        } else {//鏇存柊
-            extra.setFree(Integer.parseInt(series.getFree()));
-            extra.setUpdateTime(new Date());
-            videoResourceMapExtraInfoDao.update(extra);
-        }
-
-        //娣诲姞瑙嗛鏉ユ簮鏄犲皠
-        resourceVideoService.addVideoResource(newVideoInfo.getId(), PPTVUtil.RESOURCE_ID + "");
-        //娣诲姞瑙嗛鍒嗙被鏄犲皠
-        categoryVideoService.addCategoryVideo(newVideoInfo.getId(), videoType.getId());
-        CMQManager.getInstance().addSolrMsg(newVideoInfo.getId());
     }
 
     @Override
     public void offLineSeries(String infoId) {
+        VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery();
+        daoQuery.infoId = infoId;
         //鏌ヨ鍑哄搴旂殑瑙嗛ID
-        VideoPPTVMap map = videoPPTVMapDao.selectByInfoId(infoId);
-        if (map == null)
+        List<VideoPPTVMap> mapList = videoPPTVMapDao.list(daoQuery);
+        if (mapList == null || mapList.size() == 0)
             return;
-        videoPPTVMapDao.deleteByPrimaryKey(map.getVideoId());
-        resourceVideoService.delete(map.getVideoId() + "", PPTVUtil.RESOURCE_ID + "");
+        for (VideoPPTVMap map : mapList) {
+            videoPPTVMapDao.deleteByPrimaryKey(map.getVideoId());
+            resourceVideoService.delete(map.getVideoId() + "", PPTVUtil.RESOURCE_ID + "");
+        }
     }
 
     @Override
@@ -261,6 +279,12 @@
     }
 
     @Override
+    public VideoPPTVMap getVideoPPTVMapByVideoId(String videoId) {
+        VideoPPTVMap map = videoPPTVMapDao.get(videoId);
+        return map;
+    }
+
+    @Override
     public PPTVProgram selectProgramById(String id) {
         return pptvProgramDao.get(id);
     }
@@ -278,8 +302,14 @@
     }
 
     @Override
-    public VideoPPTVMap selectVideoPPTVMapByInfoId(String infoId) {
-        return videoPPTVMapDao.selectByInfoId(infoId);
+    public VideoPPTVMap selectVideoPPTVMapByPPInfo(String infoId, String programCode) {
+        VideoPPTVMapDao.DaoQuery daoQuery = new VideoPPTVMapDao.DaoQuery();
+        daoQuery.infoId = infoId;
+        daoQuery.programCode = programCode;
+        List<VideoPPTVMap> list = videoPPTVMapDao.list(daoQuery);
+        if (list == null || list.size() == 0)
+            return null;
+        return list.get(0);
     }
 
     @Override
@@ -304,6 +334,15 @@
     }
 
     @Override
+    public void updateProgramGoodsInfo(String vid, PPTVGoodsInfo goodsInfo) {
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(vid));
+        Update update = new Update();
+        update.set("goodsInfo", goodsInfo);
+        pptvProgramDao.update(query, update);
+    }
+
+    @Override
     public void syncSeries(String cid) {
         PPTVSeries series = PPTVApiUtil.getDetail(cid);
         if (series != null) {

--
Gitblit v1.8.0