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 | 92 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 89 insertions(+), 3 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..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 @@ -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,37 @@ @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())); + 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()]; resourceIds.toArray(rids); video.setResourceIds(StringUtil.concat(rids, ",")); @@ -35,6 +65,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 +111,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); + CMQManager.getInstance().addInternetSearchVideoUpdateMsg(msg); + } } -- Gitblit v1.8.0