Explorar o código

调整叠加逻辑

sunkean %!s(int64=3) %!d(string=hai) anos
pai
achega
8a661df858

+ 36 - 1
src/main/java/com/izouma/nineth/domain/AssetSuperimposition.java

@@ -1,5 +1,6 @@
 package com.izouma.nineth.domain;
 
+import com.izouma.nineth.annotations.Searchable;
 import com.izouma.nineth.converter.FileObjectListConverter;
 import com.izouma.nineth.enums.AssetShowStatus;
 import com.izouma.nineth.enums.AssetStatus;
@@ -73,12 +74,46 @@ public class AssetSuperimposition {
     @Enumerated(EnumType.STRING)
     private AssetShowStatus assetStatus;
 
+    private Long assetId;
+
+    @Column(columnDefinition = "tinyint unsigned default 1")
+    private boolean opened = true;
+
+    @ApiModelProperty("类型")
+    @Enumerated(EnumType.STRING)
+    private CollectionType type;
+
+    @ApiModelProperty("状态")
+    @Enumerated(EnumType.STRING)
+    private AssetStatus status;
+
+    @ApiModelProperty("编号")
+    private Integer number;
+
+    @ApiModelProperty("名称")
+    @Searchable
+    private String name;
+
+    @ApiModelProperty("是否公开展示")
+    private boolean publicShow;
+
+    @ApiModelProperty("是否寄售")
+    private boolean consignment;
+
     public AssetSuperimposition(Asset asset) {
+        this.assetId = asset.getId();
         this.userId = asset.getUserId();
         this.minter = asset.getMinter();
         this.pic = asset.getPic();
         this.prefixName = asset.getPrefixName();
-        if (CollectionType.BLIND_BOX.equals(asset.getType()) && asset.isOpened()) {
+        this.consignment = asset.isConsignment();
+        this.publicShow = asset.isPublicShow();
+        this.name = asset.getName();
+        this.number = asset.getNumber();
+        this.status = asset.getStatus();
+        this.type = asset.getType();
+        this.opened = asset.isOpened();
+        if (CollectionType.BLIND_BOX.equals(asset.getType()) && !asset.isOpened()) {
             this.setAssetStatus(AssetShowStatus.BLIND_BOX);
             this.num = 1;
             if (AssetStatus.AUCTIONING.equals(asset.getStatus())) {

+ 20 - 1
src/main/java/com/izouma/nineth/repo/AssetSuperimpositionRepo.java

@@ -3,22 +3,34 @@ package com.izouma.nineth.repo;
 import com.izouma.nineth.domain.AssetSuperimposition;
 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.util.List;
 
 public interface AssetSuperimpositionRepo extends JpaRepository<AssetSuperimposition, Long>, JpaSpecificationExecutor<AssetSuperimposition> {
 
     List<AssetSuperimposition> findByUserId(Long userId);
 
+    @Transactional
+    @Modifying
     void deleteByUserId(Long userId);
     @Query(value = "SELECT " +
-            "  a.id, " +
+            "  a.id id, " +
+            "  a.id asset_id, " +
             "  'NORMAL' asset_status, " +
             "  a.user_id, " +
             "  a.prefix_name, " +
             "  a.pic, " +
             "  a.minter, " +
+            "  a.opened, " +
+            "  a.type, " +
+            "  a.status, " +
+            "  a.number, " +
+            "  a.name, " +
+            "  a.public_show, " +
+            "  a.consignment, " +
             "  IF(b.auctioning_num IS NULL, 0, b.auctioning_num) auctioning_num,  " +
             "  IF(c.consignment_num IS NULL, 0, c.consignment_num) consignment_num,  " +
             "  IF(d.open_show_num IS NULL, 0, d.open_show_num) open_show_num,  " +
@@ -32,6 +44,13 @@ public interface AssetSuperimpositionRepo extends JpaRepository<AssetSuperimposi
             "    prefix_name, " +
             "    pic, " +
             "    minter, " +
+            "    opened, " +
+            "    type, " +
+            "    status, " +
+            "    number, " +
+            "    name, " +
+            "    public_show, " +
+            "    consignment, " +
             "    count(*) num  " +
             "  FROM " +
             "    asset  " +

+ 11 - 2
src/main/java/com/izouma/nineth/service/AssetSuperimpositionService.java

@@ -12,10 +12,12 @@ import com.izouma.nineth.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import javax.transaction.Transactional;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -39,7 +41,7 @@ public class AssetSuperimpositionService {
      * @param assetSuperimposition
      */
     private void setAssetStatus(AssetSuperimposition assetSuperimposition) {
-        assetSuperimposition.setId(null);
+//        assetSuperimposition.setId(null);
         if (assetSuperimposition.getNum() != 1) {
             return;
         }
@@ -72,7 +74,12 @@ public class AssetSuperimpositionService {
         });
         // 查询非盲盒数量
         List<AssetSuperimposition> notBlindBoxAssets = assetSuperimpositionRepo.find(userId);
-        assetSuperimpositions.addAll(notBlindBoxAssets);
+        notBlindBoxAssets.forEach(assetSuperimposition -> {
+            AssetSuperimposition newAssetSuperimposition = new AssetSuperimposition();
+            BeanUtils.copyProperties(assetSuperimposition, newAssetSuperimposition);
+            newAssetSuperimposition.setId(null);
+            assetSuperimpositions.add(newAssetSuperimposition);
+        });
         List<AssetSuperimposition> isExist = assetSuperimpositionRepo.findByUserId(userId);
         if (CollectionUtils.isNotEmpty(isExist)) {
             assetSuperimpositionRepo.deleteByUserId(userId);
@@ -82,11 +89,13 @@ public class AssetSuperimpositionService {
         assetSuperimpositionRepo.saveAll(assetSuperimpositions);
     }
 
+    @Transactional
     public void assetSave(Asset asset) {
         assetRepo.save(asset);
         calculateNum(asset.getUserId());
     }
 
+    @Transactional
     public void assetSaveFlush(Asset asset) {
         assetRepo.saveAndFlush(asset);
         calculateNum(asset.getUserId());