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