记得上下班打卡 | git大法好,push需谨慎

Commit feb14c56 authored by anjiabin's avatar anjiabin

完善nft发行购买相关功能

parent 10824e6f
......@@ -44,19 +44,19 @@ public class GalaxyNftOrderBo implements Serializable,Cloneable {
private Long nftPrice;
/**
* 转出方地址
* nft发行任务ID
*/
private String fromAddress;
private String nftPublishTaskId;
/**
* 转方地址
* 转方地址
*/
private String toAddress;
private String nftPublishFromAddress;
/**
* nft发行任务ID
* 转入方地址
*/
private String nftPublishTaskId;
private String nftPublishToAddress;
/**
* nft发行时间
......@@ -76,6 +76,15 @@ public class GalaxyNftOrderBo implements Serializable,Cloneable {
* @return
*/
private String nftBuyTaskId;
/**
* 转出方地址
*/
private String nftBuyFromAddress;
/**
* 转入方地址
*/
private String nftBuyToAddress;
/**
* nft购买时间
*/
......
......@@ -44,19 +44,19 @@ public class GalaxyNftOrderVo implements Serializable,Cloneable {
private Long nftPrice;
/**
* 转出方地址
* nft发行任务ID
*/
private String fromAddress;
private String nftPublishTaskId;
/**
* 转方地址
* 转方地址
*/
private String toAddress;
private String nftPublishFromAddress;
/**
* nft发行任务ID
* 转入方地址
*/
private String nftPublishTaskId;
private String nftPublishToAddress;
/**
* nft发行时间
......@@ -76,6 +76,15 @@ public class GalaxyNftOrderVo implements Serializable,Cloneable {
* @return
*/
private String nftBuyTaskId;
/**
* 转出方地址
*/
private String nftBuyFromAddress;
/**
* 转入方地址
*/
private String nftBuyToAddress;
/**
* nft购买时间
*/
......
......@@ -469,7 +469,8 @@ public class ZxinArtworkBiz {
seriesNftInfoBo.setDisplayUrl(reqDto.getDisplayUrl());
seriesNftInfoBo.setNftDesc(reqDto.getNftDesc());
seriesNftInfoBo.setNftFlag(reqDto.getNftFlag());
seriesNftInfoBo.setSellCount(reqDto.getSellCount()==null?BigDecimal.ONE:new BigDecimal(reqDto.getSellCount()));
BigDecimal sellCount = new BigDecimal(reqDto.getSellCount()).multiply(BigDecimal.valueOf(100l)); //积分
seriesNftInfoBo.setSellCount(sellCount);
seriesNftInfoBo.setNftHash(zxlnftBiz.getHashString(reqDto.getNftUrl()));
seriesNftInfoBo.setRouterType(reqDto.getRouterType());
seriesNftInfoBo.setCreatedAt(LocalDateTime.now());
......
package com.liquidnet.service.galaxy.router.zxin.biz;
import com.liquidnet.common.third.zxlnft.config.ZxlnftConfig;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ZxinCommonBiz
* @Package com.liquidnet.service.galaxy.router.zxin.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/30 17:51
*/
@Slf4j
@Component
public class ZxinCommonBiz {
@Autowired
private ZxlnftConfig zxlnftConfig;
public GalaxyNftOrderBo buildNftOrderBo(String nftOrderPayId,GalaxyUserInfoBo userInfoBo, GalaxySeriesNftInfoBo seriesNftInfoBo){
GalaxyNftOrderBo nftOrderBo = GalaxyNftOrderBo.getNew();
nftOrderBo.setUserId(userInfoBo.getUserId());
nftOrderBo.setSkuId(seriesNftInfoBo.getSkuId());
nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName());
nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId());
nftOrderBo.setNftOrderPayId(nftOrderPayId);
nftOrderBo.setNftId(null);
nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue());
nftOrderBo.setNftPublishTaskId(null);
nftOrderBo.setNftPublishFromAddress(zxlnftConfig.getNftPlatformAddress());
nftOrderBo.setNftPublishToAddress("NFT");
nftOrderBo.setNftPublishChainTimestamp(null);
nftOrderBo.setNftPublishStatus(null);
nftOrderBo.setNftPublishTradeHash(null);
nftOrderBo.setNftBuyTaskId(null);
nftOrderBo.setNftBuyFromAddress(zxlnftConfig.getNftPlatformAddress());
nftOrderBo.setNftBuyToAddress(userInfoBo.getBlockChainAddress());
nftOrderBo.setNftBuyChainTimestamp(null);
nftOrderBo.setNftBuyStatus(null);
nftOrderBo.setNftBuyTradeHash(null);
nftOrderBo.setNftBuyPayTaskId(null);
nftOrderBo.setRouterType(seriesNftInfoBo.getRouterType());
nftOrderBo.setCreatedAt(LocalDateTime.now());
nftOrderBo.setUpdatedAt(null);
return nftOrderBo;
}
}
package com.liquidnet.service.galaxy.router.zxin.biz;
import com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz;
import com.liquidnet.common.third.zxlnft.config.ZxlnftConfig;
import com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum;
import com.liquidnet.common.third.zxlnft.dto.*;
import com.liquidnet.common.third.zxlnft.util.ZxlWalletSdkUtil;
import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
......@@ -26,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
......@@ -43,20 +41,11 @@ public class ZxinPublishBiz {
@Autowired
private ZxlnftSdkUtil zxlnftSdkUtil;
@Autowired
private ZxlWalletSdkUtil zxlWalletSdkUtil;
@Autowired
private ZxlnftBiz zxlnftBiz;
@Autowired
private ZxlnftConfig zxlnftConfig;
@Autowired
private DataUtils dataUtils;
@Autowired
private ZxinTradeBiz zxinTradeBiz;
private ZxinCommonBiz zxinCommonBiz;
/**
* nft发行
......@@ -87,7 +76,7 @@ public class ZxinPublishBiz {
Long publishCount = 1L;
//开始索引
Integer seriesBeginIndex = 0;
Long sellCount = Long.valueOf(seriesNftInfoBo.getSellCount().multiply(BigDecimal.valueOf(100l)).longValue()); //积分
Long sellCount = seriesNftInfoBo.getSellCount().longValue(); //积分
/**
* 根据sku获取系列Id
*/
......@@ -142,16 +131,8 @@ public class ZxinPublishBiz {
//构造缓存数据
if(nftOrderBo==null){
nftOrderBo = GalaxyNftOrderBo.getNew();
nftOrderBo.setUserId(userInfoBo.getUserId());
nftOrderBo.setSkuId(reqDto.getSkuId());
nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName());
nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId());
nftOrderBo.setNftOrderPayId(reqDto.getNftOrderPayId());
nftOrderBo = zxinCommonBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
nftOrderBo.setNftId(nftId);
nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue());
nftOrderBo.setFromAddress("");
nftOrderBo.setToAddress("");
nftOrderBo.setNftPublishTaskId(taskId);
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}
......@@ -176,21 +157,24 @@ public class ZxinPublishBiz {
ZxlnftResponseDto<Nft035PublishResultRespDto> nft035RespDtoTemp = zxlnftSdkUtil.nft035PublishResult(nft035ReqDto);
if(nft035RespDtoTemp.isSuccess()){
GalaxyNftPublishResultQueryRespDto nftPublishResultQueryRespDto = GalaxyNftPublishResultQueryRespDto.getNew();
BeanUtil.copy(nft035RespDtoTemp.getData(),nftPublishResultQueryRespDto);
//设置时间
String nowTimeStr = DateUtil.format(new Date(nft035RespDtoTemp.getData().getChainTimestamp().longValue()*1000),DateUtil.Formatter.yyyyMMddHHmmss);
nftPublishResultQueryRespDto.setChainTimestamp(nowTimeStr);
String nftPublishChainTimestampStr = DateUtil.format(new Date(nft035RespDtoTemp.getData().getChainTimestamp().longValue()*1000),DateUtil.Formatter.yyyyMMddHHmmss);
//转换任务状态
Integer taskStatus = Integer.valueOf(GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nft035RespDtoTemp.getData().getTaskStatus().toString()).getCode());
nftPublishResultQueryRespDto.setTaskStatus(taskStatus);
String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nft035RespDtoTemp.getData().getTaskStatus().toString()).getCode();
//更新缓存数据状态
nftOrderBo.setNftId(nft035RespDtoTemp.getData().getNftIdBegin());
nftOrderBo.setNftPublishChainTimestamp(nftPublishChainTimestampStr);
nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
nftOrderBo.setNftPublishTradeHash(nft035RespDtoTemp.getData().getTxHash());
nftOrderBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateNftOrderPublishInfo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
//构造返回结果
GalaxyNftPublishResultQueryRespDto nftPublishResultQueryRespDto = GalaxyNftPublishResultQueryRespDto.getNew();
BeanUtil.copy(nft035RespDtoTemp.getData(),nftPublishResultQueryRespDto);
nftPublishResultQueryRespDto.setChainTimestamp(nftPublishChainTimestampStr);
nftPublishResultQueryRespDto.setTaskStatus(Integer.valueOf(nftPublishStatusStr));
return ResponseDto.success(nftPublishResultQueryRespDto);
}else{
......@@ -203,7 +187,7 @@ public class ZxinPublishBiz {
* @param reqDto
* @return
*/
public ResponseDto<GalaxyNftPublishRespDto> nftPublishBackup(GalaxyNftPublishReqDto reqDto) {
public ResponseDto<GalaxyNftPublishRespDto> nftPublishSync(GalaxyNftPublishReqDto reqDto) {
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNotNull(nftOrderBo)&&StringUtil.isNotEmpty(nftOrderBo.getNftId())){
......@@ -235,6 +219,9 @@ public class ZxinPublishBiz {
//返回参数nftId
String nftId = null;
String taskId = null;
Long nftPublishChainTimestamp = null;
Integer nftPublishStatus = null;
String nftPublishTradeHash = null;
//查询系列信息
......@@ -294,6 +281,9 @@ public class ZxinPublishBiz {
log.info("=======执行第{}次查询,taskId:{}", count, nft035ReqDto.getTaskId());
if (nft035RespDtoTemp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_SUCCESS.getCode())) {
nftIdBegin = nft035RespDtoTemp.getData().getNftIdBegin();
nftPublishChainTimestamp = nft035RespDtoTemp.getData().getChainTimestamp();
nftPublishStatus = nft035RespDtoTemp.getData().getTaskStatus();
nftPublishTradeHash = nft035RespDtoTemp.getData().getTxHash();
} else if (nft035RespDtoTemp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())) {
log.info("任务执行失败!taskId:{}", nft035ReqDto.getTaskId());
return null;
......@@ -322,16 +312,17 @@ public class ZxinPublishBiz {
//构造缓存数据
if(nftOrderBo==null){
nftOrderBo = GalaxyNftOrderBo.getNew();
nftOrderBo.setUserId(userInfoBo.getUserId());
nftOrderBo.setSkuId(reqDto.getSkuId());
nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName());
nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId());
nftOrderBo.setNftOrderPayId(reqDto.getNftOrderPayId());
nftOrderBo = zxinCommonBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
nftOrderBo.setNftId(nftId);
nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue());
nftOrderBo.setFromAddress("");
nftOrderBo.setToAddress("");
nftOrderBo.setNftPublishTaskId(taskId);
//设置时间
String nftPublishChainTimestampStr = DateUtil.format(new Date(nftPublishChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss);
//转换任务状态
String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nftPublishStatus.toString()).getCode();
nftOrderBo.setNftPublishChainTimestamp(nftPublishChainTimestampStr);
nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
nftOrderBo.setNftPublishTradeHash(nftPublishTradeHash);
nftOrderBo.setUpdatedAt(LocalDateTime.now());
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}
return ResponseDto.success(nftPublishRespDto);
......
......@@ -5,7 +5,6 @@ import com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz;
import com.liquidnet.common.third.zxlnft.config.ZxlnftConfig;
import com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum;
import com.liquidnet.common.third.zxlnft.dto.*;
import com.liquidnet.common.third.zxlnft.util.ZxlWalletSdkUtil;
import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.ResponseDto;
......@@ -21,7 +20,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
......@@ -40,9 +38,6 @@ public class ZxinTradeBiz {
@Autowired
private ZxlnftSdkUtil zxlnftSdkUtil;
@Autowired
private ZxlWalletSdkUtil zxlWalletSdkUtil;
@Autowired
private ZxlnftBiz zxlnftBiz;
......@@ -52,6 +47,9 @@ public class ZxinTradeBiz {
@Autowired
private DataUtils dataUtils;
@Autowired
private ZxinCommonBiz zxinCommonBiz;
public ResponseDto<GalaxyNftBuyRespDto> nftBuy(GalaxyNftBuyReqDto nftBuyReqDto){
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(nftBuyReqDto.getRouterType(),nftBuyReqDto.getNftOrderPayId());
......@@ -96,18 +94,7 @@ public class ZxinTradeBiz {
//初始化订单数据
if(nftOrderBo==null){
nftOrderBo = GalaxyNftOrderBo.getNew();
nftOrderBo.setUserId(userInfoBo.getUserId());
nftOrderBo.setSkuId(reqDto.getSkuId());
nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName());
nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId());
nftOrderBo.setNftOrderPayId(reqDto.getNftOrderPayId());
nftOrderBo.setNftId(null);
nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue());
nftOrderBo.setFromAddress(zxlnftConfig.getNftPlatformAddress());
nftOrderBo.setToAddress("NFT");
nftOrderBo.setNftPublishTaskId(null);
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
nftOrderBo = zxinCommonBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
}
......@@ -123,7 +110,7 @@ public class ZxinTradeBiz {
//开始索引
Integer seriesBeginIndex = 0;
//发行金额
Long sellCount = Long.valueOf(seriesNftInfoBo.getSellCount().multiply(BigDecimal.valueOf(100l)).longValue()); //积分
Long sellCount = seriesNftInfoBo.getSellCount().longValue(); //积分
/**
* 根据sku获取系列Id
*/
......@@ -469,6 +456,10 @@ public class ZxinTradeBiz {
//先更新nft发行数据
dataUtils.updateNftOrderBuyInfo(routerType,nftOrderBo.getNftOrderPayId(),nftOrderBo);
}
return null;
GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew();
nftBuyRespDto.setUserId(userInfoBo.getUserId());
nftBuyRespDto.setNftId(null);
return nftBuyRespDto;
}
}
......@@ -300,7 +300,7 @@ public class DataUtils {
queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_nft_order_info.insert"),
new Object[]{nftOrderPayId,nftOrderBo.getUserId(),nftOrderBo.getSkuId(),nftOrderBo.getSeriesName(),nftOrderBo.getSeriesId()
,nftOrderBo.getNftId(),nftOrderBo.getNftPrice(),nftOrderBo.getFromAddress(),nftOrderBo.getToAddress(),nftOrderBo.getNftPublishTaskId()
,nftOrderBo.getNftId(),nftOrderBo.getNftPrice(),nftOrderBo.getNftPublishFromAddress(),nftOrderBo.getNftPublishToAddress(),nftOrderBo.getNftPublishTaskId()
,nftOrderBo.getNftBuyTaskId(),nftOrderBo.getNftBuyPayTaskId(),nftOrderBo.getRouterType(),LocalDateTime.now(),null
}
, MQConst.GalaxyQueue.SQL_NFT_ORDER_INFO.getKey()
......
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