Преглед изворни кода

二次拍卖/init拍卖/拍卖转让状态

licailing пре 4 година
родитељ
комит
aa5d733c67

+ 0 - 4
src/main/java/com/izouma/nineth/domain/AuctionOrder.java

@@ -47,10 +47,6 @@ public class AuctionOrder extends BaseEntityNoID {
     @ApiModelProperty("手续费比例")
     private int serviceCharge;
 
-//    @ApiModelProperty("类型")
-//    @Enumerated(EnumType.STRING)
-//    private CollectionType type;
-
     @Enumerated(EnumType.STRING)
     @ApiModelProperty("拍卖类型")
     private AuctionSource source;

+ 1 - 0
src/main/java/com/izouma/nineth/enums/AssetStatus.java

@@ -8,6 +8,7 @@ public enum AssetStatus {
     GIFTED("已转赠"),
     MINTING("铸造中"),
     AUCTIONING("拍卖中"),
+    AUCTION_TRADING("拍卖中"),
     AUCTIONED("已拍卖")
     ;
 

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

@@ -2,13 +2,13 @@ package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.AuctionActivity;
 import com.izouma.nineth.enums.AuctionStatus;
-import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
+import java.time.LocalDateTime;
 import java.util.List;
 
 public interface AuctionActivityRepo extends JpaRepository<AuctionActivity, Long>, JpaSpecificationExecutor<AuctionActivity> {
@@ -42,5 +42,7 @@ public interface AuctionActivityRepo extends JpaRepository<AuctionActivity, Long
 
     List<AuctionActivity> findAllByStatus(AuctionStatus auctionStatus);
 
-    List<AuctionActivity> findAllByAssetId(Long assetId);
+    AuctionActivity findByAssetId(Long assetId);
+
+    List<AuctionActivity> findByStartTimeBeforeAndStatus(LocalDateTime startTime, AuctionStatus status);
 }

+ 4 - 0
src/main/java/com/izouma/nineth/repo/AuctionRecordRepo.java

@@ -15,4 +15,8 @@ public interface AuctionRecordRepo extends JpaRepository<AuctionRecord, Long>, J
     void softDelete(Long id);
 
     AuctionRecord findTopByAuctionIdAndUserIdOrderByIdDesc(Long auctionId, Long userId);
+
+    @Modifying
+    @Transactional
+    void deleteAllByAuctionId(Long auctionId);
 }

+ 25 - 7
src/main/java/com/izouma/nineth/service/AuctionActivityService.java

@@ -4,20 +4,17 @@ import com.izouma.nineth.annotations.Debounce;
 import com.izouma.nineth.config.RedisKeys;
 import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.domain.AuctionActivity;
-import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.User;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.auction.AuctionInputDTO;
 import com.izouma.nineth.enums.*;
 import com.izouma.nineth.exception.BusinessException;
-import com.izouma.nineth.repo.AssetRepo;
-import com.izouma.nineth.repo.AuctionActivityRepo;
-import com.izouma.nineth.repo.TokenHistoryRepo;
-import com.izouma.nineth.repo.UserRepo;
+import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.JpaUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.core.env.Environment;
 import org.springframework.data.domain.Page;
 import org.springframework.data.redis.core.BoundValueOperations;
@@ -25,8 +22,8 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.TaskScheduler;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.annotation.PostConstruct;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -49,9 +46,22 @@ public class AuctionActivityService {
     private final Environment                   env;
     private final TokenHistoryRepo              tokenHistoryRepo;
     private final SysConfigService              sysConfigService;
+    private final AuctionRecordRepo             auctionRecordRepo;
 
     private final Map<Long, ScheduledFuture<?>> tasks = new HashMap<>();
 
+    @PostConstruct
+    public void init() {
+        if (Arrays.asList(env.getActiveProfiles()).contains("dev")) {
+            return;
+        }
+        List<AuctionActivity> activities = auctionActivityRepo.findByStartTimeBeforeAndStatus(LocalDateTime.now(),
+                AuctionStatus.NOTSTARTED);
+        for (AuctionActivity activity : activities) {
+            onShelfTask(activity);
+        }
+    }
+
     public Page<AuctionActivity> all(PageQuery pageQuery) {
         return auctionActivityRepo
                 .findAll(JpaUtils.toSpecification(pageQuery, AuctionActivity.class), JpaUtils.toPageRequest(pageQuery));
@@ -126,7 +136,15 @@ public class AuctionActivityService {
             }
 
             //是否二次拍卖
-
+            AuctionActivity activity = auctionActivityRepo.findByAssetId(asset.getId());
+            if (ObjectUtils.isNotEmpty(activity)) {
+                if (!AuctionStatus.PASS.equals(activity.getStatus())) {
+                    throw new BusinessException("已有拍卖");
+                }
+                log.info("删除流拍拍卖:id-{},assetId-{}", activity.getId(), activity.getAssetId());
+                auctionActivityRepo.delete(activity);
+                auctionRecordRepo.deleteAllByAuctionId(activity.getId());
+            }
 
             asset.setStatus(AssetStatus.AUCTIONING);
             assetRepo.save(asset);

+ 3 - 1
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -108,7 +108,7 @@ public class AuctionOrderService {
 
             if (AuctionSource.TRANSFER.equals(auction.getSource())) {
                 Asset asset = assetRepo.findById(auction.getAssetId()).orElseThrow(new BusinessException("资产不存在"));
-                asset.setStatus(AssetStatus.AUCTIONING);
+                asset.setStatus(AssetStatus.AUCTION_TRADING);
                 assetRepo.save(asset);
             }
 
@@ -289,6 +289,8 @@ public class AuctionOrderService {
                                 auctionOrderRepo.save(o);
                             });
 
+                    //违约处罚
+
                 }
             } else if (AuctionPaymentType.DEPOSIT.equals(order.getPaymentType())) {
                 //删除出价记录

+ 3 - 6
src/main/java/com/izouma/nineth/web/AuctionActivityController.java

@@ -1,20 +1,17 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.AuctionActivity;
-import com.izouma.nineth.domain.NewsLike;
-import com.izouma.nineth.dto.auction.AuctionInputDTO;
-import com.izouma.nineth.repo.NewsLikeRepo;
-import com.izouma.nineth.service.AuctionActivityService;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.dto.auction.AuctionInputDTO;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.AuctionActivityRepo;
+import com.izouma.nineth.repo.NewsLikeRepo;
+import com.izouma.nineth.service.AuctionActivityService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
-import org.opencv.face.Face;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;

+ 3 - 3
src/main/vue/src/views/AuctionActivityList.vue

@@ -10,7 +10,7 @@
             >
                 新增
             </el-button>
-            <el-button
+            <!-- <el-button
                 @click="download"
                 icon="el-icon-upload2"
                 :loading="downloading"
@@ -18,7 +18,7 @@
                 class="filter-item"
             >
                 导出
-            </el-button>
+            </el-button> -->
         </page-title>
         <div class="filters-container">
             <el-input
@@ -77,7 +77,7 @@
             <el-table-column label="操作" align="center" fixed="right" width="150">
                 <template slot-scope="{ row }">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button>
+                    <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
                 </template>
             </el-table-column>
         </el-table>