From f06a592dd1a7e995bf313ccb5efe7dff73ccfc4e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 四月 2023 18:25:52 +0800
Subject: [PATCH] 增加本地获取IP归属地/广告优化

---
 src/main/java/com/yeshi/buwan/service/imp/juhe/InternetSearchVideoServiceImpl.java |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 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 96fc5da..724ffcc 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,9 +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.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;
@@ -19,13 +25,34 @@
     @Resource
     private InternetSearchVideoDao internetSearchVideoDao;
 
+    @Resource
+    private SystemConfigService systemConfigService;
+
+    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);
-        resourceIds.add(Integer.parseInt(video.getResourceIds()));
+        int resourceId = Integer.parseInt(video.getResourceIds());
+        resourceIds.add(resourceId);
         Integer[] rids = new Integer[resourceIds.size()];
         resourceIds.toArray(rids);
         video.setResourceIds(StringUtil.concat(rids, ","));
@@ -35,6 +62,13 @@
         } else {
             internetSearchVideoDao.updateSelective(video);
         }
+        //鍏ㄧ綉鎼滃叆鎼滅储寮曟搸
+        InternetSearchVideoMQMsg msg = new InternetSearchVideoMQMsg();
+        msg.setId(video.getId());
+        msg.setResourceId(resourceId);
+        CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg);
+
+        return video;
     }
 
     private Set<Integer> listResourceId(InternetSearchVideo video) {
@@ -74,5 +108,28 @@
         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);
+    }
+
 
 }

--
Gitblit v1.8.0