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

Commit eb788dcf authored by anjiabin's avatar anjiabin

实现xuper相关艺术品上传

parent 5f6ada01
......@@ -148,6 +148,42 @@ public class GalaxyEnum {
}
}
/**
* 标记任务状态
*/
public enum AssetPublishStatusEnum{
INIT("-1","数据初始化"),
PROCESSING("0","发行中"),
SUCCESS("1","发行成功"),
FAIL("2","发行失败");
private String code;
private String message;
AssetPublishStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public AssetPublishStatusEnum getEnumByCode(String code){
AssetPublishStatusEnum[] arry = AssetPublishStatusEnum.values();
for (int i = 0; i < arry.length; i++) {
if (arry[i].getCode().equals(code)) {
return arry[i];
}
}
return null;
}
public String getCode() {
return code;
}
public String getMessage(){
return message;
}
}
/**
* 标记任务状态
*/
......
......@@ -71,6 +71,11 @@ public class GalaxySeriesNftInfoBo implements Serializable,Cloneable {
*/
private String originalDisplayUrl;
/**
* nft发行状态
*/
private String nftPublishStatus;
//======================================
//=============以下都为购买信息=============
//======================================
......
......@@ -56,7 +56,7 @@ public class XuperConfig {
log.info("logger.getParent().getLevel() === {}",logger.getParent().getLevel());
// logger.setLevel(Level.INFO);
log.info("logger.getLevel() === {}",logger.getLevel());
asset = new Asset(cfg, Logger.getGlobal());
asset = new Asset(cfg, logger);
}
//
// static{
......
......@@ -16,6 +16,8 @@ public class Xuper007GrantShardRespDto {
private long requestId;
private int errNo;
private String errMsg;
public long assetId;
public long shardId;
private static final Xuper007GrantShardRespDto obj = new Xuper007GrantShardRespDto();
public static Xuper007GrantShardRespDto getNew() {
......
package com.liquidnet.common.third.xuper.dto;
import com.baidu.xasset.client.xasset.XassetDef;
import lombok.Data;
/**
......@@ -36,7 +35,7 @@ public class Xuper010QuerySdsRespDto {
public static class ShardAssetInfo {
public String title;
public int assetCate;
public XassetDef.Thumb[] thumb;
public Thumb[] thumb;
public String shortDesc;
public String createAddr;
public long groupId;
......@@ -44,7 +43,7 @@ public class Xuper010QuerySdsRespDto {
@Data
public static class Thumb {
private Xuper005QueryAssetRespDto.Urls urls;
private Urls urls;
private String width;
private String height;
}
......
......@@ -65,6 +65,37 @@ public class GalaxyEnumBiz {
return taskStatusEnum;
}
/**
* 任务状态转换
* @param routerType
* @param code
* @return
*/
public static GalaxyEnum.AssetPublishStatusEnum getAssetPublishStatusEnum(String routerType, String code){
GalaxyEnum.AssetPublishStatusEnum taskStatusEnum = null;
switch (routerType){
case "xuper":
if(code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.INIT.getCode())){
taskStatusEnum = GalaxyEnum.AssetPublishStatusEnum.INIT;
break;
}else if(code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.PUBLISHING.getCode())){
taskStatusEnum = GalaxyEnum.AssetPublishStatusEnum.PROCESSING;
break;
}else if(code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.PUBLISH_SUCCESS.getCode())){
taskStatusEnum = GalaxyEnum.AssetPublishStatusEnum.SUCCESS;
break;
}else if(code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.FREEZING.getCode())
||code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.BANNEDING.getCode())
||code.equalsIgnoreCase(XuperEnum.AssetPublishStatusEnum.BANNEDED.getCode())
){
taskStatusEnum = GalaxyEnum.AssetPublishStatusEnum.FAIL;
break;
}
}
return taskStatusEnum;
}
/**
* 用户绑定状态
* @param routerType
......
......@@ -5,7 +5,6 @@ import com.liquidnet.common.third.xuper.config.XuperConfig;
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.common.third.zxlnft.constant.ZxlnftEnum;
import com.liquidnet.common.third.zxlnft.dto.Nft044BuyResultReqDto;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
......@@ -161,17 +160,17 @@ public class XuperTradeCommonBiz {
nftBuyResultQueryReqDto.setRouterType(routerType);
ResponseDto<GalaxyNftBuyResultQueryRespDto> buyResultQueryRespDto= this.nftBuyResultQuery(nftBuyResultQueryReqDto);
if(buyResultQueryRespDto.isSuccess()){
if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
nftBuyPayTaskId = buyResultQueryRespDto.getData().getPayTaskId();
nftBuyChainTimestamp = buyResultQueryRespDto.getData().getChainTimestamp();
nftBuyStatus = buyResultQueryRespDto.getData().getTaskStatus();
nftBuyTradeHash = buyResultQueryRespDto.getData().getTxHash();
}else if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())){
}else if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(GalaxyEnum.TaskStatusEnum.TASK_FAIL.getCode())){
log.info("任务执行失败!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = buyResultQueryRespDto.getData().getTaskStatus();
//购买失败
throw new GalaxyNftBuyException(GalaxyErrorEnum.NFT_BUY_FAIL.getCode(), "nft044BuyResult_resp:"+GalaxyErrorEnum.NFT_BUY_FAIL.getMessage());
}else if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.PROCESSING.getCode())){
}else if(buyResultQueryRespDto.getData().getTaskStatus().toString().equals(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode())){
log.info("任务执行中!taskId:{}",nft044ReqDto.getTaskId());
nftBuyStatus = buyResultQueryRespDto.getData().getTaskStatus();
}
......@@ -248,7 +247,7 @@ public class XuperTradeCommonBiz {
}catch (Exception e) {
log.error("sys error msg "+e.getMessage(),e);
}
log.info("testXuper010QuerySds resp : "+ JsonUtils.toJson(xuper010QuerySdsRespDto));
log.info("xuper010QuerySds resp : "+ JsonUtils.toJson(xuper010QuerySdsRespDto));
if(String.valueOf(xuper010QuerySdsRespDto.getErrNo()).equalsIgnoreCase(ErrorCode.SUCCESS.getCode())){
GalaxyNftBuyResultQueryRespDto resultQueryRespDto = GalaxyNftBuyResultQueryRespDto.getNew();
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.galaxy.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
......@@ -234,6 +235,33 @@ public abstract class AbstractDataUtils {
}
}
/**
* 更新系列nft发行状态
* @param routerType
* @param skuId
* @param seriesNftInfoBo
*/
public void updateSeriesNftPublishStatus(String routerType,String skuId, GalaxySeriesNftInfoBo seriesNftInfoBo) {
//更新系列nft状态
this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_SERIES_NFT.concat(routerType).concat(":") + skuId,seriesNftInfoBo);
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(seriesNftInfoBo.getUpdatedAt());
if(StringUtil.isEmpty(seriesNftInfoBo.getNftPublishStatus())){
seriesNftInfoBo.setNftPublishStatus(GalaxyEnum.AssetPublishStatusEnum.INIT.getCode());
}
try{
this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_series_nft_info.updateSeriesNftPublishStatus"),
new Object[]{seriesNftInfoBo.getNftPublishStatus(),nowTimeStr,seriesNftInfoBo.getSkuId()}
, MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey()
);
}catch(Exception e){
log.error(e.getMessage(),e);
log.error("#updateSeriesNftStatus error ==> MESSAGE:{}",e.getMessage());
}
}
//根据系列Id获取 一个系列对应多个skuId
// public List<String> getSkuIdListBySeriesCode(String seriesCode){
// //根据演出id获取用户信息 只查询5条
......
......@@ -27,6 +27,7 @@ galaxy_series_info.updateSeriesCrtCount=update galaxy_series_info t set t.crt_co
galaxy_series_nft_info.updateSeriesNftCrtCount=update galaxy_series_nft_info t set t.nft_crt_count = ?,t.updated_at =? where t.sku_id = ?
# ------------------------更新发行购买处理结果----------------------------
galaxy_nft_order_fail_log.updateDealWithStatus=update galaxy_nft_order_fail_log t set t.deal_with_status = ?,t.updated_at =? where t.nft_order_pay_id = ? and t.router_type = ?
# ------------------------更新系列NFT发行状态信息----------------------------
galaxy_series_nft_info.updateSeriesNftPublishStatus=update galaxy_series_nft_info t set t.publish_status = ?,t.updated_at =? where t.sku_id = ?
# ------------------------同步用户数字账户信息到adam---------------------------
adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
alter table galaxy_series_nft_info
add publish_status varchar(10) null comment 'nft发行状态(-1初始化 0发行中 1发行成功 2发行失败)' after router_type;
\ No newline at end of file
......@@ -488,6 +488,8 @@ public class XuperArtworkBiz {
seriesNftInfoBo.setNftPublishNumber(nftPublishNumber);
seriesNftInfoBo.setOriginalNftUrl(seriesNftUploadBo.getOriginalNftUrl());
seriesNftInfoBo.setOriginalDisplayUrl(seriesNftUploadBo.getOriginalDisplayUrl());
//针对百度超级链增加nft整体发行状态
seriesNftInfoBo.setNftPublishStatus(GalaxyEnum.AssetPublishStatusEnum.INIT.getCode());
//以下为购买信息
seriesNftInfoBo.setAuthor(reqDto.getAuthor());
seriesNftInfoBo.setNftName(reqDto.getNftName());
......
......@@ -190,7 +190,7 @@ public class XuperPublishBiz {
//设置时间
String nftPublishChainTimestampStr = DateUtil.getNowTime();
//转换任务状态
String nftPublishStatusStr = GalaxyEnumBiz.getTaskStatusEnum(reqDto.getRouterType(),String.valueOf(assetMeta.getStatus())).getCode();
String nftPublishStatusStr = GalaxyEnumBiz.getAssetPublishStatusEnum(reqDto.getRouterType(),String.valueOf(assetMeta.getStatus())).getCode();
//更新缓存数据状态
nftOrderBo.setNftId(nftOrderBo.getNftId());
......
......@@ -2,9 +2,12 @@ package com.liquidnet.service.galaxy.router.xuper.biz;
import com.liquidnet.common.exception.constant.ErrorCode;
import com.liquidnet.common.third.xuper.config.XuperConfig;
import com.liquidnet.common.third.xuper.dto.*;
import com.liquidnet.common.third.xuper.dto.Xuper004PublishAssetReqDto;
import com.liquidnet.common.third.xuper.dto.Xuper004PublishAssetRespDto;
import com.liquidnet.common.third.xuper.dto.XuperResponseDto;
import com.liquidnet.common.third.xuper.exception.XupterException;
import com.liquidnet.common.third.xuper.util.XuperSdkUtil;
import com.liquidnet.common.third.zxlnft.dto.Nft035PublishResultReqDto;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -156,11 +159,18 @@ public class XuperTradeBiz {
/**
* 如果已经发行成功
*/
if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.PROCESSING.getCode())){
if(seriesNftInfoBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode())){
nftId = seriesId.concat("_").concat(seriesBeginIndex.toString());;
nftPublishChainTimestamp = DateUtil.getNowSeconds();
nftPublishStatus = Integer.parseInt(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode());
nftPublishTradeHash = publishTaskId;
//设置购买标志
nftOrderBo.setNftId(nftId);
}else if(seriesNftInfoBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.AssetPublishStatusEnum.PROCESSING.getCode())){
if(StringUtil.isNotEmpty(nftOrderBo.getNftPublishTaskId())){
publishTaskId = nftOrderBo.getNftPublishTaskId();
}
}else if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.INIT.getCode())){
}else if(seriesNftInfoBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.AssetPublishStatusEnum.INIT.getCode())){
//发行
Xuper004PublishAssetReqDto xuper004PublishAssetReqDto = Xuper004PublishAssetReqDto.getNew();
// 定义返回结果对象
......@@ -188,14 +198,63 @@ public class XuperTradeBiz {
if (StringUtil.isNotEmpty(publishTaskId)){
try{
nftPublishChainTimestamp = DateUtil.getNowSeconds();
nftPublishStatus = Integer.parseInt(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode());
nftPublishTradeHash = publishTaskId;
//3.1.4查询 NFT发行结果
Nft035PublishResultReqDto nft035ReqDto = Nft035PublishResultReqDto.getNew();
nft035ReqDto.setTaskId(publishTaskId);
int count = 0;
long timeStart = System.currentTimeMillis();
while (StringUtil.isEmpty(nftId)) {
Thread.sleep(500l);
count++;
log.info("=======执行第{}次查询,taskId:{}", count, nft035ReqDto.getTaskId());
//执行nft发行结果查询
GalaxyNftPublishResultQueryReqDto nftPublishResultQueryReqDto = GalaxyNftPublishResultQueryReqDto.getNew();
nftPublishResultQueryReqDto.setNftOrderPayId(reqDto.getNftOrderPayId());
nftPublishResultQueryReqDto.setRouterType(reqDto.getRouterType());
ResponseDto<GalaxyNftPublishResultQueryRespDto> publishResultQueryRespDto = xuperPublishBiz.nftPublishResultQuery(nftPublishResultQueryReqDto);
if(publishResultQueryRespDto.isSuccess()){
GalaxyNftPublishResultQueryRespDto nftPublishResultQueryRespDto = publishResultQueryRespDto.getData();
if (nftPublishResultQueryRespDto.getTaskStatus().toString().equals(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode())) {
nftId = seriesId.concat("_").concat(seriesBeginIndex.toString());;
nftPublishChainTimestamp = DateUtil.getNowSeconds();
nftPublishStatus = Integer.parseInt(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode());
nftPublishTradeHash = publishTaskId;
//首次查询nft发行状态,如果成功更新nft系列发行状态
seriesNftInfoBo.setNftPublishStatus(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode());
seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateSeriesNftPublishStatus(reqDto.getRouterType(),reqDto.getSkuId(),seriesNftInfoBo);
} else if (nftPublishResultQueryRespDto.getTaskStatus().toString().equals(GalaxyEnum.AssetPublishStatusEnum.FAIL.getCode())) {
log.info("任务执行失败!taskId:{}", nft035ReqDto.getTaskId());
nftPublishStatus = nftPublishResultQueryRespDto.getTaskStatus();
//发行失败
seriesNftInfoBo.setNftPublishStatus(GalaxyEnum.AssetPublishStatusEnum.FAIL.getCode());
seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateSeriesNftPublishStatus(reqDto.getRouterType(),reqDto.getSkuId(),seriesNftInfoBo);
//直接进行异常处理
throw new GalaxyNftPublishException(GalaxyErrorEnum.PUBLISH_FAIL.getCode(), "nft035PublishResult_resp:"+GalaxyErrorEnum.PUBLISH_FAIL.getMessage());
}else if(nftPublishResultQueryRespDto.getTaskStatus().toString().equals(GalaxyEnum.AssetPublishStatusEnum.PROCESSING.getCode())){
log.info("任务执行中!taskId:{}", nft035ReqDto.getTaskId());
nftPublishStatus = nftPublishResultQueryRespDto.getTaskStatus();
//发行中
seriesNftInfoBo.setNftPublishStatus(GalaxyEnum.AssetPublishStatusEnum.PROCESSING.getCode());
seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateSeriesNftPublishStatus(reqDto.getRouterType(),reqDto.getSkuId(),seriesNftInfoBo);
}
}
if (count == 20) {
log.info("=======查询共20次,跳出循环!taskId:{}", nft035ReqDto.getTaskId());
break;
}
}
//赋值返回参数
nftId = seriesId.concat("_").concat(seriesBeginIndex.toString());
nftOrderBo.setNftId(nftId);
log.info("发行NFT后返回给前端nftID:{}", nftId);
log.info("总共执行了{}次查询 总耗时:{} MS", count, (System.currentTimeMillis() - timeStart));
}catch (GalaxyNftPublishException e){
throw new GalaxyNftPublishException(e.getCode(),e.getMessage());
}catch(Exception e){
......@@ -204,8 +263,10 @@ public class XuperTradeBiz {
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"nft035PublishResult_exception:"+e.getMessage());
}
}else{
//发行失败
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"nft034Publish_resp:taskId : "+publishTaskId);
if(!seriesNftInfoBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.AssetPublishStatusEnum.SUCCESS.getCode())){
//发行失败
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"nft034Publish_resp:taskId : "+publishTaskId);
}
}
}catch (GalaxyNftPublishException e) {
failDesc = e.getMessage();
......@@ -318,15 +379,6 @@ public class XuperTradeBiz {
}
}
//判断是否需要二次购买
// if(isNeedSecondBuy){
// 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();
if(nftOrderBo.getNftPublishStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())&&
nftOrderBo.getNftBuyStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.TASK_SUCCESS.getCode())){
......
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