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/manager/search/SolrAlbumVideoDataManager.java | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java b/src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java index 0d3a6e1..dbf22b8 100644 --- a/src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java +++ b/src/main/java/com/yeshi/buwan/service/manager/search/SolrAlbumVideoDataManager.java @@ -26,8 +26,10 @@ import org.springframework.data.solr.core.query.SimpleQuery; import org.springframework.data.solr.core.query.result.ScoredPage; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.Serializable; import java.util.*; /** @@ -60,6 +62,7 @@ private VideoResourceService videoResourceService; + @Transactional public void saveOrUpdate(VideoInfo videoInfo) { List<VideoResource> resourceList = videoResourceService.getResourceList(); List<Long> rids = new ArrayList<>(); @@ -122,7 +125,7 @@ } } - public SolrAlbumVideo findOne(String id) { + public SolrAlbumVideo findOne(Serializable id) { SolrAlbumVideo solrVideo = solrTemplate.getById(CORE_NAME, id, SolrAlbumVideo.class); return solrVideo; } @@ -141,7 +144,7 @@ try { query = new SimpleQuery(new Criteria("nameStr").startsWith(filter.getKey()).or("mainactor").expression("\"" + filter.getKey() + "\"")); } catch (InvalidDataAccessApiUsageException e) { - query = new SimpleQuery(new Criteria("nameStr").expression("\""+filter.getKey()+"\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); + query = new SimpleQuery(new Criteria("nameStr").expression("\"" + filter.getKey() + "\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); } } } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { @@ -157,8 +160,15 @@ query.addFilterQuery(new SimpleFilterQuery(Criteria.where("root_video_type").is(filter.getVideoType()))); } - if (filter.getResourceIds() != null && filter.getResourceIds().length > 0) { - query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds()))); + if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) { + Criteria ors = null; + for (String rid : filter.getResourceIds()) { + if (ors == null) + ors = Criteria.where("resourceIds").contains(rid); + else + ors = ors.or("resourceIds").contains(rid); + } + query.addFilterQuery(new SimpleFilterQuery(ors)); } if (filter.getFreeType() != null) { query.addFilterQuery(new SimpleFilterQuery(Criteria.where("free_type").is(filter.getFreeType()))); @@ -166,6 +176,15 @@ if (filter.getArea() != null) { query.addFilterQuery(new SimpleFilterQuery(Criteria.where("area").contains(filter.getArea()))); + } + + if (filter.getAreas() != null && filter.getAreas().size() > 0) { + + Criteria criteria = Criteria.where("area").contains(filter.getAreas().get(0)); + for (int i = 1; i < filter.getAreas().size(); i++) { + criteria = criteria.or("area").contains(filter.getAreas().get(i)); + } + query.addFilterQuery(new SimpleFilterQuery(criteria)); } @@ -185,7 +204,7 @@ } public List<String> getSuggestKeyList(String key) { - Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*")); + Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*")); /** 璁剧疆鍒嗛〉寮�濮嬭褰曟暟(绗竴椤�) 榛樿0 */ query.setOffset(0); /** 璁剧疆姣忛〉鏄剧ず璁板綍鏁帮紝榛樿10 */ -- Gitblit v1.8.0