|
|
@@ -2,18 +2,37 @@ package com.izouma.nineth.service;
|
|
|
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.izouma.nineth.ApplicationTests;
|
|
|
+import com.izouma.nineth.TokenHistory;
|
|
|
+import com.izouma.nineth.domain.AirDrop;
|
|
|
+import com.izouma.nineth.domain.Asset;
|
|
|
+import com.izouma.nineth.domain.DropTarget;
|
|
|
import com.izouma.nineth.dto.AirDropExcelDTO;
|
|
|
+import com.izouma.nineth.enums.AssetStatus;
|
|
|
+import com.izouma.nineth.exception.BusinessException;
|
|
|
+import com.izouma.nineth.repo.AirDropRepo;
|
|
|
+import com.izouma.nineth.repo.AssetRepo;
|
|
|
+import com.izouma.nineth.repo.TokenHistoryRepo;
|
|
|
import com.izouma.nineth.utils.excel.UploadDataListener;
|
|
|
import org.junit.Test;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class AirDropServiceTest extends ApplicationTests {
|
|
|
@Autowired
|
|
|
- AirDropService airDropService;
|
|
|
+ AirDropService airDropService;
|
|
|
+ @Autowired
|
|
|
+ AirDropRepo airDropRepo;
|
|
|
+ @Autowired
|
|
|
+ AssetRepo assetRepo;
|
|
|
+ @Autowired
|
|
|
+ TokenHistoryRepo tokenHistoryRepo;
|
|
|
+ @Autowired
|
|
|
+ CollectionService collectionService;
|
|
|
|
|
|
@Test
|
|
|
public void drop() {
|
|
|
@@ -34,4 +53,37 @@ public class AirDropServiceTest extends ApplicationTests {
|
|
|
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void cancel() {
|
|
|
+ AirDrop airDrop = airDropRepo.findById(7607018L).orElseThrow(new BusinessException(""));
|
|
|
+ List<Asset> resultA = new ArrayList<>();
|
|
|
+ List<TokenHistory> resultT = new ArrayList<>();
|
|
|
+ int total = 0;
|
|
|
+ for (DropTarget target : airDrop.getTargets()) {
|
|
|
+ List<Asset> assets = assetRepo.findAllByUserIdAndCollectionIdAndStatus(target.getUserId(), airDrop.getCollectionId(), AssetStatus.NORMAL);
|
|
|
+ assets.sort((a, b) -> b.getId().compareTo(a.getId()));
|
|
|
+ if (target.getNum() > assets.size()) {
|
|
|
+ throw new BusinessException(target.getUserId() + ":" + target.getNum() + ":" + assets.size());
|
|
|
+ }
|
|
|
+ for (int i = 0; i < target.getNum(); i++) {
|
|
|
+ Asset asset = assets.get(i);
|
|
|
+ resultA.add(asset);
|
|
|
+ TokenHistory tokens = tokenHistoryRepo.findByToUserIdAndTokenId(target.getUserId(), asset.getTokenId())
|
|
|
+ .orElseThrow(new BusinessException(""));
|
|
|
+ resultT.add(tokens);
|
|
|
+ total++;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+// System.out.println(total);
|
|
|
+// System.out.println(airDrop.getTargets().stream().mapToInt(DropTarget::getNum).sum());
|
|
|
+//
|
|
|
+// assetRepo.deleteAll(resultA);
|
|
|
+// tokenHistoryRepo.deleteAll(resultT);
|
|
|
+//
|
|
|
+// collectionService.increaseStock(airDrop.getCollectionId(), total);
|
|
|
+// collectionService.decreaseSale(airDrop.getCollectionId(), total);
|
|
|
+ }
|
|
|
}
|