licailing před 3 roky
rodič
revize
d7534a3913

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

@@ -93,6 +93,6 @@ public class AuctionActivity extends BaseEntity {
     private boolean liked;
 
     @ApiModelProperty("上架")
-    @Column(columnDefinition = "tinyint unsigned")
-    private boolean onShelf;
+    @Column(columnDefinition = "tinyint unsigned default 0")
+    private boolean onShelf = false;
 }

+ 2 - 1
src/main/java/com/izouma/nineth/repo/AuctionActivityRepo.java

@@ -9,6 +9,7 @@ import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
 import java.time.LocalDateTime;
+import java.util.Collection;
 import java.util.List;
 
 public interface AuctionActivityRepo extends JpaRepository<AuctionActivity, Long>, JpaSpecificationExecutor<AuctionActivity> {
@@ -44,7 +45,7 @@ public interface AuctionActivityRepo extends JpaRepository<AuctionActivity, Long
 
     AuctionActivity findByAssetId(Long assetId);
 
-    List<AuctionActivity> findByStartTimeBeforeAndStatus(LocalDateTime startTime, AuctionStatus status);
+    List<AuctionActivity> findByStartTimeBeforeAndStatusIn(LocalDateTime startTime, Collection<AuctionStatus> status);
 
     @Modifying
     @Transactional

+ 9 - 16
src/main/java/com/izouma/nineth/service/AuctionActivityService.java

@@ -56,10 +56,14 @@ public class AuctionActivityService {
         if (Arrays.asList(env.getActiveProfiles()).contains("dev")) {
             return;
         }
-        List<AuctionActivity> activities = auctionActivityRepo.findByStartTimeBeforeAndStatus(LocalDateTime.now(),
-                AuctionStatus.NOTSTARTED);
+        List<AuctionActivity> activities = auctionActivityRepo.findByStartTimeBeforeAndStatusIn(LocalDateTime.now(),
+                Arrays.asList(AuctionStatus.NOTSTARTED, AuctionStatus.ONGOING));
         for (AuctionActivity activity : activities) {
-            onShelfTask(activity);
+            if (AuctionStatus.NOTSTARTED.equals(activity.getStatus())) {
+                onShelfTask(activity);
+            } else {
+                offShelfTask(activity);
+            }
         }
     }
 
@@ -219,16 +223,11 @@ public class AuctionActivityService {
             if (recordNew1.getEndTime().minusSeconds(2).isAfter(LocalDateTime.now())) {
                 Date date = Date.from(record.getEndTime().atZone(ZoneId.systemDefault()).toInstant());
                 ScheduledFuture<?> future = taskScheduler.schedule(() -> {
-                    if (recordNew1.getPurchasePrice() != null) {
+                    if (ObjectUtils.isNotEmpty(recordNew1.getPurchasePrice())) {
                         auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PURCHASED);
                     } else {
+                        //没有成交价,无人出价过
                         auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PASS);
-                        //添加到流拍记录表里
-                        auctionPassRecordRepo.save(AuctionPassRecord.builder()
-                                .auctionId(record.getId())
-                                .userId(recordNew1.getPurchaserId())
-                                .purchasePrice(recordNew1.getPurchasePrice())
-                                .build());
 
                         if (record.getAuctionType().equals(AuctionType.NFT)) {
                             Asset asset = assetRepo.findById(recordNew1.getAssetId())
@@ -247,12 +246,6 @@ public class AuctionActivityService {
                     auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PURCHASED);
                 } else {
                     auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PASS);
-                    //添加到流拍记录表里
-                    auctionPassRecordRepo.save(AuctionPassRecord.builder()
-                            .auctionId(record.getId())
-                            .userId(recordNew1.getPurchaserId())
-                            .purchasePrice(recordNew1.getPurchasePrice())
-                            .build());
 
                     if (record.getAuctionType().equals(AuctionType.NFT)) {
                         Asset asset = assetRepo.findById(recordNew1.getAssetId())

+ 17 - 0
src/test/java/com/izouma/nineth/service/AuctionActivityServiceTest.java

@@ -0,0 +1,17 @@
+package com.izouma.nineth.service;
+
+import com.izouma.nineth.ApplicationTests;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class AuctionActivityServiceTest extends ApplicationTests {
+
+    @Autowired
+    private AuctionActivityService auctionActivityService;
+
+    @Test
+    public void test() {
+        auctionActivityService.init();
+    }
+}