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

Commit 9d55c9cc authored by anjiabin's avatar anjiabin

提交galaxy查询相关功能

parent d4b401d3
......@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
......@@ -19,8 +20,9 @@ import java.io.Serializable;
@ApiModel(value = "GalaxyQueryNftTradeListReqDto", description = "单个NFT交易信息查询")
@Data
public class GalaxyQueryNftTradeListReqDto extends GalaxyBaseReqDto implements Serializable,Cloneable{
@ApiModelProperty(position = 1, required = true, value = "skuId")
private String skuId;
@ApiModelProperty(position = 1, required = true, value = "nftOrderPayId")
@NotBlank
private String nftOrderPayId;
@Override
public String toString(){
......
......@@ -2,10 +2,10 @@ package com.liquidnet.service.galaxy.dto.param;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
......@@ -19,36 +19,46 @@ import java.io.Serializable;
@ApiModel(value = "GalaxyQueryNftTradeListRespDto", description = "单个NFT交易信息查询")
@Data
public class GalaxyQueryNftTradeListRespDto implements Serializable,Cloneable {
@ApiModelProperty(position = 1, required = true, value = "skuId")
private String skuId;
@ApiModelProperty(position = 1, required = true, value = "seriesId")
private String seriesId;
@ApiModelProperty(position = 1, required = true, value = "name")
private String name;
@ApiModelProperty(position = 1, required = true, value = "creatorAddr")
private String creatorAddr;
@ApiModelProperty(position = 2, required = true, value = "totalCount")
private Long totalCount;
@ApiModelProperty(position = 3, required = true, value = "seriesBeginFromZero")
private Boolean seriesBeginFromZero;
@ApiModelProperty(position = 3, required = true, value = "crtCount")
private Long crtCount;
@ApiModelProperty(position = 3, required = true, value = "coverUrl")
private String coverUrl;
@ApiModelProperty(position = 3, required = true, value = "desc")
private String desc;
@ApiModelProperty(position = 3, required = true, value = "createTimeStamp")
private String createTimeStamp;
/**
* * 交易信息总数
*/
private Long total;
/**
* 交易信息列表
*/
private List<TransInfoDto> transList;
@Data
public static class TransInfoDto{
/**
* 持有者地址
*/
private String fromAddr;
/**
* 接收方地址
*/
private String toAddr;
/**
* 成交积分
*/
private Long dealCount;
/**
* 链上交易hash
*/
private String txHash;
/**
* 积分接收地址
*/
private String pointReceiverAddr;
/**
* 链上成交时间
*/
private Long dealTimestamp;
/**
* 交易类别, 1:发行 2:购买 3:转移 4:设置价格 5:设置状态
*/
private Integer txType;
}
@Override
public String toString(){
......
......@@ -19,46 +19,6 @@ import java.io.Serializable;
public class Nft032SeriesRespDto implements Serializable {
private Nft032SeriesResp.SeriesInfo seriesInfo;
@Data
public class SeriesInfo{
/**
* 系列ID
*/
private String seriesId;
/**
* 系列名字
*/
private String name;
/**
* 创建者地址
*/
private String creatorAddr;
/**
* 总数
*/
private String totalCount;
/**
* 系列下的nftId后缀,是否从0开始,true就是从0开始,默认为false,从1开始
*/
private String seriesBeginFromZero;
/**
* 当前个数(当前已发行此系列的个数)
*/
private String crtCount;
/**
* 封面图
*/
private String coverUrl;
/**
* 描述
*/
private String desc;
/**
* 创建时间戳
*/
private String createTimeStamp;
}
private static final Nft032SeriesRespDto obj = new Nft032SeriesRespDto();
public static Nft032SeriesRespDto getNew() {
try {
......
......@@ -56,6 +56,78 @@ public class Nft032SeriesResp implements Serializable {
* 创建时间戳
*/
private Long createTimeStamp;
public String getSeriesId() {
return seriesId;
}
public void setSeriesId(String seriesId) {
this.seriesId = seriesId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCreatorAddr() {
return creatorAddr;
}
public void setCreatorAddr(String creatorAddr) {
this.creatorAddr = creatorAddr;
}
public Long getTotalCount() {
return totalCount;
}
public void setTotalCount(Long totalCount) {
this.totalCount = totalCount;
}
public boolean isSeriesBeginFromZero() {
return seriesBeginFromZero;
}
public void setSeriesBeginFromZero(boolean seriesBeginFromZero) {
this.seriesBeginFromZero = seriesBeginFromZero;
}
public Long getCrtCount() {
return crtCount;
}
public void setCrtCount(Long crtCount) {
this.crtCount = crtCount;
}
public String getCoverUrl() {
return coverUrl;
}
public void setCoverUrl(String coverUrl) {
this.coverUrl = coverUrl;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Long getCreateTimeStamp() {
return createTimeStamp;
}
public void setCreateTimeStamp(Long createTimeStamp) {
this.createTimeStamp = createTimeStamp;
}
}
private static final Nft032SeriesResp obj = new Nft032SeriesResp();
......
......@@ -88,12 +88,6 @@ public class ZxinTradeCommonBiz {
}
}
//初始化订单数据
if(nftOrderBo==null){
nftOrderBo = galaxyBeanTransferBiz.buildNftOrderBo(reqDto.getNftOrderPayId(),userInfoBo,seriesNftInfoBo);
dataUtils.setNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId(),nftOrderBo);
}
String author = seriesNftInfoBo.getAuthor();
String nftName = seriesNftInfoBo.getNftName();
String nftUrl = seriesNftInfoBo.getNftUrl();
......@@ -128,7 +122,11 @@ public class ZxinTradeCommonBiz {
if(StringUtil.isNull(nftOrderBindBo)){
//获取发行索引
long nftIdNo = dataUtils.incrNftIdNo(reqDto.getRouterType(),reqDto.getSkuId());
//如果发行数大于最大发行数量
if(nftIdNo > seriesNftInfoBo.getNftTotalCount()){
//发行失败
throw new GalaxyNftPublishException(GalaxyErrorEnum.NFT_PUBLISH_ERROR.getCode(),"该sku:"+reqDto.getSkuId()+" 总共"+seriesNftInfoBo.getNftTotalCount()+"个NFT已经发行完毕,没有剩余库存!");
}
nftOrderBindBo = GalaxyNftOrderBindBo.getNew();
nftOrderBindBo.setNftOrderPayId(reqDto.getNftOrderPayId());
nftOrderBindBo.setSeriesId(seriesNftInfoBo.getSeriesId());
......@@ -141,6 +139,12 @@ 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);
......@@ -252,25 +256,27 @@ public class ZxinTradeCommonBiz {
}catch(Exception e){
log.error(reqDto.getNftOrderPayId()+"发行setNftOrderFailLogVo记录异常:"+e.getMessage(),e);
}
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL.getCode(), GalaxyErrorEnum.PUBLISH_FAIL.getMessage());
}
//更新订单缓存数据状态
nftOrderBo.setNftId(nftId);
if(StringUtil.isNotNull(nftPublishChainTimestamp)){
//设置时间
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();
nftOrderBo.setNftPublishStatus(nftPublishStatusStr);
if(StringUtil.isNotEmpty(nftId)){
nftOrderBo.setNftId(nftId);
if(StringUtil.isNotNull(nftPublishChainTimestamp)){
//设置时间
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();
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)){
......
......@@ -456,6 +456,7 @@ public abstract class AbstractDataUtils {
/**
* 入库mongo
*/
nftOrderFailLogVo.setCreatedAt(LocalDateTime.now());
this.getMongoTemplate().save(nftOrderFailLogVo,GalaxyNftOrderFailLogVo.class.getSimpleName());
// insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name,
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.galaxy.router.zxin.biz;
import com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz;
import com.liquidnet.common.third.zxlnft.dto.*;
import com.liquidnet.common.third.zxlnft.dto.nft.Nft032SeriesResp;
import com.liquidnet.common.third.zxlnft.util.ZxlWalletSdkUtil;
import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
......@@ -59,7 +60,7 @@ public class ZxinTradeQueryBiz implements IGalaxyRouterStrategyTradeQuery {
//查询结果
GalaxyQueryNftInfoRespDto queryNftInfoRespDto = GalaxyQueryNftInfoRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
BeanUtil.copy(zxlnftResponseDto.getData(),queryNftInfoRespDto);
BeanUtil.copy(zxlnftResponseDto.getData().getNftInfo(),queryNftInfoRespDto);
return ResponseDto.success(queryNftInfoRespDto);
}
return ResponseDto.failure();
......@@ -67,12 +68,51 @@ public class ZxinTradeQueryBiz implements IGalaxyRouterStrategyTradeQuery {
@Override
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
return null;
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNull(nftOrderBo)){
return ResponseDto.failure(GalaxyErrorEnum.NFT_QUERY_FAIL_ORDER_NOT_EXIST.getCode(),GalaxyErrorEnum.NFT_QUERY_FAIL_ORDER_NOT_EXIST.getMessage());
}
if(StringUtil.isEmpty(nftOrderBo.getNftId())){
return ResponseDto.failure(GalaxyErrorEnum.NFT_QUERY_FAIL_NFT_NOT_EXIST.getCode(),GalaxyErrorEnum.NFT_QUERY_FAIL_NFT_NOT_EXIST.getMessage());
}
Nft039TradeListReqDto nft039TradeListReqDto = Nft039TradeListReqDto.getNew();
nft039TradeListReqDto.setNftId(nftOrderBo.getNftId());
nft039TradeListReqDto.setLimit(1000l);
ZxlnftResponseDto<Nft039TradeListRespDto> zxlnftResponseDto = zxlnftSdkUtil.nft039TradeList(nft039TradeListReqDto);
//查询结果
GalaxyQueryNftTradeListRespDto queryNftTradeListRespDto = GalaxyQueryNftTradeListRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
BeanUtil.copy(zxlnftResponseDto.getData(),queryNftTradeListRespDto);
return ResponseDto.success(queryNftTradeListRespDto);
}
return ResponseDto.failure();
}
@Override
public ResponseDto<GalaxyQuerySeriesInfoRespDto> querySeriesInfo(GalaxyQuerySeriesInfoReqDto reqDto) {
return null;
//获取sku信息
GalaxySeriesNftInfoBo seriesNftInfoBo = dataUtils.getSeriesNftInfoBo(reqDto.getRouterType(),reqDto.getSkuId());
if(StringUtil.isNull(seriesNftInfoBo)){
return ResponseDto.failure(GalaxyErrorEnum.SERIES_NFT_INFO_NOT_EXIST.getCode(), GalaxyErrorEnum.SERIES_NFT_INFO_NOT_EXIST.getMessage());
}
Nft032SeriesReqDto nft032SeriesReqDto = Nft032SeriesReqDto.getNew();
nft032SeriesReqDto.setSeriesId(seriesNftInfoBo.getSeriesId());
ZxlnftResponseDto<Nft032SeriesRespDto> zxlnftResponseDto = zxlnftSdkUtil.nft032Series(nft032SeriesReqDto);
//查询结果
GalaxyQuerySeriesInfoRespDto querySeriesInfoRespDto = GalaxyQuerySeriesInfoRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
Nft032SeriesResp.SeriesInfo seriesInfo = zxlnftResponseDto.getData().getSeriesInfo();
BeanUtil.copy(seriesInfo,querySeriesInfoRespDto);
querySeriesInfoRespDto.setTotalCount(seriesInfo.getTotalCount().toString());
querySeriesInfoRespDto.setSeriesBeginFromZero(Boolean.toString(seriesInfo.isSeriesBeginFromZero()));
querySeriesInfoRespDto.setCrtCount(seriesInfo.getCrtCount().toString());
querySeriesInfoRespDto.setCreateTimeStamp(seriesInfo.getCreateTimeStamp().toString());
return ResponseDto.success(querySeriesInfoRespDto);
}
return ResponseDto.failure();
}
@Override
......@@ -106,16 +146,49 @@ public class ZxinTradeQueryBiz implements IGalaxyRouterStrategyTradeQuery {
@Override
public ResponseDto<GalaxyQueryUserTradeAllListRespDto> queryUserTradeAllList(GalaxyQueryUserTradeAllListReqDto reqDto) {
return null;
Nft042TradeAllListReqDto nft042TradeAllListReqDto = Nft042TradeAllListReqDto.getNew();
nft042TradeAllListReqDto.setAddr(reqDto.getBlockChainAddress());
nft042TradeAllListReqDto.setLimit(1000l);
ZxlnftResponseDto<Nft042TradeAllListRespDto> zxlnftResponseDto = zxlnftSdkUtil.nft042TradeAllList(nft042TradeAllListReqDto);
GalaxyQueryUserTradeAllListRespDto queryUserTradeAllListRespDto = GalaxyQueryUserTradeAllListRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
BeanUtil.copy(zxlnftResponseDto.getData(),queryUserTradeAllListRespDto);
}else{
return ResponseDto.failure();
}
return ResponseDto.success(queryUserTradeAllListRespDto);
}
@Override
public ResponseDto<GalaxyQueryUserTradeInListRespDto> queryUserTradeInList(GalaxyQueryUserTradeInListReqDto reqDto) {
return null;
Nft040TradeInListReqDto nft040TradeInListReqDto = Nft040TradeInListReqDto.getNew();
nft040TradeInListReqDto.setAddr(reqDto.getBlockChainAddress());
nft040TradeInListReqDto.setLimit(1000l);
ZxlnftResponseDto<Nft040TradeInListRespDto> zxlnftResponseDto = zxlnftSdkUtil.nft040TradeInList(nft040TradeInListReqDto);
GalaxyQueryUserTradeInListRespDto queryUserTradeInListRespDto = GalaxyQueryUserTradeInListRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
BeanUtil.copy(zxlnftResponseDto.getData(),queryUserTradeInListRespDto);
}else{
return ResponseDto.failure();
}
return ResponseDto.success(queryUserTradeInListRespDto);
}
@Override
public ResponseDto<GalaxyQueryUserTradeOutListRespDto> queryUserTradeOutList(GalaxyQueryUserTradeOutListReqDto reqDto) {
return null;
Nft041TradeOutListReqDto nft041TradeOutListReqDto = Nft041TradeOutListReqDto.getNew();
nft041TradeOutListReqDto.setAddr(reqDto.getBlockChainAddress());
nft041TradeOutListReqDto.setLimit(1000l);
ZxlnftResponseDto<Nft041TradeOutListRespDto> zxlnftResponseDto = zxlnftSdkUtil.nft041TradeOutList(nft041TradeOutListReqDto);
GalaxyQueryUserTradeOutListRespDto queryUserTradeOutListRespDto = GalaxyQueryUserTradeOutListRespDto.getNew();
if(zxlnftResponseDto.isSuccess()){
BeanUtil.copy(zxlnftResponseDto.getData(),queryUserTradeOutListRespDto);
}else{
return ResponseDto.failure();
}
return ResponseDto.success(queryUserTradeOutListRespDto);
}
}
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