| | |
| | | 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; |
| | | |
| | |
| | | * @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("version").lte(version), 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); |
| | | } |
| | | } |