CollectionServiceTest.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.izouma.nineth.service;
  2. import com.alibaba.fastjson.JSON;
  3. import com.izouma.nineth.ApplicationTests;
  4. import com.izouma.nineth.domain.BlindBoxItem;
  5. import com.izouma.nineth.domain.Collection;
  6. import com.izouma.nineth.domain.FileObject;
  7. import com.izouma.nineth.dto.CreateBlindBox;
  8. import com.izouma.nineth.enums.CollectionType;
  9. import com.izouma.nineth.exception.BusinessException;
  10. import com.izouma.nineth.repo.CollectionRepo;
  11. import com.izouma.nineth.repo.PrivilegeOptionRepo;
  12. import com.izouma.nineth.repo.UserRepo;
  13. import com.izouma.nineth.service.storage.StorageService;
  14. import org.apache.commons.io.FileUtils;
  15. import org.apache.commons.io.FilenameUtils;
  16. import org.apache.commons.lang3.RandomStringUtils;
  17. import org.junit.jupiter.api.Test;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import java.io.File;
  20. import java.io.FileInputStream;
  21. import java.io.IOException;
  22. import java.nio.file.Files;
  23. import java.text.SimpleDateFormat;
  24. import java.time.LocalDateTime;
  25. import java.util.*;
  26. import java.util.concurrent.atomic.AtomicInteger;
  27. import java.util.regex.Pattern;
  28. import java.util.stream.Collectors;
  29. class CollectionServiceTest extends ApplicationTests {
  30. @Autowired
  31. private CollectionService collectionService;
  32. @Autowired
  33. private CollectionRepo collectionRepo;
  34. @Autowired
  35. private StorageService storageService;
  36. @Autowired
  37. private UserRepo userRepo;
  38. @Autowired
  39. private PrivilegeOptionRepo privilegeOptionRepo;
  40. @Autowired
  41. private SysConfigService sysConfigService;
  42. @Test
  43. void toDTO() {
  44. Collection collection = collectionRepo.findById(951L).get();
  45. assert collection.getPic() != null;
  46. }
  47. @Test
  48. public void batchUpload() throws IOException {
  49. AtomicInteger num = new AtomicInteger(2501);
  50. List<BlindBoxItem> items = new ArrayList<>();
  51. String jsonStr = FileUtils.readFileToString(new File("/Users/qiufangchao/Desktop/evo.json"), "UTF-8");
  52. Arrays.stream(new File("/Users/qiufangchao/Desktop/evo3").listFiles())
  53. .filter(f -> Pattern.matches("^BJ.*\\.png$", f.getName()))
  54. .parallel().forEach(file -> {
  55. try {
  56. Collection collection = JSON.parseObject(jsonStr, Collection.class);
  57. collection.setId(null);
  58. collection.setName(String.format("OASISPUNK.EVO #%04d", num.getAndIncrement()));
  59. collection.setStock(1);
  60. collection.setTotal(1);
  61. collection.setSale(0);
  62. collection.setMinterId(7150L);
  63. collection.setOnShelf(false);
  64. collection.setSalable(false);
  65. collection.setPic(Collections.singletonList(new FileObject("", "https://raex-meta.oss-cn-shenzhen.aliyuncs.com/image/evos3/" + file.getName(), null, "png")));
  66. collectionRepo.save(collection);
  67. System.out.println("保存成功" + collection.getId());
  68. items.add(BlindBoxItem
  69. .builder()
  70. .collectionId(collection.getId())
  71. .total(1)
  72. .stock(1)
  73. .rare(false)
  74. .build());
  75. } catch (Exception e) {
  76. }
  77. });
  78. }
  79. @Test
  80. public void createBlindBox() throws IOException {
  81. List<Collection> items = collectionRepo.findByNameLike("OASISPUNK.EVO #%").stream().filter(i -> {
  82. int num = Integer.parseInt(i.getName().substring("OASISPUNK.EVO #".length()));
  83. return num > 2500 && num <= 3000;
  84. }).collect(Collectors.toList());
  85. String jsonStr = FileUtils.readFileToString(new File("/Users/qiufangchao/Desktop/evo.json"), "UTF-8");
  86. Collection blindBox = JSON.parseObject(jsonStr, Collection.class);
  87. blindBox.setType(CollectionType.BLIND_BOX);
  88. blindBox.setId(null);
  89. blindBox.setOnShelf(false);
  90. blindBox.setSalable(false);
  91. blindBox.setMinterId(7150L);
  92. blindBox.setNoSoldOut(true);
  93. blindBox.setName("OASISPUNK.EVO绿洲朋克进化版限定盲盒S3");
  94. blindBox.setPic(Arrays.asList(new FileObject(null, "https://raex-meta.oss-cn-shenzhen.aliyuncs.com/image/evos3/fm.jpg", null, null)));
  95. collectionService.createBlindBox(new CreateBlindBox(blindBox, items.stream().map(i -> {
  96. BlindBoxItem item = new BlindBoxItem();
  97. item.setCollectionId(i.getId());
  98. item.setTotal(1);
  99. return item;
  100. }).collect(Collectors.toList())));
  101. }
  102. public FileObject uploadFile(File file) throws IOException {
  103. String ext = Optional.of(FilenameUtils.getExtension(file.getName())).orElse("")
  104. .toLowerCase().replace("jpeg", "jpg");
  105. String basePath = Optional.ofNullable(Files.probeContentType(file.toPath())).orElse("application")
  106. .split("/")[0];
  107. String path = basePath + "/" + new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())
  108. + RandomStringUtils.randomAlphabetic(8)
  109. + "." + ext;
  110. return new FileObject("", storageService.uploadFromInputStream(new FileInputStream(file), path), null, ext);
  111. }
  112. @Test
  113. public void test1() {
  114. Long collectionId = 2570204L;
  115. Collection collection = collectionRepo.findById(collectionId).orElseThrow(new BusinessException("无藏品"));
  116. if (!collection.isOnShelf() || !collection.isSalable()) {
  117. collectionId = null;
  118. } else if (collection.isScheduleSale()) {
  119. if (collection.getStartTime().isAfter(LocalDateTime.now())) {
  120. collectionId = null;
  121. }
  122. }
  123. System.out.println(collectionId);
  124. }
  125. @Test
  126. public void savePoint() {
  127. collectionService.savePoint(3749128L, LocalDateTime.now()).forEach(System.out::println);
  128. }
  129. }