Commit 84fd3bfc authored by tangtuo's avatar tangtuo

转让nft时添加转让记录

parent 489ec57f
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @author tangtuo
* @date 2021/6/30 15:42
*/
@Data
@ApiModel("nft信息")
@Accessors(chain = true)
@TableName("tb_nft_transfer_record")
public class NftTransferRecord {
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("nft主键")
private Integer nftId;
@ApiModelProperty("nft哈希")
private String nftHash;
@ApiModelProperty("交易转让hash")
private String transferHash;
@ApiModelProperty("转出人地址")
private String fromAddress;
@ApiModelProperty("接收人地址")
private String toAddress;
@ApiModelProperty("创建时间")
private Date createDate;
@ApiModelProperty("修改时间")
private Date updateDate;
}
......@@ -17,6 +17,9 @@ public class NftVo {
@ApiModelProperty("主键")
private Integer id;
@ApiModelProperty("nft拥有者的用户id")
private Integer userId;
@ApiModelProperty("名称")
private String name;
......@@ -76,6 +79,7 @@ public class NftVo {
this.publishTime = DateUtil.format(nft.getPublishTime(), "yyyy/MM/dd HH:mm:ss");
this.isArchives = nft.getIsArchives();
this.isGrant = nft.getIsGrant();
this.userId = nft.getUserId();
this.collection = false;
}
}
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.NftTransferRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* @author tangtuo
* @date 2021/6/28 11:25
*/
@Mapper
public interface NftTransferRecordMapper extends BaseMapper<NftTransferRecord> {
}
......@@ -30,10 +30,6 @@ public class NftTransferParam {
@NotBlank(message = "接收人地址不能为空")
private String receiveWallet;
@ApiModelProperty("接收人")
@NotBlank(message = "接收人不能为空")
private String receiveNickname;
@ApiModelProperty("数量")
@NotNull(message = "数量不能为空")
private Integer count;
......
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.NftChainInfo;
import com.fzm.common.entity.NftTransferRecord;
/**
* @author tangtuo
* @date 2021/7/5 15:08
*/
public interface NftTransferRecordService extends IService<NftTransferRecord> {
}
......@@ -19,10 +19,7 @@ import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.NftMapper;
import com.fzm.common.params.NftTransferParam;
import com.fzm.common.properties.SmsProperties;
import com.fzm.common.service.CategoryService;
import com.fzm.common.service.CollectionService;
import com.fzm.common.service.NftService;
import com.fzm.common.service.UserService;
import com.fzm.common.service.*;
import com.fzm.common.utils.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -66,11 +63,15 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
private CollectionService collectionService;
@Resource
private NftTransferRecordService nftTransferRecordService;
@Resource
private OssUtil ossUtil;
@Resource
private SmsUtil smsUtil;
@Resource
private SmsProperties smsProperties;
@Resource
......@@ -162,6 +163,10 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
if (receiveUser == null) {
throw GlobalException.newException(ResultCode.FAILED, "接手人非本系统注册用户,暂不支持转让");
}
// 不能自己向自己转让nft
if (user.getWallet().equals(receiveUser.getWallet())) {
throw GlobalException.newException(ResultCode.FAILED, "不能向自己转让nft");
}
// 转让nft
String hash = paraChainClient.evmTransferNFT1155(contractName, user.getWallet(), null, param.getReceiveWallet(), nft.getTokenId(), param.getCount(), true);
if (StringUtils.isBlank(hash)) {
......@@ -178,6 +183,14 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
setTransferHash(hash);
transferNft.setId(nft.getId());
updateById(transferNft);
// 保存nft的转让记录
NftTransferRecord record = new NftTransferRecord();
record.setNftId(nft.getId()).
setNftHash(nft.getNftHash()).
setTransferHash(hash).
setFromAddress(user.getWallet()).
setToAddress(receiveUser.getWallet());
nftTransferRecordService.save(record);
return true;
}
......
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.mapper.AuthPersonMapper;
import com.fzm.common.mapper.NftTransferRecordMapper;
import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.NftTransferRecordService;
import org.springframework.stereotype.Service;
/**
* @author tangtuo
* @date 2021/6/28 11:29
*/
@Service
public class NftTransferRecordServiceImpl extends ServiceImpl<NftTransferRecordMapper, NftTransferRecord> implements NftTransferRecordService {
}
......@@ -83,7 +83,7 @@ public class UserController {
@Authentication
@PostMapping(value = "/logout")
@ApiOperation(value = "判断用户是否已注册过")
@ApiOperation(value = "退出登录")
public ResponseModel<Boolean> logout(@RequestHeader String Authorization) {
Integer userId = JwtUtil.getUserIdFromToken(Authorization);
redisUtil.delete(RedisConstant.PORTAL_USER_TOKEN_PREFIX + userId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment