From 0fc0456a587d985fda71c66b9764fe1d5e3c6421 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 29 七月 2021 19:11:01 +0800 Subject: [PATCH] 分系统完善 --- src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java b/src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java index 412fb14..5b14916 100644 --- a/src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java +++ b/src/main/java/com/yeshi/buwan/dao/video/VideoResourceVersionMapDao.java @@ -7,6 +7,7 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Repository; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -44,9 +45,26 @@ * @param version * @return */ - public List<VideoResourceVersionMap> listValid(String detailSystemId, Integer version) { + public List<VideoResourceVersionMap> listValid(String detailSystemId, Integer version, String channel) { Query query = new Query(); - query.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId), Criteria.where("version").lte(version))); + + List<Criteria> andList = new ArrayList<>(); + andList.add(Criteria.where("detailSystemId").is(detailSystemId)); + andList.add(Criteria.where("version").lte(version)); + if (channel != null) { + Query childQuery = new Query(); + childQuery.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId), Criteria.where("channel").is(channel.toLowerCase()))); + if (count(childQuery) > 0) { + andList.add(Criteria.where("channel").is(channel)); + } else { + andList.add(Criteria.where("channel").is(null)); + } + } else { + andList.add(Criteria.where("channel").is(null)); + } + Criteria[] cts = new Criteria[andList.size()]; + andList.toArray(cts); + query.addCriteria(new Criteria().andOperator(cts)); return findList(query); } } -- Gitblit v1.8.0