|
@@ -2,6 +2,7 @@ package com.izouma.nineth.service;
|
|
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.convert.Convert;
|
|
|
import com.izouma.nineth.TokenHistory;
|
|
import com.izouma.nineth.TokenHistory;
|
|
|
|
|
+import com.izouma.nineth.config.Constants;
|
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
|
import com.izouma.nineth.domain.Collection;
|
|
import com.izouma.nineth.domain.Collection;
|
|
|
import com.izouma.nineth.domain.*;
|
|
import com.izouma.nineth.domain.*;
|
|
@@ -340,13 +341,23 @@ public class AssetService {
|
|
|
Objects.requireNonNull(toUser, "转让人不能为空");
|
|
Objects.requireNonNull(toUser, "转让人不能为空");
|
|
|
Objects.requireNonNull(reason, "转让原因不能为空");
|
|
Objects.requireNonNull(reason, "转让原因不能为空");
|
|
|
|
|
|
|
|
|
|
+ User newOwner = toUser;
|
|
|
|
|
+ if (safeTransfer) {
|
|
|
|
|
+ String name = "0x" + RandomStringUtils.randomAlphabetic(8);
|
|
|
|
|
+ newOwner = userRepo.save(User.builder()
|
|
|
|
|
+ .username(name)
|
|
|
|
|
+ .nickname(name)
|
|
|
|
|
+ .avatar(Constants.DEFAULT_AVATAR)
|
|
|
|
|
+ .build());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
Asset newAsset = new Asset();
|
|
Asset newAsset = new Asset();
|
|
|
BeanUtils.copyProperties(asset, newAsset);
|
|
BeanUtils.copyProperties(asset, newAsset);
|
|
|
newAsset.setId(null);
|
|
newAsset.setId(null);
|
|
|
newAsset.setUserId(toUser.getId());
|
|
newAsset.setUserId(toUser.getId());
|
|
|
- newAsset.setOwner(toUser.getNickname());
|
|
|
|
|
- newAsset.setOwnerId(toUser.getId());
|
|
|
|
|
- newAsset.setOwnerAvatar(toUser.getAvatar());
|
|
|
|
|
|
|
+ newAsset.setOwner(newOwner.getNickname());
|
|
|
|
|
+ newAsset.setOwnerId(newOwner.getId());
|
|
|
|
|
+ newAsset.setOwnerAvatar(newOwner.getAvatar());
|
|
|
newAsset.setPublicShow(false);
|
|
newAsset.setPublicShow(false);
|
|
|
newAsset.setConsignment(false);
|
|
newAsset.setConsignment(false);
|
|
|
newAsset.setPublicCollectionId(null);
|
|
newAsset.setPublicCollectionId(null);
|
|
@@ -358,6 +369,7 @@ public class AssetService {
|
|
|
newAsset.setType(CollectionType.DEFAULT);
|
|
newAsset.setType(CollectionType.DEFAULT);
|
|
|
newAsset.setSource(TransferReason.GIFT == reason ? AssetSource.GIFT : AssetSource.TRANSFER);
|
|
newAsset.setSource(TransferReason.GIFT == reason ? AssetSource.GIFT : AssetSource.TRANSFER);
|
|
|
newAsset.setTags(new HashSet<>(asset.getTags()));
|
|
newAsset.setTags(new HashSet<>(asset.getTags()));
|
|
|
|
|
+ newAsset.setSafeTransfer(safeTransfer);
|
|
|
assetRepo.save(newAsset);
|
|
assetRepo.save(newAsset);
|
|
|
|
|
|
|
|
TokenHistory tokenHistory = TokenHistory.builder()
|
|
TokenHistory tokenHistory = TokenHistory.builder()
|
|
@@ -370,21 +382,16 @@ public class AssetService {
|
|
|
.toAvatar(toUser.getAvatar())
|
|
.toAvatar(toUser.getAvatar())
|
|
|
.operation(reason.getDescription())
|
|
.operation(reason.getDescription())
|
|
|
.price(TransferReason.GIFT == reason ? null : price)
|
|
.price(TransferReason.GIFT == reason ? null : price)
|
|
|
- .sFromUser(tokenHistoryRepo.findByTokenIdOrderByCreatedAtDesc(asset.getTokenId())
|
|
|
|
|
- .stream().findFirst().map(TokenHistory::getSToUser).orElse(null))
|
|
|
|
|
.build();
|
|
.build();
|
|
|
- if (safeTransfer) {
|
|
|
|
|
- tokenHistory.setSToUser("9th_" + RandomStringUtils.randomAlphabetic(8));
|
|
|
|
|
- }
|
|
|
|
|
tokenHistoryRepo.save(tokenHistory);
|
|
tokenHistoryRepo.save(tokenHistory);
|
|
|
|
|
|
|
|
asset.setPublicShow(false);
|
|
asset.setPublicShow(false);
|
|
|
asset.setConsignment(false);
|
|
asset.setConsignment(false);
|
|
|
asset.setPublicCollectionId(null);
|
|
asset.setPublicCollectionId(null);
|
|
|
asset.setStatus(TransferReason.GIFT == reason ? AssetStatus.GIFTED : AssetStatus.TRANSFERRED);
|
|
asset.setStatus(TransferReason.GIFT == reason ? AssetStatus.GIFTED : AssetStatus.TRANSFERRED);
|
|
|
- asset.setOwner(toUser.getNickname());
|
|
|
|
|
- asset.setOwnerId(toUser.getId());
|
|
|
|
|
- asset.setOwnerAvatar(toUser.getAvatar());
|
|
|
|
|
|
|
+ asset.setOwner(newOwner.getNickname());
|
|
|
|
|
+ asset.setOwnerId(newOwner.getId());
|
|
|
|
|
+ asset.setOwnerAvatar(newOwner.getAvatar());
|
|
|
assetRepo.save(asset);
|
|
assetRepo.save(asset);
|
|
|
|
|
|
|
|
//vip权限转让
|
|
//vip权限转让
|