Просмотр исходного кода

Merge branch 'dev' of xiongzhu/raex_back into master

lidongze 3 лет назад
Родитель
Сommit
c0f6450cac
1 измененных файлов с 13 добавлено и 4 удалено
  1. 13 4
      src/main/java/com/izouma/nineth/service/CollectionService.java

+ 13 - 4
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -26,7 +26,10 @@ import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.springframework.beans.BeanUtils;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.core.env.Environment;
-import org.springframework.data.domain.*;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.redis.core.BoundHashOperations;
 import org.springframework.data.redis.core.BoundValueOperations;
@@ -36,14 +39,14 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.PostConstruct;
-import javax.persistence.criteria.*;
+import javax.persistence.criteria.Join;
+import javax.persistence.criteria.Predicate;
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
@@ -111,7 +114,13 @@ public class CollectionService {
                         });
             }
         }
-
+        if (query.containsKey("distinct")) {
+            query.remove("distinct");
+            specification = specification.and((Specification<Collection>) (root, criteriaQuery, criteriaBuilder) -> {
+                criteriaQuery.groupBy(root.get("name"));
+                return criteriaBuilder.and();
+            });
+        }
         if (query.containsKey("rarityLabel")) {
             String rarityLabel = String.valueOf(query.get("rarityLabel"));
             query.remove("rarityLabel");