From ab35ac8b769b2d9816dffb33a64f2c6f7bd5dd6e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 05 九月 2024 17:05:55 +0800
Subject: [PATCH] 风行网页版爬虫

---
 src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java
index 43b487b..d07f85f 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java
@@ -9,6 +9,7 @@
 import com.yeshi.buwan.service.inter.system.SystemConfigService;
 import com.yeshi.buwan.util.mq.CMQManager;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -49,7 +50,10 @@
             return null;
 
         InternetSearchVideo oldVideo = internetSearchVideoDao.get(video.getId());
-        Set<Integer> resourceIds = listResourceId(video);
+        Set<Integer> resourceIds = new HashSet<>();
+        if(oldVideo!=null) {
+            resourceIds.addAll(listResourceId(oldVideo));
+        }
         int resourceId = Integer.parseInt(video.getResourceIds());
         resourceIds.add(resourceId);
         Integer[] rids = new Integer[resourceIds.size()];
@@ -61,11 +65,11 @@
         } else {
             internetSearchVideoDao.updateSelective(video);
         }
-//灏忚棰戜笉鍔犲叆鎼滅储寮曟搸
-//        InternetSearchVideoMQMsg msg = new InternetSearchVideoMQMsg();
-//        msg.setId(video.getId());
-//        msg.setResourceId(resourceId);
-//        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
+        //鍏ㄧ綉鎼滃叆鎼滅储寮曟搸
+        InternetSearchVideoMQMsg msg = new InternetSearchVideoMQMsg();
+        msg.setId(video.getId());
+        msg.setResourceId(resourceId);
+        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
 
         return video;
     }
@@ -114,5 +118,47 @@
         return selectByPrimaryKey(id);
     }
 
+    @Override
+    public List<InternetSearchVideo> listByIds(List<String> ids) {
+        if (ids == null || ids.size() == 0) {
+            return new ArrayList<>();
+        }
+        Query query = new Query();
+        List<Criteria> orList = new ArrayList<>();
+        for (String id : ids) {
+            orList.add(Criteria.where("id").is(id));
+        }
+        Criteria[] ors = new Criteria[orList.size()];
+        orList.toArray(ors);
+        query.addCriteria(new Criteria().orOperator(ors));
+        return internetSearchVideoDao.findList(query);
+    }
 
+    @Override
+    public void removeResourceId(String id, Integer resourceId) {
+        InternetSearchVideo video = internetSearchVideoDao.get(id);
+        if(video==null){
+            return ;
+        }
+        Set<Integer> resourceIds =  listResourceId(video);
+        if(resourceIds.contains(resourceId)){
+            //绉婚櫎
+            resourceIds.remove(resourceId);
+        }
+        if(resourceIds.size()<=0){
+            // 绉婚櫎鏁版嵁
+            internetSearchVideoDao.deleteByPrimaryKey(id);
+        }else{
+            InternetSearchVideo update=new InternetSearchVideo();
+            update.setId(id);
+            Integer[] rids = new Integer[resourceIds.size()];
+            resourceIds.toArray(rids);
+            video.setResourceIds(StringUtil.concat(rids, ","));
+            internetSearchVideoDao.updateSelective(update);
+        }
+        InternetSearchVideoMQMsg msg = new InternetSearchVideoMQMsg();
+        msg.setId(video.getId());
+        msg.setResourceId(resourceId);
+        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
+    }
 }

--
Gitblit v1.8.0