licailing 3 năm trước cách đây
mục cha
commit
d88d03cba9

+ 15 - 0
src/main/java/com/izouma/nineth/dto/DestroyDTO.java

@@ -0,0 +1,15 @@
+package com.izouma.nineth.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DestroyDTO {
+    private Long userId;
+    private int maxCount;
+    private int orderNum;
+    private int returnNum;
+}

+ 3 - 0
src/main/java/com/izouma/nineth/repo/AssetRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.repo;
 package com.izouma.nineth.repo;
 
 
 import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.domain.Asset;
+import com.izouma.nineth.enums.AssetSource;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.AssetStatus;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Pageable;
@@ -30,6 +31,8 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
 
 
     List<Asset> findAllByCollectionIdInAndStatusIn(List<Long> collectionId, Iterable<AssetStatus> statuses);
     List<Asset> findAllByCollectionIdInAndStatusIn(List<Long> collectionId, Iterable<AssetStatus> statuses);
 
 
+    List<Asset> findAllByNameLikeAndUserIdAndSourceOrderByIdDesc(String name, Long userId, AssetSource source);
+
     List<Asset> findByCreatedAtBefore(LocalDateTime localDateTime);
     List<Asset> findByCreatedAtBefore(LocalDateTime localDateTime);
 
 
     List<Asset> findByConsignmentTrue();
     List<Asset> findByConsignmentTrue();

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

@@ -371,9 +371,9 @@ public class AssetService {
     }
     }
 
 
     public void cancelConsignment(Asset asset) {
     public void cancelConsignment(Asset asset) {
-        if (!asset.getUserId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
-            throw new BusinessException("此藏品不属于你");
-        }
+//        if (!asset.getUserId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
+//            throw new BusinessException("此藏品不属于你");
+//        }
         if (asset.getPublicCollectionId() != null) {
         if (asset.getPublicCollectionId() != null) {
             List<Order> orders = orderRepo.findByCollectionId(asset.getPublicCollectionId());
             List<Order> orders = orderRepo.findByCollectionId(asset.getPublicCollectionId());
             if (orders.stream().anyMatch(o -> o.getStatus() != OrderStatus.CANCELLED)) {
             if (orders.stream().anyMatch(o -> o.getStatus() != OrderStatus.CANCELLED)) {
@@ -398,9 +398,9 @@ public class AssetService {
     }
     }
 
 
     public void cancelPublic(Asset asset) {
     public void cancelPublic(Asset asset) {
-        if (!asset.getUserId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
-            throw new BusinessException("此藏品不属于你");
-        }
+//        if (!asset.getUserId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
+//            throw new BusinessException("此藏品不属于你");
+//        }
         if (!asset.isPublicShow()) {
         if (!asset.isPublicShow()) {
             return;
             return;
         }
         }

+ 44 - 7
src/test/java/com/izouma/nineth/service/AssetServiceTest.java

@@ -5,13 +5,17 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.izouma.nineth.ApplicationTests;
 import com.izouma.nineth.ApplicationTests;
 import com.izouma.nineth.TokenHistory;
 import com.izouma.nineth.TokenHistory;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.domain.*;
+import com.izouma.nineth.dto.DestroyDTO;
 import com.izouma.nineth.dto.NFT;
 import com.izouma.nineth.dto.NFT;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.dto.TestDTO;
+import com.izouma.nineth.enums.AssetSource;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.TransferReason;
 import com.izouma.nineth.enums.TransferReason;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.TokenUtils;
 import com.izouma.nineth.utils.TokenUtils;
+import com.izouma.nineth.utils.excel.UploadDataListener;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
@@ -21,6 +25,7 @@ import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 
 
+import java.io.File;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
@@ -210,9 +215,9 @@ class AssetServiceTest extends ApplicationTests {
             } else {
             } else {
                 if (kebi.getHeibaman() > 0) {
                 if (kebi.getHeibaman() > 0) {
                     for (Integer n : Arrays.stream(kebi.getNumhei()
                     for (Integer n : Arrays.stream(kebi.getNumhei()
-                                    .replaceAll("\\.$", "")
-                                    .replaceAll("^\\.", "")
-                                    .split("\\."))
+                            .replaceAll("\\.$", "")
+                            .replaceAll("^\\.", "")
+                            .split("\\."))
                             .map(String::trim)
                             .map(String::trim)
                             .map(Integer::parseInt)
                             .map(Integer::parseInt)
                             .collect(Collectors.toList())) {
                             .collect(Collectors.toList())) {
@@ -224,9 +229,9 @@ class AssetServiceTest extends ApplicationTests {
                 }
                 }
                 if (kebi.getHuang() > 0) {
                 if (kebi.getHuang() > 0) {
                     for (Integer n : Arrays.stream(kebi.getNumhuang()
                     for (Integer n : Arrays.stream(kebi.getNumhuang()
-                                    .replaceAll("\\.$", "")
-                                    .replaceAll("^\\.", "")
-                                    .split("\\."))
+                            .replaceAll("\\.$", "")
+                            .replaceAll("^\\.", "")
+                            .split("\\."))
                             .map(String::trim)
                             .map(String::trim)
                             .map(Integer::parseInt)
                             .map(Integer::parseInt)
                             .collect(Collectors.toList())) {
                             .collect(Collectors.toList())) {
@@ -264,7 +269,39 @@ class AssetServiceTest extends ApplicationTests {
 
 
     @Test
     @Test
     public void destroy() {
     public void destroy() {
-        assetService.destroy(8025352L, 9972L);
+//        assetService.destroy(8025352L, 9972L);
+        List<String> result = new ArrayList<>();
+        File file = new File("C:\\Users\\96566\\Desktop\\err.xlsx");
+        UploadDataListener<DestroyDTO> listener = new UploadDataListener<>();
+        List<DestroyDTO> dtos = EasyExcel.read(file, DestroyDTO.class, listener)
+                .sheet()
+                .doReadSync();
+        dtos.forEach(dto -> {
+            List<Asset> assets = assetRepo.findAllByNameLikeAndUserIdAndSourceOrderByIdDesc(
+                    "%MARS19 SOLAR SYSTEM", dto.getUserId(), AssetSource.OFFICIAL);
+            int j = dto.getReturnNum();
+            User nft = userRepo.findById(1435297L).orElse(null);
+//            System.out.println(assets.size() + "," + dto.getReturnNum());
+            for (int i = 0; i < j; i++) {
+                Asset asset = assets.get(i);
+                if (asset.isConsignment()) {
+                    assetService.cancelConsignment(asset);
+                    userRepo.flush();
+                } else if (asset.isPublicShow()) {
+                    assetService.cancelPublic(asset);
+                    userRepo.flush();
+                }
+                asset.setUserId(1435297L);
+                asset.setOwnerId(1435297L);
+                asset.setOwner(nft.getNickname());
+                asset.setOwnerAvatar(nft.getAvatar());
+                assetRepo.save(asset);
+                result.add(dto.getUserId() + "," + asset.getName() + "," + asset.getNumber() + "," + asset.getOrderId());
+
+            }
+
+            result.forEach(System.out::println);
+        });
     }
     }
 
 
     @Test
     @Test