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

Commit 84e40b30 authored by anjiabin's avatar anjiabin

实现xuper发行购买功能

parent eb788dcf
......@@ -32,6 +32,8 @@ public class XuperConfig {
private String nftApiUrl;
@Value("${liquidnet.service.galaxy.xuper.nftPlatformMnemonic}")
private String nftPlatformMnemonic;
@Value("${liquidnet.service.galaxy.xuper.nftPlatformAddress}")
private String nftPlatformAddress;
private Asset asset = null;
private static Asset staticAsset = null;
......@@ -96,4 +98,8 @@ public class XuperConfig {
public String getNftPlatformMnemonic() {
return nftPlatformMnemonic;
}
public String getNftPlatformAddress() {
return nftPlatformAddress;
}
}
......@@ -10,7 +10,7 @@ liquidnet:
path: /data/logs
name: service-goblin
max-history: 7
level: debug
level: info
mysql:
database-name: dev_ln_scene
mongodb:
......
......@@ -153,12 +153,12 @@ public class XuperTradeCommonBiz {
while(nftBuyPayTaskId == null){
Thread.sleep(500l);
count++;
log.info("=======执行第{}次查询,taskId:{}",count,nft044ReqDto.getTaskId());
log.info("=======执行nft购买第{}次查询,taskId:{}",count,nft044ReqDto.getTaskId());
//执行nft购买结果查询
GalaxyNftBuyResultQueryReqDto nftBuyResultQueryReqDto = GalaxyNftBuyResultQueryReqDto.getNew();
nftBuyResultQueryReqDto.setNftOrderPayId(nftOrderBo.getNftOrderPayId());
nftBuyResultQueryReqDto.setRouterType(routerType);
ResponseDto<GalaxyNftBuyResultQueryRespDto> buyResultQueryRespDto= this.nftBuyResultQuery(nftBuyResultQueryReqDto);
ResponseDto<GalaxyNftBuyResultQueryRespDto> buyResultQueryRespDto= this.nftBuyResultQuery(nftBuyResultQueryReqDto,nftOrderBo);
if(buyResultQueryRespDto.isSuccess()){
if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
nftBuyPayTaskId = buyResultQueryRespDto.getData().getPayTaskId();
......@@ -169,7 +169,7 @@ public class XuperTradeCommonBiz {
log.info("任务执行失败!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = buyResultQueryRespDto.getData().getTaskStatus();
//购买失败
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_FAIL.getCode(), "nft044BuyResult_resp:"+GalaxyErrorEnum.NFT_BUY_FAIL.getMessage());
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_FAIL.getCode(), "nftBuyResultQuery:"+GalaxyErrorEnum.NFT_BUY_FAIL.getMessage());
}else if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode())){
log.info("任务执行中!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = buyResultQueryRespDto.getData().getTaskStatus();
......@@ -179,7 +179,7 @@ public class XuperTradeCommonBiz {
if(count==20){
//查询超过20次,则把nftId设置为空,为后续重新入队
nftId = null;
log.info("=======查询共5次,跳出循环!taskId:{}",nft044ReqDto.getTaskId());
log.info("=======查询共20次,跳出循环!taskId:{}",nft044ReqDto.getTaskId());
break;
}
}
......@@ -189,7 +189,7 @@ public class XuperTradeCommonBiz {
}catch(Exception e){
log.error(e.getMessage(),e);
//发行失败
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_ERROR.getCode(),"nft044BuyResult_exception:"+e.getMessage());
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_ERROR.getCode(),"nftBuyResultQuery_exception:"+e.getMessage());
}
//更新订单缓存数据状态
......@@ -199,10 +199,7 @@ public class XuperTradeCommonBiz {
nftOrderBo.setNftBuyChainTimestamp(nftBuyChainTimestampStr);
}
if(StringUtil.isNotNull(nftBuyStatus)){
//转换任务状态
String nftBuyStatusStr = GalaxyEnumBiz.getTaskStatusEnum(routerType,nftBuyStatus.toString()).getCode();
nftOrderBo.setNftBuyStatus(nftBuyStatusStr);
nftOrderBo.setNftBuyStatus(nftBuyStatus.toString());
}
nftOrderBo.setNftBuyTradeHash(nftBuyTradeHash);
nftOrderBo.setNftBuyPayTaskId(nftBuyPayTaskId);
......@@ -211,7 +208,7 @@ public class XuperTradeCommonBiz {
dataUtils.updateNftOrderBuyInfo(routerType,nftOrderBo.getNftOrderPayId(),nftOrderBo);
}else{
//购买失败
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_ERROR.getCode(),"nft043Buy_resp: nftBuyTaskId:"+nftBuyTaskId);
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_ERROR.getCode(),"nftBuyResultQuery: nftBuyTaskId:"+nftBuyTaskId);
}
GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew();
......@@ -220,12 +217,12 @@ public class XuperTradeCommonBiz {
return nftBuyRespDto;
}
public ResponseDto<GalaxyNftBuyResultQueryRespDto> nftBuyResultQuery(GalaxyNftBuyResultQueryReqDto reqDto) {
public ResponseDto<GalaxyNftBuyResultQueryRespDto> nftBuyResultQuery(GalaxyNftBuyResultQueryReqDto reqDto,GalaxyNftOrderBo nftOrderBo) {
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNull(nftOrderBo)){
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_ORDER_NOT_EXIST.getCode(), GalaxyErrorEnum.PUBLISH_ORDER_NOT_EXIST.getMessage());
}
// GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
// if(StringUtil.isNull(nftOrderBo)){
// return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_ORDER_NOT_EXIST.getCode(), GalaxyErrorEnum.PUBLISH_ORDER_NOT_EXIST.getMessage());
// }
if(StringUtil.isEmpty(nftOrderBo.getNftBuyTaskId())){
return ResponseDto.failure(GalaxyErrorEnum.NFT_BUY_TASK_NOT_EXIST.getCode(), GalaxyErrorEnum.NFT_BUY_TASK_NOT_EXIST.getMessage());
......@@ -257,6 +254,7 @@ public class XuperTradeCommonBiz {
resultQueryRespDto.setTaskStatus(taskStatus);
resultQueryRespDto.setChainTimestamp(nowTimeStr);
resultQueryRespDto.setPayTaskId(xuper010QuerySdsRespDto.getMeta().getTxId());
resultQueryRespDto.setTxHash(xuper010QuerySdsRespDto.getMeta().getTxId());
return ResponseDto.success(resultQueryRespDto);
}else{
return ResponseDto.failure(GalaxyErrorEnum.NFT_PUBLISH_AND_BUY_QUERY_FAIL.getCode(),GalaxyErrorEnum.NFT_PUBLISH_AND_BUY_QUERY_FAIL.getMessage());
......
......@@ -196,7 +196,7 @@ public class XuperPublishBiz {
nftOrderBo.setNftId(nftOrderBo.getNftId());
nftOrderBo.setNftPublishChainTimestamp(nftPublishChainTimestampStr);
nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
nftOrderBo.setNftPublishTradeHash(nftOrderBo.getSeriesId());
nftOrderBo.setNftPublishTradeHash(assetMeta.getTxId());
nftOrderBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateNftOrderPublishInfo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
......@@ -204,7 +204,7 @@ public class XuperPublishBiz {
GalaxyNftPublishResultQueryRespDto nftPublishResultQueryRespDto = GalaxyNftPublishResultQueryRespDto.getNew();
nftPublishResultQueryRespDto.setNftIdBegin(nftOrderBo.getNftId());
nftPublishResultQueryRespDto.setTaskMsg(nftOrderBo.getNftId());
nftPublishResultQueryRespDto.setTxHash(nftOrderBo.getNftId());
nftPublishResultQueryRespDto.setTxHash(nftOrderBo.getNftPublishTradeHash());
nftPublishResultQueryRespDto.setChainTimestamp(nftPublishChainTimestampStr);
nftPublishResultQueryRespDto.setTaskStatus(Integer.valueOf(nftPublishStatusStr));
......
......@@ -14,7 +14,6 @@ import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
import com.liquidnet.service.galaxy.biz.GalaxyEnumBiz;
import com.liquidnet.service.galaxy.constant.GalaxyEnum;
import com.liquidnet.service.galaxy.constant.GalaxyErrorEnum;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo;
......@@ -91,6 +90,8 @@ public class XuperTradeBiz {
//初始化订单数据
if(nftOrderBo==null){
nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
nftOrderBo.setNftPublishFromAddress(xuperConfig.getNftPlatformAddress());
nftOrderBo.setNftBuyFromAddress(xuperConfig.getNftPlatformAddress());
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}else if(StringUtil.isNotNull(nftOrderBo)){
if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())
......@@ -207,7 +208,7 @@ public class XuperTradeBiz {
while (StringUtil.isEmpty(nftId)) {
Thread.sleep(500l);
count++;
log.info("=======执行第{}次查询,taskId:{}", count, nft035ReqDto.getTaskId());
log.info("=======执行nft发行第{}次查询,taskId:{}", count, nft035ReqDto.getTaskId());
//执行nft发行结果查询
GalaxyNftPublishResultQueryReqDto nftPublishResultQueryReqDto = GalaxyNftPublishResultQueryReqDto.getNew();
nftPublishResultQueryReqDto.setNftOrderPayId(reqDto.getNftOrderPayId());
......@@ -306,8 +307,7 @@ public class XuperTradeBiz {
}
if(StringUtil.isNotNull(nftPublishStatus)){
//转换任务状态
String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nftPublishStatus.toString()).getCode();
nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
nftOrderBo.setNftPublishStatus(nftPublishStatus.toString());
}
nftOrderBo.setNftPublishTradeHash(nftPublishTradeHash);
nftOrderBo.setUpdatedAt(LocalDateTime.now());
......@@ -372,7 +372,7 @@ public class XuperTradeBiz {
GalaxyNftBuyResultQueryReqDto nftBuyResultQueryReqDto = GalaxyNftBuyResultQueryReqDto.getNew();
nftBuyResultQueryReqDto.setNftOrderPayId(reqDto.getNftOrderPayId());
nftBuyResultQueryReqDto.setRouterType(reqDto.getRouterType());
ResponseDto<GalaxyNftBuyResultQueryRespDto> buyResultQueryRespDto= xuperTradeCommonBiz.nftBuyResultQuery(nftBuyResultQueryReqDto);
ResponseDto<GalaxyNftBuyResultQueryRespDto> buyResultQueryRespDto= xuperTradeCommonBiz.nftBuyResultQuery(nftBuyResultQueryReqDto,nftOrderBo);
if(buyResultQueryRespDto.isSuccess()){
GalaxyNftBuyResultQueryRespDto nftBuyResultQueryRespDtoTemp = buyResultQueryRespDto.getData();
BeanUtil.copy(nftBuyResultQueryRespDtoTemp,nftOrderBo);
......
......@@ -42,6 +42,17 @@ public class TestUrlHash {
private XuperConfig xuperConfig;
@Test
public void getAccount(){
Account account = null;
try {
account = xuperSdkUtil.getAccount(xuperConfig.getNftPlatformMnemonic());
log.info("accountgetAddress : {}",account.getAddress());
} catch (Exception var25) {
Base.logger.warning("account esdsa sign failed" + var25);
throw new XupterException(GalaxyErrorEnum.SERIES_NFT_HASH_CREATE_FAIL.getCode(),GalaxyErrorEnum.SERIES_NFT_HASH_CREATE_FAIL.getMessage());
}
}
@Test
public void testGetNftHashByNftUrl(){
String url = "https://zhixinliantest-1302317679.cos.ap-guangzhou.myqcloud.com/nft/4e40d5f6f65aa8ec9bc33ab424e0167e68783bbe95d4d265086314d749808eef/ZXLNFTIMAGE202202241512003609141721.jpg";
......
......@@ -6,6 +6,7 @@ import com.liquidnet.common.third.xuper.constant.XuperEnum;
import com.liquidnet.common.third.xuper.dto.*;
import com.liquidnet.common.third.xuper.exception.XupterException;
import com.liquidnet.common.third.xuper.util.XuperSdkUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.galaxy.biz.GalaxyCommonBiz;
......@@ -21,6 +22,7 @@ import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Date;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
......@@ -48,8 +50,11 @@ public class TestXuperSdkUtil {
private static String customerMnemonic2 = "person lucky trophy wall kangaroo body bounce coach unable sister second goat guitar virus tree security acoustic ankle kiss deputy sunny message weapon believe";
@Test
public void test(){
byte[] byteArrays = Hash.doubleSha256("百".getBytes());
System.out.println(new String(byteArrays));
// byte[] byteArrays = Hash.doubleSha256("百".getBytes());
// System.out.println(new String(byteArrays));
Integer time = 1656644857;
String nowTimeStr = DateUtil.format(new Date(time),DateUtil.Formatter.yyyyMMddHHmmss);
System.out.println("nowTimeStr==="+nowTimeStr);
}
@Test
......@@ -444,9 +449,9 @@ public class TestXuperSdkUtil {
Xuper010QuerySdsReqDto reqDto = Xuper010QuerySdsReqDto.getNew();
// 定义返回结果对象
Xuper010QuerySdsRespDto respDto = null;
long assetId = 171095615845019437l;
// long assetId = 1532351545249738541l;
long shardId = 1l;
// long assetId = 171095615845019437l;
long assetId = 477060752401870637l;
long shardId = 4l;
try {
reqDto.setAssetId(assetId);
reqDto.setShardId(shardId);
......
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