From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 20 二月 2025 16:57:55 +0800
Subject: [PATCH] IOS广告增加区域屏蔽

---
 src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 86 insertions(+), 5 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 af10b40..460f24c 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
@@ -1,11 +1,15 @@
 package com.yeshi.buwan.service.imp.juhe;
 
 import com.yeshi.buwan.dao.juhe.youku.InternetSearchVideoDao;
+import com.yeshi.buwan.domain.system.SystemConfig;
 import com.yeshi.buwan.domain.video.InternetSearchVideo;
 import com.yeshi.buwan.dto.mq.InternetSearchVideoMQMsg;
 import com.yeshi.buwan.exception.ParamsException;
 import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
-import com.yeshi.buwan.util.mq.CMQManager;
+import com.yeshi.buwan.service.inter.system.SystemConfigService;
+import com.yeshi.buwan.util.mq.rabbit.RabbitmqManager;
+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;
@@ -21,12 +25,38 @@
     @Resource
     private InternetSearchVideoDao internetSearchVideoDao;
 
+    @Resource
+    private SystemConfigService systemConfigService;
+
+    @Resource
+    private RabbitmqManager rabbitmqManager;
+
+    private boolean isCanSave(InternetSearchVideo video) {
+        SystemConfig systemConfig = systemConfigService.getConfigByKeyCache("internetSearchInvalidKeyForSave");
+        if (systemConfig == null)
+            return true;
+        String value = systemConfig.getValue();
+        String[] invalidNames = value.split("#");
+        for (String st : invalidNames) {
+            if (video.getName().contains(st)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
 
     @Validated
     @Override
-    public void save(@Valid InternetSearchVideo video) throws ParamsException, Exception {
+    public InternetSearchVideo save(@Valid InternetSearchVideo video) throws ParamsException, Exception {
+        if (!isCanSave(video))
+            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()];
@@ -38,11 +68,13 @@
         } else {
             internetSearchVideoDao.updateSelective(video);
         }
-
+        //鍏ㄧ綉鎼滃叆鎼滅储寮曟搸
         InternetSearchVideoMQMsg msg = new InternetSearchVideoMQMsg();
         msg.setId(video.getId());
         msg.setResourceId(resourceId);
-        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
+        rabbitmqManager.addInternetSearchVideoUpdateMsg(msg);
+
+        return video;
     }
 
     private Set<Integer> listResourceId(InternetSearchVideo video) {
@@ -82,5 +114,54 @@
         return internetSearchVideoDao.get(id);
     }
 
+    @Cacheable(value = "internetSearch", key = "'selectByPrimaryKey-'+#id")
+    @Override
+    public InternetSearchVideo selectByPrimaryKeyCache(String id) {
 
+        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);
+        rabbitmqManager.addInternetSearchVideoUpdateMsg(msg);
+    }
 }

--
Gitblit v1.8.0