Explorar o código

拍卖会下架逻辑校验

linhui.li hai 3 semanas
pai
achega
cbbb546ced

+ 2 - 2
lot/src/main/java/cn/hobbystocks/auc/domain/Auction.java

@@ -58,14 +58,14 @@ public class Auction extends BaseEntity {
     @ApiModelProperty("拍卖会介绍")
     private String description;
     @TableField("pub_status")
-    @ApiModelProperty("发布状态")
+    @ApiModelProperty("发布状态:1、发布,2、下架")
     private Integer pubStatus;
     @TableField("pub_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty("发布时间")
     private Date pubTime;
     @TableField("status")
-    @ApiModelProperty("拍卖会状态:Waiting 未开始,")
+    @ApiModelProperty("拍卖会状态:Waiting 未开始,Starting:进行中,Finished:已结束")
     private String status;
 //拍卖会开始时间
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

+ 1 - 1
lot/src/main/java/cn/hobbystocks/auc/service/IAuctionService.java

@@ -22,7 +22,7 @@ public interface IAuctionService extends IService<Auction>
 
     int deleteAuctionById(Long id);
 
-    void pubAuction(AuctionVO auction) throws Exception;
+    boolean pubAuction(AuctionVO auction) throws Exception;
 
     void auctionLive();
 

+ 2 - 0
lot/src/main/java/cn/hobbystocks/auc/service/ILotService.java

@@ -17,6 +17,8 @@ public interface ILotService extends IService<Lot> {
 
     List<Lot> selectLotList(Lot lot);
 
+    List<Lot> selectBiddingLotByAucId(Long aucId);
+
     /**
      * 根据拍品组id数组查询拍品列表
      * @param groupIds 拍品组id数组

+ 10 - 3
lot/src/main/java/cn/hobbystocks/auc/service/impl/AuctionServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.hobbystocks.auc.service.impl;
 
 import cn.hobbystocks.auc.cache.CacheMap;
+import cn.hobbystocks.auc.domain.Lot;
 import cn.hobbystocks.auc.service.ILotService;
 import cn.hobbystocks.auc.common.constant.Constants;
 import cn.hobbystocks.auc.common.core.redis.RedisCache;
@@ -22,6 +23,7 @@ import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.DefaultTransactionDefinition;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -85,21 +87,26 @@ public class AuctionServiceImpl extends ServiceImpl<AuctionMapper,Auction> imple
 
     @Override
     @Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
-    public void pubAuction(AuctionVO auction) {
+    public boolean pubAuction(AuctionVO auction) {
         if (Objects.equals(Constants.PUB_STATUS_PUBLISHED, auction.getPubStatus())) {
             auction.setPubTime(new Date());
             auction.setStatus(Constants.LOT_STATUS_WAITING);
             Auction db = getBaseMapper().selectAuctionById(auction.getId());
             redisCache.setCacheObject(String.format(Constants.REDIS_AUC_TEMPLATE, auction.getId()), db);
         }else if (Objects.equals(Constants.PUB_STATUS_CANCEL_PUBLISHED, auction.getPubStatus())){
+            //判断是否有正在竞拍的拍品,如果有,下架失败
+            List<Lot> lots = lotService.selectBiddingLotByAucId(auction.getId());
+            if (!CollectionUtils.isEmpty(lots))
+                return false;
             auction.setUpdateTime(new Date());
             auction.setStatus(Constants.LOT_STATUS_CANCELLED);
             redisCache.deleteObject(String.format(Constants.REDIS_AUC_TEMPLATE, auction.getId()));
         }
         getBaseMapper().updateAuction(auction);
-        if (auction.getPubLots()) {
+        /*if (auction.getPubLots()) {
             lotService.pubLots(auction);
-        }
+        }*/
+        return true;
     }
 
     @Override

+ 5 - 0
lot/src/main/java/cn/hobbystocks/auc/service/impl/LotServiceImpl.java

@@ -89,6 +89,11 @@ public class LotServiceImpl extends ServiceImpl<LotMapper,Lot> implements ILotSe
         return lotMapper.selectLotList(lotIPage,lot);
     }
 
+    @Override
+    public List<Lot> selectBiddingLotByAucId(Long aucId) {
+        return lotMapper.selectNotEndLotList(aucId);
+    }
+
     @Override
     public List<Lot> selectLotByGroupIds(Long[] groupIds) {
         return null;