Browse Source

首发6小时限制,默认不开盲盒,开盲盒接口

licailing 3 years ago
parent
commit
f196b7837a

+ 3 - 1
src/main/java/com/izouma/nineth/domain/Asset.java

@@ -188,7 +188,8 @@ public class Asset extends CollectionBaseEntity {
     @Column(length = 20)
     private AssetSource source = AssetSource.OFFICIAL;
 
-    @Transient
+    //    @Transient
+    @Column(columnDefinition = "tinyint unsigned default 0")
     private boolean opened = true;
 
     @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE})
@@ -271,6 +272,7 @@ public class Asset extends CollectionBaseEntity {
                 .holdDays(holdDays)
                 .oldHoldDays(holdDays)
                 .source(AssetSource.OFFICIAL)
+                .opened(false)
                 .build();
     }
 }

+ 8 - 0
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -221,6 +221,14 @@ public class AssetService {
                 holdDays = asset.getHoldDays();
             }
         }
+        if (holdDays == 0 && AssetSource.OFFICIAL.equals(asset.getSource())) {
+            BigDecimal officialConsignment = sysConfigService.getBigDecimal("OFFICIAL_CONSIGNMENT");
+            //天转小时
+            int hour = officialConsignment.multiply(new BigDecimal("24")).intValue();
+            if (ChronoUnit.HOURS.between(asset.getCreatedAt(), LocalDateTime.now()) < hour) {
+                throw new BusinessException("需持有满" + hour + "小时后才能寄售上架");
+            }
+        }
 
         if (ChronoUnit.DAYS.between(asset.getCreatedAt(), LocalDateTime.now()) < holdDays) {
             throw new BusinessException("需持有满" + holdDays + "天才能寄售上架");

+ 11 - 0
src/main/java/com/izouma/nineth/web/AssetController.java

@@ -6,6 +6,7 @@ import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.domain.GiftOrder;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.UserHistory;
+import com.izouma.nineth.enums.CollectionType;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.OrderRepo;
@@ -180,6 +181,16 @@ public class AssetController extends BaseController {
     public void destroy(@RequestParam Long id) {
         assetService.destroy(id, SecurityUtils.getAuthenticatedUser().getId());
     }
+
+    @ApiOperation("开盲盒")
+    @PostMapping("/open")
+    public void open(@RequestParam Long id) {
+        Asset asset = assetRepo.findById(id).orElseThrow(new BusinessException("无盲盒"));
+        if (!asset.isOpened() && CollectionType.BLIND_BOX.equals(asset.getType())) {
+            asset.setOpened(true);
+            assetRepo.save(asset);
+        }
+    }
 }