Bläddra i källkod

vip优先购剩余查询

licailing 4 år sedan
förälder
incheckning
4c389a6b77

+ 1 - 0
src/main/java/com/izouma/nineth/dto/CollectionDTO.java

@@ -7,4 +7,5 @@ import lombok.Data;
 public class CollectionDTO extends Collection {
     private boolean liked;
     private boolean appointment;
+    private int     vipSurplus;
 }

+ 12 - 5
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -12,6 +12,7 @@ import com.izouma.nineth.dto.CreateBlindBox;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.enums.CollectionSource;
 import com.izouma.nineth.enums.CollectionType;
+import com.izouma.nineth.enums.OrderStatus;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.JpaUtils;
@@ -62,6 +63,7 @@ public class CollectionService {
     private RocketMQTemplate              rocketMQTemplate;
     private GeneralProperties             generalProperties;
     private Environment                   env;
+    private OrderRepo                     orderRepo;
 
     private final Map<Long, ScheduledFuture<?>> tasks = new HashMap<>();
 
@@ -179,20 +181,25 @@ public class CollectionService {
     }
 
     public CollectionDTO toDTO(Collection collection) {
-        return toDTO(collection, true);
+        return toDTO(collection, true, false);
     }
 
-    public CollectionDTO toDTO(Collection collection, boolean join) {
+    public CollectionDTO toDTO(Collection collection, boolean join, boolean showVip) {
         CollectionDTO collectionDTO = new CollectionDTO();
         BeanUtils.copyProperties(collection, collectionDTO);
         if (join) {
-            if (SecurityUtils.getAuthenticatedUser() != null) {
-                List<Like> list = likeRepo.findByUserIdAndCollectionId(SecurityUtils.getAuthenticatedUser().getId(),
+            User user = SecurityUtils.getAuthenticatedUser();
+            if (user != null) {
+                List<Like> list = likeRepo.findByUserIdAndCollectionId(user.getId(),
                         collection.getId());
                 collectionDTO.setLiked(!list.isEmpty());
                 if (collection.getType() == CollectionType.BLIND_BOX) {
                     collectionDTO.setAppointment(appointmentRepo.findFirstByBlindBoxId(collection.getId()).isPresent());
                 }
+                if (showVip && user.getVipPurchase() > 0) {
+                    int purchase = orderRepo.countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collection.getId(), Arrays.asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
+                    collectionDTO.setVipSurplus(user.getVipPurchase() - purchase);
+                }
             }
         }
         return collectionDTO;
@@ -206,7 +213,7 @@ public class CollectionService {
             appointments.addAll(appointmentRepo.findByUserId(SecurityUtils.getAuthenticatedUser().getId()));
         }
         return collections.stream().parallel().map(collection -> {
-            CollectionDTO dto = toDTO(collection, false);
+            CollectionDTO dto = toDTO(collection, false, false);
             if (!likes.isEmpty()) {
                 dto.setLiked(likes.stream().anyMatch(l -> l.getCollectionId().equals(collection.getId())));
             }

+ 2 - 14
src/main/java/com/izouma/nineth/web/CollectionController.java

@@ -2,14 +2,11 @@ package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.FileObject;
-import com.izouma.nineth.domain.User;
 import com.izouma.nineth.dto.CollectionDTO;
 import com.izouma.nineth.dto.CreateBlindBox;
 import com.izouma.nineth.dto.PageQuery;
-import com.izouma.nineth.enums.OrderStatus;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.CollectionRepo;
-import com.izouma.nineth.repo.OrderRepo;
 import com.izouma.nineth.service.CollectionService;
 import com.izouma.nineth.service.LikeService;
 import com.izouma.nineth.utils.SecurityUtils;
@@ -25,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -37,7 +33,6 @@ public class CollectionController extends BaseController {
     private CollectionService collectionService;
     private CollectionRepo    collectionRepo;
     private LikeService       likeService;
-    private OrderRepo         orderRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -58,7 +53,8 @@ public class CollectionController extends BaseController {
 
     @GetMapping("/get/{id}")
     public CollectionDTO get(@PathVariable Long id) {
-        return collectionService.toDTO(collectionRepo.findById(id).orElseThrow(new BusinessException("无记录")), true);
+        return collectionService.toDTO(collectionRepo.findById(id)
+                .orElseThrow(new BusinessException("无记录")), true, true);
     }
 
     @PostMapping("/del/{id}")
@@ -116,13 +112,5 @@ public class CollectionController extends BaseController {
             return collectionDTO;
         }).collect(Collectors.toList());
     }
-
-    @ApiOperation("剩余")
-    @PostMapping("/vipSurplus")
-    public int vipSurplus(@RequestParam Long collectionId) {
-        User user = SecurityUtils.getAuthenticatedUser();
-        int purchase = orderRepo.countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collectionId, Arrays.asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
-        return user.getVipPurchase() - purchase;
-    }
 }