package com.izouma.nineth.service; import com.izouma.nineth.ApplicationTests; import com.izouma.nineth.TokenHistory; import com.izouma.nineth.domain.*; import com.izouma.nineth.dto.NFT; import com.izouma.nineth.dto.NFTAccount; import com.izouma.nineth.repo.*; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.Arrays; import java.util.List; class AssetServiceTest extends ApplicationTests { @Autowired private OrderRepo orderRepo; @Autowired private BlindBoxItemRepo blindBoxItemRepo; @Autowired private AssetService assetService; @Autowired private CollectionRepo collectionRepo; @Autowired private UserRepo userRepo; @Autowired private CollectionService collectionService; @Autowired private AssetMintService assetMintService; @Autowired private AssetRepo assetRepo; @Autowired private NFTService nftService; @Autowired private TokenHistoryRepo tokenHistoryRepo; @Test void createAsset() { BlindBoxItem item = blindBoxItemRepo.findById(1860L).get(); Order order = orderRepo.findById(1922L).get(); } @Test void cancelConsignment() { assetService.cancelConsignment(1209L); } @Test void testCancelConsignment() { } @Test public void testLock() throws InterruptedException { assetService.testLock("123", "ddd"); } @Test public void testCreateAsset() { Order order = orderRepo.findById(4618L).get(); Collection collection = collectionRepo.findById(order.getCollectionId()).get(); BlindBoxItem blindBoxItem = blindBoxItemRepo.findById(4250L).get(); User user = userRepo.findById(order.getUserId()).get(); assetService.createAsset(blindBoxItem, user, order.getId(), order.getPrice(), "出售", 1); } @Test public void mint() { Asset asset = assetRepo.findById(4622L).get(); assetMintService.mint(asset, 1L); } @Test public void setHistory() { assetService.setHistory(); } @Test public void cancelCon() { for (Asset asset : assetRepo.findNoAccount()) { try { assetService.cancelConsignment(asset.getId()); } catch (Exception e) { } } } @Test public void fixHash() throws Exception { for (Asset asset : assetRepo.findByTxHash("1")) { User user = userRepo.findById(asset.getUserId()).get(); if (StringUtils.isEmpty(user.getPublicKey())) { NFTAccount account = nftService.createAccount(user.getUsername() + "_"); user.setNftAccount(account.getAccountId()); user.setKmsId(account.getAccountKmsId()); user.setPublicKey(account.getPublicKey()); userRepo.save(user); } NFT nft = nftService.createToken(user.getNftAccount()); if (nft != null) { asset.setTokenId(nft.getTokenId()); asset.setBlockNumber(nft.getBlockNumber()); asset.setTxHash(nft.getTxHash()); asset.setGasUsed(nft.getGasUsed()); assetRepo.save(asset); List list = tokenHistoryRepo.findByTokenIdOrderByCreatedAtDesc(asset.getTokenId()); for (TokenHistory tokenHistory : list) { tokenHistory.setTokenId(asset.getTokenId()); } tokenHistoryRepo.saveAll(list); } } } @Test public void fixHash1() throws Exception { List ids = Arrays.asList(27206L, 27216L, 27242L, 27271L, 27276L, 27280L, 27292L, 27294L, 43485L); for (Asset asset : assetRepo.findByIdIn(ids)) { User user = userRepo.findById(asset.getUserId()).get(); if (StringUtils.isEmpty(user.getPublicKey())) { NFTAccount account = nftService.createAccount(user.getUsername() + "_"); user.setNftAccount(account.getAccountId()); user.setKmsId(account.getAccountKmsId()); user.setPublicKey(account.getPublicKey()); userRepo.save(user); } NFT nft = nftService.createToken(user.getNftAccount()); if (nft != null) { asset.setTokenId(nft.getTokenId()); asset.setBlockNumber(nft.getBlockNumber()); asset.setTxHash(nft.getTxHash()); asset.setGasUsed(nft.getGasUsed()); assetRepo.save(asset); TokenHistory tokenHistory = tokenHistoryRepo.save(TokenHistory.builder() .tokenId(asset.getTokenId()) .fromUser(asset.getMinter()) .fromUserId(asset.getMinterId()) .fromAvatar(asset.getMinterAvatar()) .toUser(user.getNickname()) .toUserId(user.getId()) .toAvatar(user.getAvatar()) .operation("出售") .price(asset.getPrice()) .tokenId(asset.getTokenId()) .build()); tokenHistory.setCreatedAt(asset.getCreatedAt()); tokenHistoryRepo.save(tokenHistory); } } } @Test public void fixNoHistory() { List assets = assetRepo.findByNoHistory(); for (Asset asset : assets) { if (StringUtils.isNotBlank(asset.getTokenId())){ User user = userRepo.findById(asset.getUserId()).get(); TokenHistory tokenHistory = tokenHistoryRepo.save(TokenHistory.builder() .tokenId(asset.getTokenId()) .fromUser(asset.getMinter()) .fromUserId(asset.getMinterId()) .fromAvatar(asset.getMinterAvatar()) .toUser(user.getNickname()) .toUserId(user.getId()) .toAvatar(user.getAvatar()) .operation("出售") .price(asset.getPrice()) .tokenId(asset.getTokenId()) .build()); tokenHistory.setCreatedAt(asset.getCreatedAt()); tokenHistoryRepo.save(tokenHistory); } } System.out.println(assets); } }