Ver Fonte

预约流程代码调整

ouyang há 3 anos atrás
pai
commit
02158bf5ef

+ 2 - 0
src/main/java/com/izouma/nineth/domain/Collection.java

@@ -219,4 +219,6 @@ public class Collection extends BaseEntity {
 
     @ApiModelProperty("购买时间")
     private LocalDateTime purchaseTime;
+
+    private boolean subscribed;
 }

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

@@ -71,6 +71,7 @@ public class CollectionService {
     private OrderRepo                     orderRepo;
     private TokenHistoryRepo              tokenHistoryRepo;
     private PointRecordRepo               pointRecordRepo;
+    private SubscribeRepo                 subscribeRepo;
 
     private final Map<Long, ScheduledFuture<?>> tasks = new HashMap<>();
 
@@ -206,6 +207,10 @@ public class CollectionService {
                     int purchase = orderRepo.countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collection.getId(), Arrays.asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
                     collectionDTO.setVipSurplus(user.getVipPurchase() - purchase);
                 }
+                Subscribe subscribe = subscribeRepo.findAllByCollectionIdAndUserId(collection.getId(), user.getId());
+                if (subscribe.isPurchaseQualifications()){
+                    collectionDTO.setSubscribed(subscribe.isPurchaseQualifications());
+                }
             }
         }
         return collectionDTO;

+ 4 - 0
src/main/java/com/izouma/nineth/service/SubscribeService.java

@@ -23,6 +23,10 @@ public class SubscribeService {
     private SubscribeRepo subscribeRepo;
 
     public void create(Subscribe record) {
+        Subscribe subscribe = subscribeRepo.findAllByCollectionIdAndUserId(record.getCollectionId(), record.getUserId());
+        if (!ObjectUtil.isEmpty(subscribe)){
+            throw new BusinessException("请勿重复预约");
+        }
         Collection collection = collectionRepo.findById(record.getCollectionId()).orElseThrow(new BusinessException("查无此藏品"));
         if (ObjectUtil.isEmpty(collection.getStartTime()) && ObjectUtil.isEmpty(collection.getEndTime())) {
             throw new BusinessException("此藏品没有开启预约");