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