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