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

Commit eaffc852 authored by anjiabin's avatar anjiabin

nft修改购买逻辑

parent 9639cc56
package com.liquidnet.service.galaxy.biz; package com.liquidnet.service.galaxy.biz;
import com.liquidnet.common.third.zxlnft.config.ZxlnftConfig; import com.liquidnet.common.third.zxlnft.config.ZxlnftConfig;
import com.liquidnet.service.galaxy.constant.GalaxyEnum;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo; import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo; import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo; import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo;
...@@ -39,13 +40,13 @@ public class GalaxyBeanTransferBiz { ...@@ -39,13 +40,13 @@ public class GalaxyBeanTransferBiz {
nftOrderBo.setNftPublishFromAddress(zxlnftConfig.getNftPlatformAddress()); nftOrderBo.setNftPublishFromAddress(zxlnftConfig.getNftPlatformAddress());
nftOrderBo.setNftPublishToAddress("NFT"); nftOrderBo.setNftPublishToAddress("NFT");
nftOrderBo.setNftPublishChainTimestamp(null); nftOrderBo.setNftPublishChainTimestamp(null);
nftOrderBo.setNftPublishStatus(null); nftOrderBo.setNftPublishStatus(GalaxyEnum.TaskStatusEnum.INIT.getCode());
nftOrderBo.setNftPublishTradeHash(null); nftOrderBo.setNftPublishTradeHash(null);
nftOrderBo.setNftBuyTaskId(null); nftOrderBo.setNftBuyTaskId(null);
nftOrderBo.setNftBuyFromAddress(zxlnftConfig.getNftPlatformAddress()); nftOrderBo.setNftBuyFromAddress(zxlnftConfig.getNftPlatformAddress());
nftOrderBo.setNftBuyToAddress(userInfoBo.getBlockChainAddress()); nftOrderBo.setNftBuyToAddress(userInfoBo.getBlockChainAddress());
nftOrderBo.setNftBuyChainTimestamp(null); nftOrderBo.setNftBuyChainTimestamp(null);
nftOrderBo.setNftBuyStatus(null); nftOrderBo.setNftBuyStatus(GalaxyEnum.TaskStatusEnum.INIT.getCode());
nftOrderBo.setNftBuyTradeHash(null); nftOrderBo.setNftBuyTradeHash(null);
nftOrderBo.setNftBuyPayTaskId(null); nftOrderBo.setNftBuyPayTaskId(null);
nftOrderBo.setRouterType(seriesNftInfoBo.getRouterType()); nftOrderBo.setRouterType(seriesNftInfoBo.getRouterType());
......
...@@ -158,8 +158,8 @@ public abstract class AbstractDataUtils { ...@@ -158,8 +158,8 @@ public abstract class AbstractDataUtils {
public void setSeriesNftInfoBo(String routerType, String skuId, GalaxySeriesInfoBo seriesInfoBo, GalaxySeriesNftInfoBo seriesNftInfoBo) { public void setSeriesNftInfoBo(String routerType, String skuId, GalaxySeriesInfoBo seriesInfoBo, GalaxySeriesNftInfoBo seriesNftInfoBo) {
this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_SERIES_NFT.concat(routerType).concat(":") + skuId,seriesNftInfoBo,keyExpireTime); this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_SERIES_NFT.concat(routerType).concat(":") + skuId,seriesNftInfoBo,keyExpireTime);
//初始化nft发行开始索引 //初始化nft发行绑定索引,未发行则初始化为0,
this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_PUBLISH_NFT.concat(routerType).concat(":").concat(skuId),seriesNftInfoBo.getNftIdBeginIndex()); this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_PUBLISH_NFT.concat(routerType).concat(":").concat(skuId),seriesNftInfoBo.getNftIdBeginIndex()-1);
//mongo入库 //mongo入库
GalaxySeriesNftInfoVo seriesNftInfoVo = GalaxySeriesNftInfoVo.getNew(); GalaxySeriesNftInfoVo seriesNftInfoVo = GalaxySeriesNftInfoVo.getNew();
...@@ -472,7 +472,6 @@ public abstract class AbstractDataUtils { ...@@ -472,7 +472,6 @@ public abstract class AbstractDataUtils {
Query query = Query.query(Criteria.where("seriesCode").is(seriesInfoBo.getSeriesCode())); Query query = Query.query(Criteria.where("seriesCode").is(seriesInfoBo.getSeriesCode()));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesInfoBo))); Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesInfoBo)));
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()); String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now());
update.set("crtCount",seriesInfoBo.getCrtCount()+1);
update.set("updatedAt",nowTimeStr); update.set("updatedAt",nowTimeStr);
UpdateResult result = this.getMongoTemplate().updateFirst(query,update, GalaxySeriesInfoVo.class,GalaxySeriesInfoVo.class.getSimpleName()); UpdateResult result = this.getMongoTemplate().updateFirst(query,update, GalaxySeriesInfoVo.class,GalaxySeriesInfoVo.class.getSimpleName());
log.info("updateSeriesCrtCount result:{}",result.toString()); log.info("updateSeriesCrtCount result:{}",result.toString());
...@@ -480,7 +479,7 @@ public abstract class AbstractDataUtils { ...@@ -480,7 +479,7 @@ public abstract class AbstractDataUtils {
try{ try{
this.getQueueUtil().sendMySqlRedis( this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_series_info.updateSeriesCrtCount"), SqlMapping.get("galaxy_series_info.updateSeriesCrtCount"),
new Object[]{seriesInfoBo.getCrtCount()+1,LocalDateTime.now(),seriesCode} new Object[]{seriesInfoBo.getCrtCount(),LocalDateTime.now(),seriesCode}
, MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey() , MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey()
); );
}catch(Exception e){ }catch(Exception e){
...@@ -502,15 +501,14 @@ public abstract class AbstractDataUtils { ...@@ -502,15 +501,14 @@ public abstract class AbstractDataUtils {
Query query = Query.query(Criteria.where("skuId").is(skuId)); Query query = Query.query(Criteria.where("skuId").is(skuId));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesNftInfoBo))); Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesNftInfoBo)));
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()); String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now());
update.set("nftCrtCount",seriesNftInfoBo.getNftCrtCount()+1);
update.set("updatedAt",nowTimeStr); update.set("updatedAt",nowTimeStr);
UpdateResult result = this.getMongoTemplate().updateFirst(query,update, GalaxySeriesNftInfoBo.class,GalaxySeriesNftInfoBo.class.getSimpleName()); UpdateResult result = this.getMongoTemplate().updateFirst(query,update, GalaxySeriesNftInfoVo.class,GalaxySeriesNftInfoVo.class.getSimpleName());
log.info("updateSeriesNftCrtCount result:{}",result.toString()); log.info("updateSeriesNftCrtCount result:{}",result.toString());
try{ try{
this.getQueueUtil().sendMySqlRedis( this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_series_nft_info.updateSeriesNftCrtCount"), SqlMapping.get("galaxy_series_nft_info.updateSeriesNftCrtCount"),
new Object[]{seriesNftInfoBo.getNftCrtCount()+1,LocalDateTime.now(),skuId} new Object[]{seriesNftInfoBo.getNftCrtCount(),LocalDateTime.now(),skuId}
, MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey() , MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey()
); );
}catch(Exception e){ }catch(Exception e){
......
...@@ -10,6 +10,7 @@ import com.liquidnet.commons.lang.util.StringUtil; ...@@ -10,6 +10,7 @@ import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz; import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
import com.liquidnet.service.galaxy.biz.GalaxyEnumBiz; 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.constant.GalaxyErrorEnum;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo; import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo; import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
...@@ -157,6 +158,7 @@ public class ZxinPublishBiz { ...@@ -157,6 +158,7 @@ public class ZxinPublishBiz {
nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo); nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
nftOrderBo.setNftId(nftId); nftOrderBo.setNftId(nftId);
nftOrderBo.setNftPublishTaskId(taskId); nftOrderBo.setNftPublishTaskId(taskId);
nftOrderBo.setNftPublishStatus(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode());
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo); dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
} }
return ResponseDto.success(nftPublishRespDto); return ResponseDto.success(nftPublishRespDto);
......
...@@ -216,7 +216,10 @@ public class ZxinTradeBiz { ...@@ -216,7 +216,10 @@ public class ZxinTradeBiz {
nftPublishTradeHash = nft035RespDtoTemp.getData().getTxHash(); nftPublishTradeHash = nft035RespDtoTemp.getData().getTxHash();
} else if (nft035RespDtoTemp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())) { } else if (nft035RespDtoTemp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())) {
log.info("任务执行失败!taskId:{}", nft035ReqDto.getTaskId()); log.info("任务执行失败!taskId:{}", nft035ReqDto.getTaskId());
return null; nftPublishStatus = nft035RespDtoTemp.getData().getTaskStatus();
}else if(nft035RespDtoTemp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.PROCESSING.getCode())){
log.info("任务执行中!taskId:{}", nft035ReqDto.getTaskId());
nftPublishStatus = nft035RespDtoTemp.getData().getTaskStatus();
} }
if (count == 5) { if (count == 5) {
...@@ -230,20 +233,26 @@ public class ZxinTradeBiz { ...@@ -230,20 +233,26 @@ public class ZxinTradeBiz {
log.info("发行NFT后返回给前端nftID:{}", nftIdBegin); log.info("发行NFT后返回给前端nftID:{}", nftIdBegin);
log.info("总共执行了{}次查询 总耗时:{} MS", count, (System.currentTimeMillis() - timeStart)); log.info("总共执行了{}次查询 总耗时:{} MS", count, (System.currentTimeMillis() - timeStart));
//更新订单缓存数据状态 }
nftOrderBo.setNftId(nftId);
nftOrderBo.setNftPublishTaskId(publishTaskId); //更新订单缓存数据状态
nftOrderBo.setNftId(nftId);
nftOrderBo.setNftPublishTaskId(publishTaskId);
if(StringUtil.isNotNull(nftPublishChainTimestamp)){
//设置时间 //设置时间
String nftPublishChainTimestampStr = DateUtil.format(new Date(nftPublishChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss); String nftPublishChainTimestampStr = DateUtil.format(new Date(nftPublishChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss);
nftOrderBo.setNftPublishChainTimestamp(nftPublishChainTimestampStr);
}
if(StringUtil.isNotNull(nftPublishStatus)){
//转换任务状态 //转换任务状态
String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nftPublishStatus.toString()).getCode(); String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),nftPublishStatus.toString()).getCode();
nftOrderBo.setNftPublishChainTimestamp(nftPublishChainTimestampStr);
nftOrderBo.setNftPublishStatus(nftPublishStatusStr); nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
nftOrderBo.setNftPublishTradeHash(nftPublishTradeHash);
nftOrderBo.setUpdatedAt(LocalDateTime.now());
//先更新nft发行数据
dataUtils.updateNftOrderPublishInfo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
} }
nftOrderBo.setNftPublishTradeHash(nftPublishTradeHash);
nftOrderBo.setUpdatedAt(LocalDateTime.now());
//先更新nft发行数据
dataUtils.updateNftOrderPublishInfo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
if(StringUtil.isNotEmpty(nftId)){ if(StringUtil.isNotEmpty(nftId)){
//执行购买逻辑 //执行购买逻辑
...@@ -418,6 +427,7 @@ public class ZxinTradeBiz { ...@@ -418,6 +427,7 @@ public class ZxinTradeBiz {
//更新缓存数据状态 //更新缓存数据状态
nftOrderBo.setNftBuyTaskId(nftBuyTaskId); nftOrderBo.setNftBuyTaskId(nftBuyTaskId);
nftOrderBo.setNftBuyStatus(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode());
dataUtils.updateNftOrderBuyInfo(routerType,nftOrderBo.getNftOrderPayId(),nftOrderBo); dataUtils.updateNftOrderBuyInfo(routerType,nftOrderBo.getNftOrderPayId(),nftOrderBo);
GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew(); GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew();
...@@ -483,7 +493,7 @@ public class ZxinTradeBiz { ...@@ -483,7 +493,7 @@ public class ZxinTradeBiz {
long timeStart = System.currentTimeMillis(); long timeStart = System.currentTimeMillis();
int count = 1; int count = 0;
while(nftBuyPayTaskId == null){ while(nftBuyPayTaskId == null){
try { try {
Thread.sleep(1000l); Thread.sleep(1000l);
...@@ -491,7 +501,7 @@ public class ZxinTradeBiz { ...@@ -491,7 +501,7 @@ public class ZxinTradeBiz {
e.printStackTrace(); e.printStackTrace();
} }
count++; count++;
log.info("=======执行第{}次查询,taskId:{}",1,nft044ReqDto.getTaskId()); log.info("=======执行第{}次查询,taskId:{}",count,nft044ReqDto.getTaskId());
ZxlnftResponseDto<Nft044BuyResultRespDto> nft044RespDto = zxlnftSdkUtil.nft044BuyResult(nft044ReqDto); ZxlnftResponseDto<Nft044BuyResultRespDto> nft044RespDto = zxlnftSdkUtil.nft044BuyResult(nft044ReqDto);
if(nft044RespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){ if(nft044RespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
nftBuyPayTaskId = nft044RespDto.getData().getPayTaskId(); nftBuyPayTaskId = nft044RespDto.getData().getPayTaskId();
...@@ -500,11 +510,14 @@ public class ZxinTradeBiz { ...@@ -500,11 +510,14 @@ public class ZxinTradeBiz {
nftBuyTradeHash = nft044RespDto.getData().getTxHash(); nftBuyTradeHash = nft044RespDto.getData().getTxHash();
}else if(nft044RespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())){ }else if(nft044RespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())){
log.info("任务执行失败!taskId:{}",nft044ReqDto.getTaskId()); log.info("任务执行失败!taskId:{}",nft044ReqDto.getTaskId());
return null; nftBuyStatus = nft044RespDto.getData().getTaskStatus();
}else if(nft044RespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.PROCESSING.getCode())){
log.info("任务执行中!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = nft044RespDto.getData().getTaskStatus();
} }
if(count==6){ if(count==5){
log.info("=======查询共6次,跳出循环!taskId:{}",nft044ReqDto.getTaskId()); log.info("=======查询共5次,跳出循环!taskId:{}",nft044ReqDto.getTaskId());
break; break;
} }
} }
...@@ -518,12 +531,17 @@ public class ZxinTradeBiz { ...@@ -518,12 +531,17 @@ public class ZxinTradeBiz {
//更新订单缓存数据状态 //更新订单缓存数据状态
nftOrderBo.setNftBuyTaskId(nftBuyTaskId); nftOrderBo.setNftBuyTaskId(nftBuyTaskId);
//设置时间 if(StringUtil.isNotNull(nftBuyChainTimestamp)){
String nftBuyChainTimestampStr = DateUtil.format(new Date(nftBuyChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss); //设置时间
//转换任务状态 String nftBuyChainTimestampStr = DateUtil.format(new Date(nftBuyChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss);
String nftBuyStatusStr = GalaxyEnumBiz.getTaskStatusEnum(routerType,nftBuyStatus.toString()).getCode(); nftOrderBo.setNftBuyChainTimestamp(nftBuyChainTimestampStr);
nftOrderBo.setNftBuyChainTimestamp(nftBuyChainTimestampStr); }
nftOrderBo.setNftBuyStatus(nftBuyStatusStr); if(StringUtil.isNotNull(nftBuyStatus)){
//转换任务状态
String nftBuyStatusStr = GalaxyEnumBiz.getTaskStatusEnum(routerType,nftBuyStatus.toString()).getCode();
nftOrderBo.setNftBuyStatus(nftBuyStatusStr);
}
nftOrderBo.setNftBuyTradeHash(nftBuyTradeHash); nftOrderBo.setNftBuyTradeHash(nftBuyTradeHash);
nftOrderBo.setNftBuyPayTaskId(nftBuyPayTaskId); nftOrderBo.setNftBuyPayTaskId(nftBuyPayTaskId);
nftOrderBo.setUpdatedAt(LocalDateTime.now()); nftOrderBo.setUpdatedAt(LocalDateTime.now());
...@@ -533,7 +551,7 @@ public class ZxinTradeBiz { ...@@ -533,7 +551,7 @@ public class ZxinTradeBiz {
GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew(); GalaxyNftBuyRespDto nftBuyRespDto = GalaxyNftBuyRespDto.getNew();
nftBuyRespDto.setUserId(userInfoBo.getUserId()); nftBuyRespDto.setUserId(userInfoBo.getUserId());
nftBuyRespDto.setNftId(null); nftBuyRespDto.setNftId(nftId);
return nftBuyRespDto; return nftBuyRespDto;
} }
} }
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