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

Commit 26eea75e authored by anjiabin's avatar anjiabin

Merge remote-tracking branch 'origin/pre' into jxl_419_dotask

parents 445f8c2b 62fefc75
......@@ -31,6 +31,7 @@ public class GoblinUserDigitalArtworkVo implements Serializable, Cloneable {
/* ---------------------- 冗余SPU信息 ---------------------- */
private String author;
private String publisher;
private String hitArtworkId;
private static final GoblinUserDigitalArtworkVo obj = new GoblinUserDigitalArtworkVo();
......
......@@ -716,7 +716,8 @@ public class ZxlnftSdkUtil {
BeanUtil.copy(reqDto,req);
req.setPubKey(zxlnftConfig.getNftPlatformPubKey());
req.setPlatformPubKey(zxlnftConfig.getNftPlatformPubKey());
req.setHash(zxlnftBiz.getHashString(req.getUrl()));
// req.setHash(zxlnftBiz.getHashString(req.getUrl()));
req.setHash(reqDto.getMetaData());
/**
* 发行人的私钥签名,签名对象是(platformPubKey_pubKey_接口名_author_name_url_displayUrl_hash_desc_flag_publishCount_seriesId_seriesBeginIndex
......
......@@ -75,10 +75,11 @@ public class ZxinTradeCommonBiz {
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNotNull(nftOrderBo)){
/**
* 如果已经发行购买成功
*/
//初始化订单数据
if(nftOrderBo==null){
nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}else if(StringUtil.isNotNull(nftOrderBo)){
if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())
&&nftOrderBo.getNftBuyStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getCode(), GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getMessage());
......@@ -146,12 +147,6 @@ public class ZxinTradeCommonBiz {
}
seriesBeginIndex = nftOrderBindBo.getNftIdIndex();
//初始化订单数据
if(nftOrderBo==null){
nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}
// //查询系列信息(暂时不通过系列查询获取发行序列号)
// Nft032SeriesReqDto nft032ReqDto = Nft032SeriesReqDto.getNew();
// nft032ReqDto.setSeriesId(seriesId);
......@@ -165,33 +160,43 @@ public class ZxinTradeCommonBiz {
// seriesBeginIndex = Integer.parseInt(String.valueOf(crtCount.longValue() + 1));
// }
//3.1.2调用NFT发行接口
/**
* 发行无限制系列
* 如果已经发行购买成功
*/
Nft034PublishReqDto nft034ReqDto = Nft034PublishReqDto.getNew();
nft034ReqDto.setAuthor(author);
nft034ReqDto.setName(nftName);
nft034ReqDto.setUrl(nftUrl);
nft034ReqDto.setDisplayUrl(displayUrl);
nft034ReqDto.setDesc(nftDesc);
nft034ReqDto.setFlag(nftFlag);
nft034ReqDto.setPublishCount(publishCount);
//无限制零系列
nft034ReqDto.setSeriesId(seriesId);
nft034ReqDto.setSeriesBeginIndex(seriesBeginIndex);
nft034ReqDto.setSellStatus(Integer.parseInt(ZxlnftEnum.SellStatusEnum.CAN_SELL.getCode()));
nft034ReqDto.setSellCount(sellCount);
nft034ReqDto.setOperateId(IDGenerator.get32UUID());
nft034ReqDto.setMetaData("");
ZxlnftResponseDto<Nft034PublishRespDto> nft034RespDto = zxlnftSdkUtil.nft034Publish(nft034ReqDto);
if (nft034RespDto.isSuccess()) {
try{
if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode())){
if(StringUtil.isNotEmpty(nftOrderBo.getNftPublishTaskId())){
publishTaskId = nftOrderBo.getNftPublishTaskId();
}
}else if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.INIT.getCode())){
//3.1.2调用NFT发行接口
/**
* 发行无限制系列
*/
Nft034PublishReqDto nft034ReqDto = Nft034PublishReqDto.getNew();
nft034ReqDto.setAuthor(author);
nft034ReqDto.setName(nftName);
nft034ReqDto.setUrl(nftUrl);
nft034ReqDto.setDisplayUrl(displayUrl);
nft034ReqDto.setDesc(nftDesc);
nft034ReqDto.setFlag(nftFlag);
nft034ReqDto.setPublishCount(publishCount);
//无限制零系列
nft034ReqDto.setSeriesId(seriesId);
nft034ReqDto.setSeriesBeginIndex(seriesBeginIndex);
nft034ReqDto.setSellStatus(Integer.parseInt(ZxlnftEnum.SellStatusEnum.CAN_SELL.getCode()));
nft034ReqDto.setSellCount(sellCount);
nft034ReqDto.setOperateId(IDGenerator.get32UUID());
nft034ReqDto.setMetaData(seriesNftInfoBo.getNftHash());
ZxlnftResponseDto<Nft034PublishRespDto> nft034RespDto = zxlnftSdkUtil.nft034Publish(nft034ReqDto);
if (nft034RespDto.isSuccess()){
publishTaskId = nft034RespDto.getData().getTaskId();
nftOrderBo.setNftPublishTaskId(publishTaskId);
}
}
if (StringUtil.isNotEmpty(publishTaskId)){
try{
//3.1.4查询 NFT发行结果
Nft035PublishResultReqDto nft035ReqDto = Nft035PublishResultReqDto.getNew();
nft035ReqDto.setTaskId(publishTaskId);
......@@ -218,14 +223,15 @@ public class ZxinTradeCommonBiz {
nftPublishStatus = nft035RespDtoTemp.getData().getTaskStatus();
}
// if (count == 5) {
// log.info("=======查询共5次,跳出循环!taskId:{}", nft035ReqDto.getTaskId());
// break;
// }
if (count == 20) {
log.info("=======查询共20次,跳出循环!taskId:{}", nft035ReqDto.getTaskId());
break;
}
}
//赋值返回参数
nftId = nftIdBegin;
nftOrderBo.setNftId(nftId);
log.info("发行NFT后返回给前端nftID:{}", nftIdBegin);
log.info("总共执行了{}次查询 总耗时:{} MS", count, (System.currentTimeMillis() - timeStart));
}catch (GalaxyNftPublishException e){
......@@ -237,7 +243,7 @@ public class ZxinTradeCommonBiz {
}
}else{
//发行失败
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"nft034Publish_resp:"+nft034RespDto.getMessage());
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"nft034Publish_resp:taskId : "+publishTaskId);
}
}catch (GalaxyNftPublishException e) {
failDesc = e.getMessage();
......@@ -250,9 +256,18 @@ public class ZxinTradeCommonBiz {
if(StringUtil.isNotEmpty(failDesc)){
//记录发行异常信息
try{
GalaxyNftOrderFailLogVo nftOrderFailLogVo = galaxyBeanTransferBiz.buildNftOrderFailLogVo(GalaxyEnum.TradeTypeEnum.TRADE_PUBLISH,reqDto,GalaxyEnum.OrderDealWithStatusEnum.DATA_INIT,failDesc,null
,userInfoBo,seriesNftInfoBo,nftOrderBo);
dataUtils.setNftOrderFailLogVo(reqDto.getRouterType(),nftOrderFailLogVo);
//发行异常或者失败记录任务id
if(StringUtil.isNotNull(nftOrderBo)&&StringUtil.isNotEmpty(nftOrderBo.getNftPublishTaskId())){
nftOrderBo.setNftPublishStatus(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode());
nftOrderBo.setUpdatedAt(LocalDateTime.now());
//更新nft发行状态为处理中
dataUtils.updateNftOrderPublishInfo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}else{
//记录错误信息
GalaxyNftOrderFailLogVo nftOrderFailLogVo = galaxyBeanTransferBiz.buildNftOrderFailLogVo(GalaxyEnum.TradeTypeEnum.TRADE_PUBLISH,reqDto,GalaxyEnum.OrderDealWithStatusEnum.DATA_INIT,failDesc,null
,userInfoBo,seriesNftInfoBo,nftOrderBo);
dataUtils.setNftOrderFailLogVo(reqDto.getRouterType(),nftOrderFailLogVo);
}
}catch(Exception e){
log.error(reqDto.getNftOrderPayId()+"发行setNftOrderFailLogVo记录异常:"+e.getMessage(),e);
}
......@@ -260,8 +275,7 @@ public class ZxinTradeCommonBiz {
}
//更新订单缓存数据状态
if(StringUtil.isNotEmpty(nftId)){
nftOrderBo.setNftId(nftId);
if(StringUtil.isNotEmpty(nftOrderBo.getNftId())){
if(StringUtil.isNotNull(nftPublishChainTimestamp)){
//设置时间
String nftPublishChainTimestampStr = DateUtil.format(new Date(nftPublishChainTimestamp*1000),DateUtil.Formatter.yyyyMMddHHmmss);
......@@ -279,7 +293,7 @@ public class ZxinTradeCommonBiz {
}
//第二步:执行购买逻辑
if(StringUtil.isNotEmpty(nftId)){
if(StringUtil.isNotEmpty(nftOrderBo.getNftId())){
GalaxyNftPublishAndBuyRespDto nftPublishAndBuyRespDto = this.executeBuyBusiness(reqDto,userInfoBo,seriesNftInfoBo,nftOrderBo);
if(StringUtil.isNotNull(nftPublishAndBuyRespDto)&&StringUtil.isNotEmpty(nftPublishAndBuyRespDto.getNftId())){
return ResponseDto.success(nftPublishAndBuyRespDto);
......@@ -396,11 +410,10 @@ public class ZxinTradeCommonBiz {
log.info("任务执行中!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = nft044RespDto.getData().getTaskStatus();
}
// if(count==5){
// log.info("=======查询共5次,跳出循环!taskId:{}",nft044ReqDto.getTaskId());
// break;
// }
if(count==20){
log.info("=======查询共5次,跳出循环!taskId:{}",nft044ReqDto.getTaskId());
break;
}
}
log.info("总共执行了多少次查询:{} 总耗时:{}",count,System.currentTimeMillis() - timeStart);
// if(StringUtil.isNotEmpty(payTaskId)){
......
......@@ -193,7 +193,11 @@ public class ZxinTradeBiz {
//判断是否需要二次购买
if(isNeedSecondBuy){
queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
GalaxyNftPublishAndBuyReqDto galaxyNftPublishAndBuyReqDto = GalaxyNftPublishAndBuyReqDto.getNew();
BeanUtil.copy(reqDto,galaxyNftPublishAndBuyReqDto);
galaxyNftPublishAndBuyReqDto.setSkuId(nftOrderBo.getSkuId());
galaxyNftPublishAndBuyReqDto.setBuyTimestamp(DateUtil.getNowTime());
queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(galaxyNftPublishAndBuyReqDto));
}
GalaxyNftPublishAndBuyResultQueryRespDto resultQueryRespDto = GalaxyNftPublishAndBuyResultQueryRespDto.getNew();
......
......@@ -85,6 +85,7 @@ public class GoblinUserDigitalArtworkController {
GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId());
GoblinGoodsSkuInfoVo unboxSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId());
GoblinUserDigitalArtworkListVo unboxDigitalArtworkListVo = GoblinUserDigitalArtworkListVo.getNew();
unboxDigitalArtworkListVo.setArtworkId(userDigitalArtworkVo.getHitArtworkId());
unboxDigitalArtworkListVo.setName(unboxSkuInfoVo.getName());
unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle());
unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic());
......
......@@ -180,12 +180,14 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
userDigitalArtworkBoxVo.setDeletedAt(now);
if (goblinMongoUtils.updateUserDigitalArtworkVoByUnboxing(userDigitalArtworkBoxVo)) {
String artworkId = IDGenerator.nextMilliId2();
String orderId = userDigitalArtworkBoxVo.getOrderId();
GoblinNftOrderVo orderVo = goblinRedisUtils.getGoblinNftOrder(orderId);
GoblinGoodsSkuInfoVo unboxSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getBoxSkuId());
GoblinUserDigitalArtworkListVo unboxDigitalArtworkListVo = GoblinUserDigitalArtworkListVo.getNew();
// unboxDigitalArtworkListVo.setArtworkId();
unboxDigitalArtworkListVo.setArtworkId(artworkId);
unboxDigitalArtworkListVo.setName(unboxSkuInfoVo.getName());
unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle());
unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic());
......@@ -201,12 +203,13 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
// log.warn("#UNBOX_ARTWORK EXIST_ART[uid={},skuId={},orderId={},source={}]", uid, skuId, orderId, source);
// return unboxDigitalArtworkListVo;
// }
userDigitalArtworkBoxVo.setHitArtworkId(artworkId);
goblinRedisUtils.setexUserDigitalArtworkVo(userDigitalArtworkBoxVo);
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
GoblinUserDigitalArtworkVo initUserDigitalArtworkVo = GoblinUserDigitalArtworkVo.getNew();
String artworkId = IDGenerator.nextMilliId2();
// String artworkId = IDGenerator.nextMilliId2();
initUserDigitalArtworkVo.setArtworkId(artworkId);
initUserDigitalArtworkVo.setSkuId(skuId);
initUserDigitalArtworkVo.setUid(uid);
......
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