From f788607ff771a47bc60d6a86e00b3433c40f3d2c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 九月 2021 15:22:03 +0800
Subject: [PATCH] 接入视频直播

---
 src/main/java/com/yeshi/buwan/util/SpringContext.java |  121 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 116 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/util/SpringContext.java b/src/main/java/com/yeshi/buwan/util/SpringContext.java
index b55bb4f..8de95c9 100644
--- a/src/main/java/com/yeshi/buwan/util/SpringContext.java
+++ b/src/main/java/com/yeshi/buwan/util/SpringContext.java
@@ -1,23 +1,33 @@
 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.entity.IqiyiAlbum2;
-import com.yeshi.buwan.pptv.entity.PPTVSeries;
+import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2;
+import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI;
+import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2;
+import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2;
+import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2;
+import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
 import com.yeshi.buwan.service.imp.JobThreadExecutorServiceImpl;
 import com.yeshi.buwan.service.imp.ResourceVideoService;
 import com.yeshi.buwan.service.imp.VideoInfoService;
 import com.yeshi.buwan.service.inter.juhe.FunTV2Service;
+import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
 import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service;
 import com.yeshi.buwan.service.inter.juhe.PPTVService;
-import com.yeshi.buwan.service.manager.SolrAlbumDataManager;
+import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
+import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager;
 import com.yeshi.buwan.util.mq.CMQManager;
+import io.seata.rm.datasource.DataSourceProxy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationListener;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.stereotype.Component;
 
@@ -37,10 +47,13 @@
     private VideoInfoService videoInfoService;
 
     @Resource
-    private SolrAlbumDataManager solrDataManager;
+    private SolrAlbumVideoDataManager solrDataManager;
 
     @Resource
     private Iqiyi2Service iqiyi2Service;
+
+    @Resource
+    private IqiyiUtil2 iqiyiUtil2;
 
     @Resource
     private FunTV2Service funTV2Service;
@@ -50,6 +63,7 @@
 
     @Resource
     private PPTVService pptvService;
+
 
     private static boolean isInited = false;
 
@@ -61,6 +75,12 @@
             onApplication(arg0);
         }
     }
+
+    @Bean
+    public DataSourceProxy dataSourceProxy(DruidDataSource druidDataSource) {
+        return new DataSourceProxy(druidDataSource);
+    }
+
 
     private synchronized void onApplication(ContextRefreshedEvent context) {
         if (!isInited) {
@@ -76,8 +96,11 @@
             doSolrJob();
             doAddIqiyi2Video();
             doAddFunTV2Video();
+            doAddPPTVVideo();
             doDeleteVideoResource();
             doUpdateVideoExtraInfo();
+            doInternetSearchVideoUpdateJob();
+            doUpdateResourceVideoJob();
         }
     }
 
@@ -103,10 +126,97 @@
                                         solrDataManager.saveOrUpdate(videoInfo);
                                     } else
                                         solrDataManager.deleteById(videoInfo.getId());
+                                } else {//瑙嗛宸茬粡鍒犻櫎
+                                    solrDataManager.deleteById(solrVideo.getId());
                                 }
                                 CMQManager.getInstance().deleteSolrMsg(solrVideo.getHandler());
                             } catch (Exception e) {
                                 logger.error("娣诲姞鍒版悳绱㈠紩鎿庡嚭閿�", e);
+                            }
+                        }
+                }
+            });
+        }
+    }
+
+
+    @Resource
+    private InternetSearchVideoService internetSearchVideoService;
+
+    @Resource
+    private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager;
+
+    private void doInternetSearchVideoUpdateJob() {
+        for (int i = 0; i < 1; i++) {
+            new JobThreadExecutorServiceImpl().run(new Runnable() {
+                @Override
+                public void run() {
+                    List<InternetSearchVideoMQMsg> solrMsgList = CMQManager.getInstance().consumeInternetSearchVideoUpdateMsg(16);
+                    if (solrMsgList != null)
+                        for (InternetSearchVideoMQMsg solrVideo : solrMsgList) {
+                            try {
+                                InternetSearchVideo video = internetSearchVideoService.selectByPrimaryKey(solrVideo.getId());
+                                if (video != null)
+                                    solrInternetSearchVideoDataManager.saveOrUpdate(video);
+                                else
+                                    solrInternetSearchVideoDataManager.deleteById(video.getId());
+                                CMQManager.getInstance().deleteInternetSearchVideoUpdateMsg(solrVideo.getHandler());
+                            } catch (Exception e) {
+                                logger.error("鏇存柊鍏ㄧ綉鎼滄悳绱㈠紩鎿庡嚭閿�", e);
+                            }
+                        }
+                }
+            });
+        }
+    }
+
+
+    @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))) {
+                                        //12灏忔椂鍐呬笉鍐嶆洿鏂�
+                                        redisManager.cacheCommonString(key, "1", 60 * 60 * 12);
+                                        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()));
+                                                } else {
+                                                    //淇濆瓨
+                                                    iqiyiUtil2.syncByAid(iqiyiAlbum2.getId(),false);
+                                                }
+                                                break;
+                                        }
+
+                                    }
+                                }
+                            } catch (Exception e) {
+                            } finally {
+                                CMQManager.getInstance().deleteUpdateResourceVideoMsg(videoMQMsg.getHandler());
                             }
                         }
                 }
@@ -189,6 +299,7 @@
                             }
                             CMQManager.getInstance().deletePPTVSeriesUpdateMsg(pptvmqMsg.getHandler());
                         } catch (Exception e) {
+                            e.printStackTrace();
                             logger.error("PPTV娣诲姞鍒拌棰戝嚭閿欙細" + e.getMessage());
                             logger.error("infoId:" + pptvmqMsg.getInfoId());
                         }

--
Gitblit v1.8.0