فهرست منبع

导入传盲盒

licailing 3 سال پیش
والد
کامیت
904d0ae2b5

+ 16 - 0
src/main/java/com/izouma/nineth/dto/TestExcelDTO.java

@@ -0,0 +1,16 @@
+package com.izouma.nineth.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TestExcelDTO {
+    @ExcelProperty("id")
+    private Long id;
+    @ExcelProperty("num")
+    private int num;
+}

+ 42 - 0
src/test/java/com/izouma/nineth/service/CollectionServiceTest.java

@@ -1,11 +1,13 @@
 package com.izouma.nineth.service;
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSON;
 import com.izouma.nineth.ApplicationTests;
 import com.izouma.nineth.domain.BlindBoxItem;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.FileObject;
 import com.izouma.nineth.dto.CreateBlindBox;
+import com.izouma.nineth.dto.TestExcelDTO;
 import com.izouma.nineth.enums.CollectionType;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.CollectionRepo;
@@ -13,6 +15,7 @@ import com.izouma.nineth.repo.PrivilegeOptionRepo;
 import com.izouma.nineth.repo.UserRepo;
 import com.izouma.nineth.service.storage.StorageService;
 import com.izouma.nineth.utils.ImageUtils;
+import com.izouma.nineth.utils.excel.UploadDataListener;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.RandomStringUtils;
@@ -210,4 +213,43 @@ class CollectionServiceTest extends ApplicationTests {
         System.out.println(firstHour);
     }
 
+    @Test
+    public void createBlindBox1() throws IOException {
+
+        File file = new File("/Users/qiufangchao/Desktop/mingdan.xlsx");
+        UploadDataListener<TestExcelDTO> listener = new UploadDataListener<>();
+        List<TestExcelDTO> dtos = EasyExcel.read(file, TestExcelDTO.class, listener)
+                .sheet()
+                .doReadSync();
+
+        List<Collection> items = dtos.stream().map(dto -> {
+            Collection collection = collectionRepo.findById(dto.getId())
+                    .orElseThrow(new BusinessException(dto.getId() + "无藏品"));
+            if (collection.getStock() < dto.getNum()) {
+                throw new BusinessException(collection.getId() + "数量不足");
+            }
+            return collection;
+        }).collect(Collectors.toList());
+
+        Map<Long, Integer> excelMap = dtos.stream().collect(Collectors.toMap(TestExcelDTO::getId, TestExcelDTO::getNum));
+
+        String jsonStr = FileUtils.readFileToString(new File("/Users/qiufangchao/Desktop/mugen_mu.json"), "UTF-8");
+        Collection blindBox = JSON.parseObject(jsonStr, Collection.class);
+        blindBox.setType(CollectionType.BLIND_BOX);
+        blindBox.setId(null);
+        blindBox.setOnShelf(false);
+        blindBox.setSalable(false);
+        blindBox.setMinterId(7150L);
+        blindBox.setNoSoldOut(true);
+        blindBox.setMaxCount(1);
+        blindBox.setName("520盲盒");
+        blindBox.setPic(Arrays.asList(new FileObject(null, "https://cdn.raex.vip/nft/2022-04-16-19-24-54WTJLmsmR.jpg", null, "image/jpeg")));
+        collectionService.createBlindBox(new CreateBlindBox(blindBox, items.stream().map(i -> {
+            BlindBoxItem item = new BlindBoxItem();
+            item.setCollectionId(i.getId());
+            item.setTotal(excelMap.get(i.getId()));
+            return item;
+        }).collect(Collectors.toList())));
+
+    }
 }