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

Commit 48edea42 authored by anjiabin's avatar anjiabin

实现百度链转让接口

parent 26d4b13a
...@@ -336,4 +336,41 @@ public class GalaxyEnum { ...@@ -336,4 +336,41 @@ public class GalaxyEnum {
System.out.println("支付成功"); System.out.println("支付成功");
} }
} }
/**
* nft转让状态
*/
public enum NftTransferStatusEnum{
INIT("-1","数据初始化"),
PROCESSING("0","转让中"),
SUCCESS("1","转让成功"),
FAIL("2","转让失败");
private String code;
private String message;
NftTransferStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public NftTransferStatusEnum getEnumByCode(String code){
NftTransferStatusEnum[] arry = NftTransferStatusEnum.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;
}
}
} }
...@@ -36,8 +36,12 @@ public enum GalaxyErrorEnum { ...@@ -36,8 +36,12 @@ public enum GalaxyErrorEnum {
SERIES_NFT_INFO_NOT_EXIST("NFT0010024","系列NFT信息查询不存在!"), SERIES_NFT_INFO_NOT_EXIST("NFT0010024","系列NFT信息查询不存在!"),
SERIES_NFT_HASH_CREATE_FAIL("NFT0010025","系列NFT的介质hash生成失败!"), SERIES_NFT_HASH_CREATE_FAIL("NFT0010025","系列NFT的介质hash生成失败!"),
NFT_TRANSFER_FAIL("NFT0010026","NFT转让失败"), NFT_TRANSFER_FAIL("NFT0010026","NFT转让失败"),
NFT_TRANSFER_OWNER_ERROR("NFT0010027","NFT转让失败,拥有者不匹配"), NFT_TRANSFER_FAIL_OWNER_NOT_EXIST("NFT0010027","NFT转让失败,拥有者不存在!"),
NFT_TRANSFERING_ERROR("NFT0010028","NFT正在转让中,不允许再次操作!"); NFT_TRANSFER_FAIL_RECEIVER_NOT_EXIST("NFT0010028","NFT转让失败,接收者不存在!"),
NFT_TRANSFER_OWNER_MATCH_ERROR("NFT0010029","NFT转让失败,拥有者不匹配"),
NFT_TRANSFERING_ERROR("NFT0010030","NFT正在转让中,不允许再次操作!"),
NFT_TRANSFER_NFTID_FORMAT_ERROR("NFT0010031","NFT转让失败,nftid格式错误!"),
NFT_TRANSFER_QUERY_ERROR("NFT0010032","NFT转让结果查询失败,nft信息不存在!");
private String code; private String code;
......
...@@ -21,13 +21,33 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{ ...@@ -21,13 +21,33 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
*/ */
private String nftId; private String nftId;
/** /**
* nft当前拥有者addr * 转让发起人用户id
*/ */
private String ownerAddr; private String userId;
/** /**
* nft历史拥有者addr * 转让发起人区块链地址
*/ */
private String fromAddr; private String address;
/**
* 接收者userId
*/
private String receiveUserId;
/**
* 接收者区块链地址
*/
private String receiveAddress;
/**
* nft当前拥有者用户id(转让成功后更新)
*/
private String ownerUserId;
/**
* nft当前拥有者addr(转让成功后更新)
*/
private String ownerAddress;
/**
* 转让hash
*/
private String transferHash;
/** /**
* 系列的唯一Id * 系列的唯一Id
*/ */
...@@ -36,6 +56,19 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{ ...@@ -36,6 +56,19 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
* 路由类型 * 路由类型
*/ */
private String routerType; private String routerType;
/**
* 转让状态(0转让中 1转让成功 2转让失败 )
*/
private String transferStatus;
/**
* 错误码
*/
private String errorCode;
/**
* 错误信息
*/
private String errorMsg;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -16,19 +16,26 @@ import java.io.Serializable; ...@@ -16,19 +16,26 @@ import java.io.Serializable;
* @class: GalaxyNftTransferReqDto * @class: GalaxyNftTransferReqDto
* @Package com.liquidnet.service.galaxy.dto.param * @Package com.liquidnet.service.galaxy.dto.param
* @Copyright: LightNet @ Copyright (c) 2022 * @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/8/4 18:42 * @date 2022/8/15 14:42
*/ */
@ApiModel(value = "GalaxyNftTransferQueryReqDto", description = "NFT转让结果查询") @ApiModel(value = "GalaxyNftTransferQueryReqDto", description = "NFT转让结果查询")
@Data @Data
public class GalaxyNftTransferQueryReqDto extends GalaxyBaseReqDto implements Serializable,Cloneable { public class GalaxyNftTransferQueryReqDto extends GalaxyBaseReqDto implements Serializable,Cloneable {
/** /**
* 以下为发行参数*********************************** * 用户id
*/ */
@ApiModelProperty(position = 1, required = true, value = "用户ID[30]") @ApiModelProperty(position = 1, required = true, value = "用户ID[30]")
@NotBlank(message = "用户ID不能为空!") @NotBlank(message = "用户ID不能为空!")
@Size(min = 1, max = 30, message = "用户ID限制2-30位且不能包含特殊字符") @Size(min = 1, max = 30, message = "用户ID限制2-30位且不能包含特殊字符")
private String userId; private String userId;
/**
* nftId
*/
@ApiModelProperty(position = 1, required = true, value = "nft唯一id")
@NotBlank(message = "nft唯一id不能为空!")
private String nftId;
@Override @Override
public String toString(){ public String toString(){
return JsonUtils.toJson(this); return JsonUtils.toJson(this);
......
...@@ -19,12 +19,30 @@ import java.io.Serializable; ...@@ -19,12 +19,30 @@ import java.io.Serializable;
@ApiModel(value = "GalaxyNftTransferQueryRespDto", description = "NFT转让结果查询") @ApiModel(value = "GalaxyNftTransferQueryRespDto", description = "NFT转让结果查询")
@Data @Data
public class GalaxyNftTransferQueryRespDto implements Serializable,Cloneable { public class GalaxyNftTransferQueryRespDto implements Serializable,Cloneable {
@ApiModelProperty(position = 1, required = true, value = "用户Id") @ApiModelProperty(position = 1, required = true, value = "nft唯一id")
private String userId;
@ApiModelProperty(position = 1, required = true, value = "用户购买的nftId")
private String nftId; private String nftId;
@ApiModelProperty(position = 1, required = true, value = "拥有者用户ID")
private String ownerUserId;
@ApiModelProperty(position = 1, required = true, value = "拥有者地址")
private String ownerAddress;
@ApiModelProperty(position = 1, required = true, value = "转出者用户ID")
private String fromUserId;
@ApiModelProperty(position = 1, required = true, value = "转出者地址")
private String fromAddress;
@ApiModelProperty(position = 1, required = true, value = "转让时间")
private String transferTime;
@ApiModelProperty(position = 3, required = true, value = "路由类型")
private String routerType;
@ApiModelProperty(position = 4, required = true, value = "转让hash")
private String transferHash;
@Override @Override
public String toString(){ public String toString(){
return JsonUtils.toJson(this); return JsonUtils.toJson(this);
......
...@@ -19,15 +19,30 @@ import java.io.Serializable; ...@@ -19,15 +19,30 @@ import java.io.Serializable;
@ApiModel(value = "GalaxyNftTransferRespDto", description = "NFT转让结果") @ApiModel(value = "GalaxyNftTransferRespDto", description = "NFT转让结果")
@Data @Data
public class GalaxyNftTransferRespDto implements Serializable,Cloneable { public class GalaxyNftTransferRespDto implements Serializable,Cloneable {
@ApiModelProperty(position = 1, required = true, value = "nft唯一id")
private String nftId;
@ApiModelProperty(position = 1, required = true, value = "拥有者用户ID") @ApiModelProperty(position = 1, required = true, value = "拥有者用户ID")
private String ownerUserId; private String ownerUserId;
@ApiModelProperty(position = 1, required = true, value = "转让者用户ID") @ApiModelProperty(position = 1, required = true, value = "拥有者地址")
private String ownerAddress;
@ApiModelProperty(position = 1, required = true, value = "转出者用户ID")
private String fromUserId; private String fromUserId;
@ApiModelProperty(position = 1, required = true, value = "转出者地址")
private String fromAddress;
@ApiModelProperty(position = 1, required = true, value = "转让时间") @ApiModelProperty(position = 1, required = true, value = "转让时间")
private String transferTime; private String transferTime;
@ApiModelProperty(position = 3, required = true, value = "路由类型")
private String routerType;
@ApiModelProperty(position = 4, required = true, value = "转让hash")
private String transferHash;
@Override @Override
public String toString(){ public String toString(){
return JsonUtils.toJson(this); return JsonUtils.toJson(this);
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>com.baidu.xuper</groupId> <groupId>com.baidu.xuper</groupId>
<artifactId>xasset-sdk-java</artifactId> <artifactId>xasset-sdk-java</artifactId>
<version>1.0.4</version> <version>1.0.7</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.baidu.xuper</groupId> <groupId>com.baidu.xuper</groupId>
......
...@@ -25,7 +25,7 @@ public class Xuper010QuerySdsRespDto { ...@@ -25,7 +25,7 @@ public class Xuper010QuerySdsRespDto {
public String ownerAddr; public String ownerAddr;
public long uid; public long uid;
public long price; public long price;
public int status; public int status; //0:已上链 1:授予中 4:转移中 5: 核销中 6: 已核销 10:异常详情参考错误码和状态码
public String txId; public String txId;
public ShardAssetInfo assetInfo; public ShardAssetInfo assetInfo;
public long ctime; public long ctime;
......
...@@ -16,9 +16,11 @@ public class Xuper011ListSdsByAddrReqDto { ...@@ -16,9 +16,11 @@ public class Xuper011ListSdsByAddrReqDto {
//要拉取的区块链账户地址 //要拉取的区块链账户地址
private String addr = ""; private String addr = "";
//要拉取页数,第一页为1 //要拉取页数,第一页为1
private int page = 1; private Integer page = 1;
//每页拉取数量,默认20,最大50(可选) //每页拉取数量,默认20,最大50(可选)
private int limit = 50; private Integer limit = 50;
//资产id
private Long assetId;
private static final Xuper011ListSdsByAddrReqDto obj = new Xuper011ListSdsByAddrReqDto(); private static final Xuper011ListSdsByAddrReqDto obj = new Xuper011ListSdsByAddrReqDto();
public static Xuper011ListSdsByAddrReqDto getNew() { public static Xuper011ListSdsByAddrReqDto getNew() {
......
...@@ -6,7 +6,7 @@ import lombok.Data; ...@@ -6,7 +6,7 @@ import lombok.Data;
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0 * @version V1.0
* @Description: 拉取数字商品历史登记记录 * @Description: 拉取数字商品历史登记记录
* @class: Xuper001GetStokenReqDto * @class: Xuper013HistoryReqDto
* @Package com.liquidnet.common.third.xuper.dto * @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022 * @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10 * @date 2022/4/18 15:10
...@@ -14,11 +14,15 @@ import lombok.Data; ...@@ -14,11 +14,15 @@ import lombok.Data;
@Data @Data
public class Xuper013HistoryReqDto { public class Xuper013HistoryReqDto {
//资产id //资产id
private long assetId; private Long assetId;
//要拉取页数,第一页为1 //要拉取页数,第一页为1
private int page = 1; private Integer page = 1;
//每页拉取数量,默认20,最大50(可选) //每页拉取数量,默认20,最大50(可选)
private int limit = 20; private Integer limit = 20;
/**
* 碎片id
*/
private Long shardId;
private static final Xuper013HistoryReqDto obj = new Xuper013HistoryReqDto(); private static final Xuper013HistoryReqDto obj = new Xuper013HistoryReqDto();
public static Xuper013HistoryReqDto getNew() { public static Xuper013HistoryReqDto getNew() {
......
...@@ -8,21 +8,20 @@ import java.util.ArrayList; ...@@ -8,21 +8,20 @@ import java.util.ArrayList;
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0 * @version V1.0
* @Description: 拉取数字商品历史登记记录 * @Description: 拉取数字商品历史登记记录
* @class: Xuper001GetStokenReqDto * @class: Xuper013HistoryRespDto
* @Package com.liquidnet.common.third.xuper.dto * @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022 * @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10 * @date 2022/8/12 17:50
*/ */
@Data @Data
public class Xuper013HistoryRespDto { public class Xuper013HistoryRespDto {
public long requestId; public long requestId;
public int errNo; public int errNo;
public String errMsg; public String errMsg;
public ArrayList<AssetInfo> list; public ArrayList<History> list;
public int totalCnt; public int totalCnt;
@Data public static class History {
public static class AssetInfo {
public long assetId; public long assetId;
public long type; public long type;
public long shardId; public long shardId;
...@@ -31,6 +30,70 @@ public class Xuper013HistoryRespDto { ...@@ -31,6 +30,70 @@ public class Xuper013HistoryRespDto {
public String from; public String from;
public String to; public String to;
public long ctime; public long ctime;
public long getAssetId() {
return assetId;
}
public void setAssetId(long assetId) {
this.assetId = assetId;
}
public long getType() {
return type;
}
public void setType(long type) {
this.type = type;
}
public long getShardId() {
return shardId;
}
public void setShardId(long shardId) {
this.shardId = shardId;
}
public long getPrice() {
return price;
}
public void setPrice(long price) {
this.price = price;
}
public String getTxId() {
return txId;
}
public void setTxId(String txId) {
this.txId = txId;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public long getCtime() {
return ctime;
}
public void setCtime(long ctime) {
this.ctime = ctime;
}
} }
......
...@@ -6,8 +6,11 @@ import com.liquidnet.commons.lang.util.StringUtil; ...@@ -6,8 +6,11 @@ import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.galaxy.constant.GalaxyEnum; 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.GalaxyTransferNftInfoBo;
import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo; import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto; import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftTransferReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftTransferRespDto;
import com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderFailLogVo; import com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderFailLogVo;
import com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftTradeVo; import com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftTradeVo;
import com.liquidnet.service.galaxy.utils.GalaxyDataUtils; import com.liquidnet.service.galaxy.utils.GalaxyDataUtils;
...@@ -136,4 +139,50 @@ public class GalaxyBeanTransferBiz { ...@@ -136,4 +139,50 @@ public class GalaxyBeanTransferBiz {
nftTradeVo.setCreatedAt(DateUtil.getNowTime()); nftTradeVo.setCreatedAt(DateUtil.getNowTime());
return nftTradeVo; return nftTradeVo;
} }
/**
* 构造nft转让信息
* @param reqDto
* @param userInfoBo
* @param receiveUserInfoBo
* @return
*/
public GalaxyTransferNftInfoBo buildTransferNftInfoBo(GalaxyNftTransferReqDto reqDto,GalaxyUserInfoBo userInfoBo,GalaxyUserInfoBo receiveUserInfoBo){
GalaxyTransferNftInfoBo transferNftInfoBo = GalaxyTransferNftInfoBo.getNew();
transferNftInfoBo.setNftId(reqDto.getNftId());
transferNftInfoBo.setUserId(reqDto.getUserId());
transferNftInfoBo.setAddress(userInfoBo.getBlockChainAddress());
transferNftInfoBo.setReceiveUserId(reqDto.getReceiveUserId());
transferNftInfoBo.setReceiveAddress(receiveUserInfoBo.getBlockChainAddress());
transferNftInfoBo.setOwnerUserId(null);
transferNftInfoBo.setOwnerAddress(null);
transferNftInfoBo.setSeriesId(null);
transferNftInfoBo.setRouterType(reqDto.getRouterType());
transferNftInfoBo.setTransferStatus(GalaxyEnum.NftTransferStatusEnum.INIT.getCode());
transferNftInfoBo.setTransferHash(null);
transferNftInfoBo.setErrorCode(null);
transferNftInfoBo.setErrorMsg(null);
transferNftInfoBo.setCreatedAt(DateUtil.getNowTime());
transferNftInfoBo.setUpdatedAt(null);
return transferNftInfoBo;
}
/**
* 构造nft转让返回结果
* @param reqDto
* @param userInfoBo
* @param receiveUserInfoBo
* @return
*/
public GalaxyNftTransferRespDto buildNftTransferRespDto(GalaxyNftTransferReqDto reqDto,GalaxyUserInfoBo userInfoBo,GalaxyUserInfoBo receiveUserInfoBo,GalaxyTransferNftInfoBo transferNftInfoBo){
GalaxyNftTransferRespDto respDto = GalaxyNftTransferRespDto.getNew();
respDto.setNftId(reqDto.getNftId());
respDto.setOwnerUserId(receiveUserInfoBo.getUserId());
respDto.setOwnerAddress(receiveUserInfoBo.getBlockChainAddress());
respDto.setFromUserId(userInfoBo.getUserId());
respDto.setFromAddress(userInfoBo.getBlockChainAddress());
respDto.setTransferTime(DateUtil.getNowTime());
respDto.setTransferHash(transferNftInfoBo.getTransferHash());
return respDto;
}
} }
...@@ -532,4 +532,52 @@ public abstract class AbstractDataUtils { ...@@ -532,4 +532,52 @@ public abstract class AbstractDataUtils {
} }
return null; return null;
} }
/**
* 创建nft转让信息
* @param routerType
* @param nftId
* @param transferNftInfoBo
*/
public void setGalaxyTransferNftInfoBo(String routerType,String nftId, GalaxyTransferNftInfoBo transferNftInfoBo) {
this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_TRANSFER_NFTID.concat(routerType).concat(":") + nftId,transferNftInfoBo);
}
/**
* 获取nft转让信息
* @param routerType
* @param nftId
* @return
*/
public GalaxyTransferNftInfoBo getGalaxyTransferNftInfoBo(String routerType,String nftId) {
String redisKey = GalaxyConstant.REDIS_KEY_GALAXY_TRANSFER_NFTID.concat(routerType).concat(":") + nftId;
Object obj = this.getRedisUtil().get(redisKey);
if(obj!=null){
return (GalaxyTransferNftInfoBo) obj;
}
return null;
}
/**
* 更新nft转移信息
* @param routerType
* @param nftId
* @param transferNftInfoBo
*/
public void updateTransferNftInfoBo(String routerType,String nftId, GalaxyTransferNftInfoBo transferNftInfoBo) {
this.getRedisUtil().set(GalaxyConstant.REDIS_KEY_GALAXY_TRANSFER_NFTID.concat(routerType).concat(":") + nftId,transferNftInfoBo);
// try{
// this.getQueueUtil().sendMySqlRedis(
// SqlMapping.get("galaxy_nft_order_info.updateNftBuyInfo"),
// new Object[]{nftOrderBo.getNftBuyTaskId(),nftOrderBo.getNftBuyChainTimestamp(),nftOrderBo.getNftBuyStatus()
// ,nftOrderBo.getNftBuyTradeHash(),nftOrderBo.getNftBuyPayTaskId()
// ,LocalDateTime.now(),nftOrderBo.getNftOrderPayId()}
// , MQConst.GalaxyQueue.SQL_NFT_ORDER_INFO.getKey()
// );
// }catch(Exception e){
// log.error(e.getMessage(),e);
// log.error("#setNftTradeInfo error ==> MESSAGE:{}",e.getMessage());
// }
}
} }
...@@ -64,11 +64,6 @@ public class GalaxyTradeController { ...@@ -64,11 +64,6 @@ public class GalaxyTradeController {
@ApiOperation(value = "NFT发行购买结果查询") @ApiOperation(value = "NFT发行购买结果查询")
@PostMapping(value = {"nftPublishAndBuyResultQuery"}) @PostMapping(value = {"nftPublishAndBuyResultQuery"})
public ResponseDto<GalaxyNftPublishAndBuyResultQueryRespDto> nftPublishAndBuyResultQuery(@Valid @RequestBody GalaxyNftPublishAndBuyResultQueryReqDto reqDto){ public ResponseDto<GalaxyNftPublishAndBuyResultQueryRespDto> nftPublishAndBuyResultQuery(@Valid @RequestBody GalaxyNftPublishAndBuyResultQueryReqDto reqDto){
try {
Thread.sleep(2000l);
} catch (InterruptedException e) {
e.printStackTrace();
}
return galaxyTradeService.nftPublishAndBuyResultQuery(reqDto); return galaxyTradeService.nftPublishAndBuyResultQuery(reqDto);
} }
...@@ -85,11 +80,6 @@ public class GalaxyTradeController { ...@@ -85,11 +80,6 @@ public class GalaxyTradeController {
@ApiOperation(value = "NFT转让结果查询") @ApiOperation(value = "NFT转让结果查询")
@PostMapping(value = {"nftTransferResultQuery"}) @PostMapping(value = {"nftTransferResultQuery"})
public ResponseDto<GalaxyNftTransferQueryRespDto> nftTransferResultQuery(@Valid @RequestBody GalaxyNftTransferQueryReqDto reqDto){ public ResponseDto<GalaxyNftTransferQueryRespDto> nftTransferResultQuery(@Valid @RequestBody GalaxyNftTransferQueryReqDto reqDto){
try {
Thread.sleep(2000l);
} catch (InterruptedException e) {
e.printStackTrace();
}
return galaxyTradeService.nftTransferQuery(reqDto); return galaxyTradeService.nftTransferQuery(reqDto);
} }
......
...@@ -28,9 +28,6 @@ public class GalaxyRouterStrategyXuperTradeImpl implements IGalaxyRouterStrategy ...@@ -28,9 +28,6 @@ public class GalaxyRouterStrategyXuperTradeImpl implements IGalaxyRouterStrategy
@Override @Override
public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) { public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) {
//测试发送队列
// queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
// return ResponseDto.success();
return xuperTradeBiz.nftPublishAndBuy(reqDto); return xuperTradeBiz.nftPublishAndBuy(reqDto);
} }
......
package com.liquidnet.service.galaxy.router.zxin.service; package com.liquidnet.service.galaxy.router.zxin.service;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.constant.GalaxyEnum; import com.liquidnet.service.galaxy.constant.GalaxyEnum;
import com.liquidnet.service.galaxy.dto.param.*; import com.liquidnet.service.galaxy.dto.param.*;
import com.liquidnet.service.galaxy.router.strategy.IGalaxyRouterStrategyTrade; import com.liquidnet.service.galaxy.router.strategy.IGalaxyRouterStrategyTrade;
import com.liquidnet.service.galaxy.router.strategy.annotation.StrategyGalaxyRouterTradeHandler; import com.liquidnet.service.galaxy.router.strategy.annotation.StrategyGalaxyRouterTradeHandler;
import com.liquidnet.service.galaxy.router.zxin.biz.ZxinTradeBiz; import com.liquidnet.service.galaxy.router.zxin.biz.ZxinTradeBiz;
import com.liquidnet.service.galaxy.utils.QueueUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -29,17 +26,9 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr ...@@ -29,17 +26,9 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr
@Autowired @Autowired
private ZxinTradeBiz zxinTradeBiz; private ZxinTradeBiz zxinTradeBiz;
@Autowired
private QueueUtil queueUtil;
@Override @Override
public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) { public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) {
//测试发送队列 return zxinTradeBiz.nftPublishAndBuy(reqDto);
ResponseDto<GalaxyNftPublishAndBuyRespDto> responseDto = zxinTradeBiz.nftPublishAndBuy(reqDto);
if(!responseDto.isSuccess()){
queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
}
return ResponseDto.success();
} }
@Deprecated @Deprecated
......
package com.liquidnet.service.galaxy.service.impl; package com.liquidnet.service.galaxy.service.impl;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.constant.GalaxyErrorEnum;
import com.liquidnet.service.galaxy.dto.param.*; import com.liquidnet.service.galaxy.dto.param.*;
import com.liquidnet.service.galaxy.router.strategy.GalaxyRouterStrategyContext; import com.liquidnet.service.galaxy.router.strategy.GalaxyRouterStrategyContext;
import com.liquidnet.service.galaxy.service.IGalaxyTradeService; import com.liquidnet.service.galaxy.service.IGalaxyTradeService;
import com.liquidnet.service.galaxy.utils.QueueUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -20,6 +24,9 @@ import org.springframework.stereotype.Service; ...@@ -20,6 +24,9 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
@Service("galaxyTradeServiceImpl") @Service("galaxyTradeServiceImpl")
public class GalaxyTradeServiceImpl implements IGalaxyTradeService { public class GalaxyTradeServiceImpl implements IGalaxyTradeService {
@Autowired
private QueueUtil queueUtil;
@Autowired @Autowired
private GalaxyRouterStrategyContext galaxyRouterStrategyContext; private GalaxyRouterStrategyContext galaxyRouterStrategyContext;
...@@ -31,7 +38,11 @@ public class GalaxyTradeServiceImpl implements IGalaxyTradeService { ...@@ -31,7 +38,11 @@ public class GalaxyTradeServiceImpl implements IGalaxyTradeService {
@Override @Override
public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) { public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) {
return galaxyRouterStrategyContext.getTradeStrategy(reqDto.getRouterType()).nftPublishAndBuy(reqDto); ResponseDto<GalaxyNftPublishAndBuyRespDto> responseDto = galaxyRouterStrategyContext.getTradeStrategy(reqDto.getRouterType()).nftPublishAndBuy(reqDto);
if(!responseDto.isSuccess()){
queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
}
return ResponseDto.success();
} }
@Override @Override
...@@ -59,7 +70,14 @@ public class GalaxyTradeServiceImpl implements IGalaxyTradeService { ...@@ -59,7 +70,14 @@ public class GalaxyTradeServiceImpl implements IGalaxyTradeService {
@Override @Override
public ResponseDto<GalaxyNftTransferRespDto> nftTransfer(GalaxyNftTransferReqDto reqDto) { public ResponseDto<GalaxyNftTransferRespDto> nftTransfer(GalaxyNftTransferReqDto reqDto) {
return galaxyRouterStrategyContext.getTradeStrategy(reqDto.getRouterType()).nftTransfer(reqDto); ResponseDto<GalaxyNftTransferRespDto> responseDto = galaxyRouterStrategyContext.getTradeStrategy(reqDto.getRouterType()).nftTransfer(reqDto);
if(!responseDto.isSuccess()){
//系统异常允许重试,业务异常不允许重试
if(responseDto.getCode().equalsIgnoreCase(GalaxyErrorEnum.NFT_TRANSFER_FAIL.getCode())){
queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
}
}
return ResponseDto.success();
} }
@Override @Override
......
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