|
|
@@ -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())));
|
|
|
+
|
|
|
+ }
|
|
|
}
|