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

Commit 93f8b47d authored by anjiabin's avatar anjiabin

实现百度链转让

parent 673fea01
package com.liquidnet.service.galaxy.dto;
import com.liquidnet.service.galaxy.dto.param.GalaxyQueryUserTradeAllListRespDto;
import lombok.Data;
/**
......@@ -61,4 +62,14 @@ public class TradeInfoDto {
* 交易类别, 1:发行 2:购买 3:转移 4:设置价格 5:设置状态
*/
private Integer txType;
private static final TradeInfoDto obj = new TradeInfoDto();
public static TradeInfoDto getNew() {
try {
return (TradeInfoDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new TradeInfoDto();
}
}
}
......@@ -24,6 +24,10 @@ public class GalaxyQueryUserTradeAllListReqDto extends GalaxyBaseReqDto implemen
@NotBlank(message = "区块链地址不能为空!")
private String blockChainAddress;
@ApiModelProperty(position = 1, required = true, value = "nftId")
@NotBlank(message = "nftId不能为空!")
private String nftId;
@Override
public String toString(){
return JsonUtils.toJson(this);
......
......@@ -14,6 +14,7 @@ import com.liquidnet.service.galaxy.dto.param.*;
*/
public interface IGalaxyTradeQueryService {
ResponseDto<GalaxyQueryNftInfoRespDto> queryNftInfo(GalaxyQueryNftInfoReqDto reqDto);
ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto);
ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto);
ResponseDto<GalaxyQuerySeriesInfoRespDto> querySeriesInfo(GalaxyQuerySeriesInfoReqDto reqDto);
ResponseDto<GalaxyQueryUserSeriesNftListRespDto> queryUserSeriesNftList(GalaxyQueryUserSeriesNftListReqDto reqDto);
......
......@@ -43,10 +43,18 @@ public class GalaxyTradeQueryController {
return galaxyTradeQueryService.queryNftInfo(reqDto);
}
@ControllerLog(description = "NFT转让信息查询")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "NFT转让信息查询(xuper)")
@PostMapping(value = {"queryTransNftInfo"})
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(@Valid @RequestBody GalaxyQueryNftInfoReqDto reqDto){
return galaxyTradeQueryService.queryTransNftInfo(reqDto);
}
@ControllerLog(description = "单个NFT交易信息查询")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "单个NFT交易信息查询")
@ApiOperation(value = "单个NFT交易信息查询(zxinchain)")
@PostMapping(value = {"queryNftTradeList"})
ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(@Valid @RequestBody GalaxyQueryNftTradeListReqDto reqDto){
return galaxyTradeQueryService.queryNftTradeList(reqDto);
......@@ -62,7 +70,7 @@ public class GalaxyTradeQueryController {
@ControllerLog(description = "用户系列NFT查询")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "用户系列NFT查询")
@ApiOperation(value = "用户系列NFT查询(zxinchain)")
@PostMapping(value = {"queryUserSeriesNftList"})
ResponseDto<GalaxyQueryUserSeriesNftListRespDto> queryUserSeriesNftList(@Valid @RequestBody GalaxyQueryUserSeriesNftListReqDto reqDto){
return galaxyTradeQueryService.queryUserSeriesNftList(reqDto);
......@@ -78,7 +86,7 @@ public class GalaxyTradeQueryController {
@ControllerLog(description = "用户所有进NFT信息查询")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "用户所有进NFT信息查询")
@ApiOperation(value = "用户所有进NFT信息查询(zxinchain)")
@PostMapping(value = {"queryUserTradeInList"})
ResponseDto<GalaxyQueryUserTradeInListRespDto> queryUserTradeInList(@Valid @RequestBody GalaxyQueryUserTradeInListReqDto reqDto){
return galaxyTradeQueryService.queryUserTradeInList(reqDto);
......@@ -86,7 +94,7 @@ public class GalaxyTradeQueryController {
@ControllerLog(description = "用户所有出NFT信息查询")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "用户所有出NFT信息查询")
@ApiOperation(value = "用户所有出NFT信息查询(zxinchain)")
@PostMapping(value = {"queryUserTradeOutList"})
ResponseDto<GalaxyQueryUserTradeOutListRespDto> queryUserTradeOutList(@Valid @RequestBody GalaxyQueryUserTradeOutListReqDto reqDto){
return galaxyTradeQueryService.queryUserTradeOutList(reqDto);
......
......@@ -10,14 +10,20 @@ 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.constant.GalaxyErrorEnum;
import com.liquidnet.service.galaxy.dto.TradeInfoDto;
import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxyTransferNftInfoBo;
import com.liquidnet.service.galaxy.dto.param.*;
import com.liquidnet.service.galaxy.router.strategy.IGalaxyRouterStrategyTradeQuery;
import com.liquidnet.service.galaxy.utils.GalaxyDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
......@@ -29,7 +35,7 @@ import org.springframework.stereotype.Component;
*/
@Slf4j
@Component
public class XuperTradeQueryBiz {
public class XuperTradeQueryBiz implements IGalaxyRouterStrategyTradeQuery {
@Autowired
private XuperSdkUtil xuperSdkUtil;
@Autowired
......@@ -112,6 +118,79 @@ public class XuperTradeQueryBiz {
}
}
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto) {
//获取订单信息
GalaxyTransferNftInfoBo transferNftInfoBo = dataUtils.getGalaxyTransferNftInfoBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNull(transferNftInfoBo)){
return ResponseDto.failure(GalaxyErrorEnum.NFT_QUERY_FAIL_ORDER_NOT_EXIST.getCode(),GalaxyErrorEnum.NFT_QUERY_FAIL_ORDER_NOT_EXIST.getMessage());
}
if(StringUtil.isEmpty(transferNftInfoBo.getNftId())){
return ResponseDto.failure(GalaxyErrorEnum.NFT_QUERY_FAIL_NFT_NOT_EXIST.getCode(),GalaxyErrorEnum.NFT_QUERY_FAIL_NFT_NOT_EXIST.getMessage());
}
//执行资产碎片授予查询
Xuper010QuerySdsReqDto xuper010QuerySdsReqDto = Xuper010QuerySdsReqDto.getNew();
// 定义返回结果对象
Xuper010QuerySdsRespDto xuper010QuerySdsRespDto = null;
try {
//资产id
Long assetId = null;
//碎片id
Long shardId = null;
String nftId = transferNftInfoBo.getNftId();
if(StringUtil.isNotEmpty(nftId)){
assetId = Long.parseLong(nftId.substring(0,nftId.lastIndexOf("_")));
shardId = Long.parseLong(nftId.substring(nftId.lastIndexOf("_")+1,nftId.length()));
}
xuper010QuerySdsReqDto.setAssetId(assetId);
xuper010QuerySdsReqDto.setShardId(shardId);
XuperResponseDto<Xuper010QuerySdsRespDto> xuperResponseDto = xuperSdkUtil.xuper010QuerySds(xuper010QuerySdsReqDto);
if(xuperResponseDto.isSuccess()){
xuper010QuerySdsRespDto = xuperResponseDto.getParseData(Xuper010QuerySdsRespDto.class);
}else{
return ResponseDto.failure(GalaxyErrorEnum.NFT_TRANSFER_QUERY_ERROR.getCode(),GalaxyErrorEnum.NFT_TRANSFER_QUERY_ERROR.getMessage()+"nftId:"+nftId);
}
}catch (XupterException e) {
log.error("biz error msg "+e.getMessage(),e);
}catch (Exception e) {
log.error("sys error msg "+e.getMessage(),e);
}
log.info("xuper010QuerySds resp : "+ JsonUtils.toJson(xuper010QuerySdsRespDto));
if(String.valueOf(xuper010QuerySdsRespDto.getErrNo()).equalsIgnoreCase(ErrorCode.SUCCESS.getCode())){
Xuper010QuerySdsRespDto.ShardMeta shardMeta = xuper010QuerySdsRespDto.getMeta();
Xuper010QuerySdsRespDto.ShardAssetInfo assetInfo = shardMeta.getAssetInfo();
//返回结果
GalaxyQueryNftInfoRespDto respDto = GalaxyQueryNftInfoRespDto.getNew();
respDto.setNftId(shardMeta.getAssetId()+"_"+shardMeta.getShardId());
respDto.setOwnerAddr(shardMeta.getOwnerAddr());
respDto.setAuthor(null);
respDto.setName(assetInfo.getTitle());
if(assetInfo.getThumb()[0]!=null&&assetInfo.getThumb()[0].getUrls().getUrl3()!=null){
respDto.setUrl(assetInfo.getThumb()[0].getUrls().getUrl3());
respDto.setDisplayUrl(assetInfo.getThumb()[0].getUrls().getUrl3());
}
//这里设置为转让hash
respDto.setHash(shardMeta.getTxId());
respDto.setOwnerGainedTime(shardMeta.getCtime());
respDto.setDesc(assetInfo.getShortDesc());
respDto.setFlag("");
respDto.setSeriesName(null);
respDto.setSeriesId(String.valueOf(shardMeta.getAssetId()));
respDto.setSeriesTotalNum(null);
respDto.setMetaData("");
respDto.setPublisherAddr(assetInfo.getCreateAddr());
respDto.setPublishPlatformAddr(assetInfo.getCreateAddr());
return ResponseDto.success(respDto);
}else{
return ResponseDto.failure(GalaxyErrorEnum.NFT_TRANSFER_QUERY_ERROR.getCode(),GalaxyErrorEnum.NFT_TRANSFER_QUERY_ERROR.getMessage());
}
}
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
// //获取订单信息
// GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
......@@ -213,18 +292,53 @@ public class XuperTradeQueryBiz {
}
public ResponseDto<GalaxyQueryUserTradeAllListRespDto> queryUserTradeAllList(GalaxyQueryUserTradeAllListReqDto reqDto) {
// 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);
//要查询的区块链账户地址
String addr = reqDto.getBlockChainAddress();
Xuper011ListSdsByAddrReqDto xuper011ListSdsByAddrReqDto = Xuper011ListSdsByAddrReqDto.getNew();
// 定义返回结果对象
Xuper011ListSdsByAddrRespDto respDto = null;
try {
//资产id
Long assetId = null;
//碎片id
Long shardId = null;
String nftId = reqDto.getNftId();
if(StringUtil.isNotEmpty(nftId)){
assetId = Long.parseLong(nftId.substring(0,nftId.lastIndexOf("_")));
shardId = Long.parseLong(nftId.substring(nftId.lastIndexOf("_")+1,nftId.length()));
}
xuper011ListSdsByAddrReqDto.setAddr(addr);
xuper011ListSdsByAddrReqDto.setPage(1);
xuper011ListSdsByAddrReqDto.setLimit(50);
xuper011ListSdsByAddrReqDto.setAssetId(assetId);
XuperResponseDto<Xuper011ListSdsByAddrRespDto> xuperResponseDto = xuperSdkUtil.xuper011ListSdsByAddr(xuper011ListSdsByAddrReqDto);
if(xuperResponseDto.isSuccess()){
respDto = xuperResponseDto.getParseData(Xuper011ListSdsByAddrRespDto.class);
GalaxyQueryUserTradeAllListRespDto tradeAllListRespDto = GalaxyQueryUserTradeAllListRespDto.getNew();
if(respDto.getList().size()>0){
List<TradeInfoDto> tradeList = new ArrayList<>();
tradeAllListRespDto.setTradeList(tradeList);
tradeAllListRespDto.setTotal(Long.parseLong(String.valueOf(respDto.getList().size())));
for(Xuper011ListSdsByAddrRespDto.ShardMeta shardMeta:respDto.getList()){
TradeInfoDto tradeInfoDto = TradeInfoDto.getNew();
tradeInfoDto.setNftId(shardMeta.getAssetId()+"_"+shardMeta.getShardId());
tradeInfoDto.setToAddr(shardMeta.getOwnerAddr());
tradeInfoDto.setHash(shardMeta.getTxId());
tradeAllListRespDto.getTradeList().add(tradeInfoDto);
}
}
return ResponseDto.success(tradeAllListRespDto);
}
}catch (XupterException e) {
log.error("biz error msg "+e.getMessage(),e);
}catch (Exception e) {
log.error("sys error msg "+e.getMessage(),e);
}
log.info("testXuper011ListSdsByAddr resp : "+ JsonUtils.toJson(respDto));
return ResponseDto.failure();
}
......
......@@ -31,6 +31,11 @@ public class GalaxyRouterStrategyXuperTradeQueryImpl implements IGalaxyRouterStr
return xuperTradeQueryBiz.queryNftInfo(reqDto);
}
@Override
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto) {
return xuperTradeQueryBiz.queryTransNftInfo(reqDto);
}
@Override
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
return xuperTradeQueryBiz.queryNftTradeList(reqDto);
......
......@@ -66,6 +66,11 @@ public class ZxinTradeQueryBiz implements IGalaxyRouterStrategyTradeQuery {
return ResponseDto.failure();
}
@Override
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto) {
return null;
}
@Override
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
//获取订单信息
......
......@@ -31,6 +31,11 @@ public class GalaxyRouterStrategyZxlTradeQueryImpl implements IGalaxyRouterStrat
return zxinTradeQueryBiz.queryNftInfo(reqDto);
}
@Override
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto) {
return null;
}
@Override
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
return zxinTradeQueryBiz.queryNftTradeList(reqDto);
......
......@@ -28,6 +28,11 @@ public class GalaxyTradeQueryServiceImpl implements IGalaxyTradeQueryService {
return galaxyRouterStrategyContext.getTradeQueryStrategy(reqDto.getRouterType()).queryNftInfo(reqDto);
}
@Override
public ResponseDto<GalaxyQueryNftInfoRespDto> queryTransNftInfo(GalaxyQueryNftInfoReqDto reqDto) {
return galaxyRouterStrategyContext.getTradeQueryStrategy(reqDto.getRouterType()).queryTransNftInfo(reqDto);
}
@Override
public ResponseDto<GalaxyQueryNftTradeListRespDto> queryNftTradeList(GalaxyQueryNftTradeListReqDto reqDto) {
return galaxyRouterStrategyContext.getTradeQueryStrategy(reqDto.getRouterType()).queryNftTradeList(reqDto);
......
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