From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 30 七月 2021 02:05:14 +0800
Subject: [PATCH] 爱奇艺视频更新

---
 src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java |   37 +++++++++++-
 src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java   |    6 ++
 src/main/java/com/yeshi/buwan/dto/mq/UpdateResourceVideoMQMsg.java    |   10 +++
 src/main/java/com/yeshi/buwan/util/SpringContext.java                 |   55 ++++++++++++++++++
 src/main/java/com/yeshi/buwan/util/mq/CMQManager.java                 |   30 +++++++++
 5 files changed, 133 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/dto/mq/UpdateResourceVideoMQMsg.java b/src/main/java/com/yeshi/buwan/dto/mq/UpdateResourceVideoMQMsg.java
index 785176c..8266dc8 100644
--- a/src/main/java/com/yeshi/buwan/dto/mq/UpdateResourceVideoMQMsg.java
+++ b/src/main/java/com/yeshi/buwan/dto/mq/UpdateResourceVideoMQMsg.java
@@ -7,6 +7,8 @@
     private Integer resourceId;
     private Date date;
 
+    private String handler;
+
     public UpdateResourceVideoMQMsg(String id, Integer resourceId, Date date) {
         this.id = id;
         this.resourceId = resourceId;
@@ -41,4 +43,12 @@
     public void setDate(Date date) {
         this.date = date;
     }
+
+    public String getHandler() {
+        return handler;
+    }
+
+    public void setHandler(String handler) {
+        this.handler = handler;
+    }
 }
diff --git a/src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java
index 475da62..2ecec45 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/juhe/Iqiyi2ServiceImpl.java
@@ -8,27 +8,36 @@
 import com.yeshi.buwan.domain.entity.PlayUrl;
 import com.yeshi.buwan.domain.system.SystemConfig;
 import com.yeshi.buwan.domain.video.AlbumVideoMap;
+import com.yeshi.buwan.dto.mq.UpdateResourceVideoMQMsg;
 import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
 import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
 import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2;
 import com.yeshi.buwan.iqiyi.util.IqiyiUtil;
 import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
 import com.yeshi.buwan.query.Iqiyi2AlbumQuery;
-import com.yeshi.buwan.service.imp.*;
+import com.yeshi.buwan.service.imp.CategoryVideoService;
+import com.yeshi.buwan.service.imp.ResourceVideoService;
+import com.yeshi.buwan.service.imp.VideoInfoService;
+import com.yeshi.buwan.service.imp.VideoResourceService;
 import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
 import com.yeshi.buwan.service.inter.system.SystemConfigService;
 import com.yeshi.buwan.util.StringUtil;
+import com.yeshi.buwan.util.ThreadUtil;
 import com.yeshi.buwan.util.TimeUtil;
 import com.yeshi.buwan.util.log.VideoLogFactory;
 import com.yeshi.buwan.util.mq.CMQManager;
-import com.yeshi.buwan.util.video.VideoConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 import java.util.regex.Pattern;
 
 @Service
@@ -69,7 +78,17 @@
         if (videoIqiyi2 == null)
             return null;
 
-        IqiyiAlbum2 album = iqiyiAlbum2Dao.get(videoIqiyi2.getIqiyiId());
+        final IqiyiAlbum2 album = iqiyiAlbum2Dao.get(videoIqiyi2.getIqiyiId());
+        if (album != null) {
+            ThreadUtil.run(new Runnable() {
+                @Override
+                public void run() {
+                    CMQManager.getInstance().addUpdateResourceVideoMsg(new UpdateResourceVideoMQMsg(album.getId() + "", IqiyiUtil2.RESOURCE_ID, new Date()));
+                }
+            });
+
+        }
+
         List<IqiyiAlbum2> album2List = new ArrayList<>();
         if (album.getFeatureAlbumId() > 0) {//鍗曡棰�
             album2List.add(album);
@@ -111,6 +130,16 @@
         iqiyiAlbum2Dao.save(album);
     }
 
+    @Override
+    public void offlineIqiyiAlbum(Long id) {
+        //鍒犻櫎涓撹緫
+        Query query = new Query();
+        query.addCriteria(new Criteria().orOperator(Criteria.where("id").is(id), Criteria.where("featureAlbumId").is(id)));
+        //鍒犻櫎涓撹緫涓嬬殑瑙嗛
+        iqiyiAlbum2Dao.delete(query);
+    }
+
+
     public boolean isUnNormalUpdateVideoName(String name) {
         SystemConfig config = systemConfigService.getConfigByKeyCache("iqiyi_update_video_name");
         if (config != null) {
diff --git a/src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java b/src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java
index 693d59f..85a8c7e 100644
--- a/src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java
+++ b/src/main/java/com/yeshi/buwan/service/inter/juhe/Iqiyi2Service.java
@@ -33,6 +33,12 @@
      */
     public void saveIqiyiAlbum(IqiyiAlbum2 album);
 
+    /**
+     * 涓撹緫涓嬬嚎
+     * @param id
+     */
+    public void offlineIqiyiAlbum(Long id);
+
 
     /**
      * 灏嗕笓杈戞坊鍔犲埌瑙嗛
diff --git a/src/main/java/com/yeshi/buwan/util/SpringContext.java b/src/main/java/com/yeshi/buwan/util/SpringContext.java
index abcd8df..5446fad 100644
--- a/src/main/java/com/yeshi/buwan/util/SpringContext.java
+++ b/src/main/java/com/yeshi/buwan/util/SpringContext.java
@@ -1,13 +1,17 @@
 package com.yeshi.buwan.util;
 
 import com.alibaba.druid.pool.DruidDataSource;
+import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyi2Dao;
 import com.yeshi.buwan.domain.ResourceVideo;
 import com.yeshi.buwan.domain.VideoInfo;
 import com.yeshi.buwan.domain.VideoResource;
 import com.yeshi.buwan.domain.video.InternetSearchVideo;
 import com.yeshi.buwan.dto.mq.*;
 import com.yeshi.buwan.funtv.entity.FunTVAlbum2;
+import com.yeshi.buwan.iqiyi.IqiYiNewAPI;
 import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2;
+import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2;
+import com.yeshi.buwan.iqiyi.util.IqiyiUtil2;
 import com.yeshi.buwan.pptv.entity.PPTVSeries;
 import com.yeshi.buwan.service.imp.JobThreadExecutorServiceImpl;
 import com.yeshi.buwan.service.imp.ResourceVideoService;
@@ -92,6 +96,7 @@
             doDeleteVideoResource();
             doUpdateVideoExtraInfo();
             doInternetSearchVideoUpdateJob();
+            doUpdateResourceVideoJob();
         }
     }
 
@@ -162,6 +167,56 @@
     }
 
 
+    @Resource
+    private RedisManager redisManager;
+
+    @Resource
+    private VideoIqiyi2Dao videoIqiyi2Dao;
+
+    private void doUpdateResourceVideoJob() {
+        for (int i = 0; i < 1; i++) {
+            new JobThreadExecutorServiceImpl().run(new Runnable() {
+                @Override
+                public void run() {
+                    List<UpdateResourceVideoMQMsg> msgList = CMQManager.getInstance().consumeUpdateResourceVideoMsg(16);
+                    if (msgList != null)
+                        for (UpdateResourceVideoMQMsg videoMQMsg : msgList) {
+                            try {
+                                if (videoMQMsg != null) {
+                                    String key = "resourcevideo-update-" + StringUtil.Md5(videoMQMsg.getResourceId() + "#" + videoMQMsg.getId());
+                                    //鍙互鏇存柊
+                                    if (StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+                                        switch (videoMQMsg.getResourceId()) {
+                                            case IqiyiUtil2
+                                                    .RESOURCE_ID:
+                                                //redis鏌ヨ鏄惁鏇存柊杩�
+                                                IqiyiAlbum2 iqiyiAlbum2 = IqiYiNewAPI.getAlbumOrVideoDetail(Long.parseLong(videoMQMsg.getId()));
+                                                if (iqiyiAlbum2 == null) {
+                                                    VideoIqiyi2 videoIqiyi2 = videoIqiyi2Dao.selectByIqiyiId(Long.parseLong(videoMQMsg.getId()));
+                                                    if (videoIqiyi2 != null) {
+                                                        //涓嬫灦
+                                                        resourceVideoService.delete(videoIqiyi2.getVideoId() + "", videoMQMsg.getResourceId() + "");
+                                                    }
+                                                }
+                                                //鍒犻櫎鐖卞鑹鸿祫婧�
+                                                iqiyi2Service.offlineIqiyiAlbum(Long.parseLong(videoMQMsg.getId()));
+                                                break;
+                                        }
+                                        //12灏忔椂鍐呬笉鍐嶆洿鏂�
+                                        redisManager.cacheCommonString(key, "1", 60 * 60 * 12);
+                                    }
+                                }
+                            } catch (Exception e) {
+                            } finally {
+                                CMQManager.getInstance().deleteUpdateResourceVideoMsg(videoMQMsg.getHandler());
+                            }
+                        }
+                }
+            });
+        }
+    }
+
+
     private void doAddIqiyi2Video() {
         new JobThreadExecutorServiceImpl().run(new Runnable() {
             @Override
diff --git a/src/main/java/com/yeshi/buwan/util/mq/CMQManager.java b/src/main/java/com/yeshi/buwan/util/mq/CMQManager.java
index a9943a8..146daa3 100644
--- a/src/main/java/com/yeshi/buwan/util/mq/CMQManager.java
+++ b/src/main/java/com/yeshi/buwan/util/mq/CMQManager.java
@@ -32,6 +32,7 @@
     //鍏ㄧ綉鎼�
     public static String QUEUENAME_UPDATE_INTERNET_SEARCH = "buwan-video-update-internet-search";
 
+    public static String QUEUENAME_UPDATE_RESOURCE_VIDEO = "buwan-video-update-resource-video";
 
     private static String TOPIC_VIDEO_EXTRAINFO = "buwan_topic_video_extrainfo_change";
 
@@ -46,6 +47,7 @@
         cmqUtil.createQueue(QUEUENAME_VIDEO_RESOURCE_DELETE, 1024 * 1024);
         cmqUtil.createQueue(QUEUENAME_UPDATE_VIDEO_EXTRAINFO, 1024 * 1024);
         cmqUtil.createQueue(QUEUENAME_UPDATE_INTERNET_SEARCH, 1024 * 1024);
+        cmqUtil.createQueue(QUEUENAME_UPDATE_RESOURCE_VIDEO, 1024 * 1024);
 
         //鍒涘缓涓婚
         cmqUtil.createTopic(TOPIC_VIDEO_EXTRAINFO);
@@ -263,6 +265,32 @@
         cmqUtil.deleteMsg(QUEUENAME_UPDATE_INTERNET_SEARCH, handler);
     }
 
-//    public void
+    /**
+     * 瑙嗛鏉ユ簮鏇存柊
+     *
+     * @param msg
+     */
+    public void addUpdateResourceVideoMsg(UpdateResourceVideoMQMsg msg) {
+        cmqUtil.sendMsg(QUEUENAME_UPDATE_RESOURCE_VIDEO, new Gson().toJson(msg));
+    }
+
+    public void deleteUpdateResourceVideoMsg(String handler) {
+        cmqUtil.deleteMsg(QUEUENAME_UPDATE_RESOURCE_VIDEO, handler);
+    }
+
+
+    public List<UpdateResourceVideoMQMsg> consumeUpdateResourceVideoMsg(int count) {
+        Gson gson = new Gson();
+        List<UpdateResourceVideoMQMsg> list = new ArrayList<>();
+        List<Message> msgList = cmqUtil.recieveMsg(count, QUEUENAME_UPDATE_RESOURCE_VIDEO);
+        if (msgList != null)
+            for (Message msg : msgList) {
+                UpdateResourceVideoMQMsg mm = gson.fromJson(msg.msgBody, UpdateResourceVideoMQMsg.class);
+                mm.setHandler(msg.receiptHandle);
+                list.add(mm);
+            }
+        return list;
+    }
+
 
 }

--
Gitblit v1.8.0