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

Commit 984000f2 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev_nft_411' into dev_nft_411

parents 15ac511f 9ce70d9b
package com.liquidnet.service.galaxy.dto.vo.mongo;
import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: GalaxyOrderFailLogDto
* @Package com.liquidnet.service.galaxy.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/2 15:57
*/
@Data
public class GalaxyNftOrderFailLogVo implements Serializable,Cloneable {
/**
* 接入方买入唯一标识
*/
private String nftOrderPayId;
/**
* 用户Id
*/
private String userId;
/**
* 应用系统购买系列唯一ID
*/
private String nftId;
/**
* nft名字
*/
private String nftName;
/**
* 本地系列唯一名称
*/
private String seriesName;
/**
* 系列的唯一Id
*/
private String seriesId;
/**
* 本地系列唯一编码
*/
private String seriesCode;
/**
* 任务Id
*/
private String taskId;
/**
* 失败原因描述
*/
private String failReasonDesc;
/**
* 失败原因描述
*/
private String failReasonDescSecond;
/**
* 处理状态(处理状态 1未处理 2已处理 3再次失败 4不做处理)
*/
private String dealWithStatus;
/**
* nft购买任务id
* @return
*/
private String tradeType;
/**
* 路由类型
*/
private String routerType;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final GalaxyNftOrderFailLogVo obj = new GalaxyNftOrderFailLogVo();
public static GalaxyNftOrderFailLogVo getNew() {
try {
return (GalaxyNftOrderFailLogVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GalaxyNftOrderFailLogVo();
}
}
}
......@@ -17,6 +17,10 @@ import java.time.LocalDateTime;
*/
@Data
public class GalaxyNftTradeVo implements Serializable,Cloneable {
/**
* 用户Id
*/
private String userId;
/**
* 应用系统购买系列唯一ID
*/
......@@ -67,6 +71,11 @@ public class GalaxyNftTradeVo implements Serializable,Cloneable {
*/
private String tradeType;
/**
* 路由类型
*/
private String routerType;
/**
* 创建时间
*/
......
package com.liquidnet.service.galaxy.exception;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 自定义异常类
* @class: ZxlNftException
* @Package com.liquidnet.common.third.zxlnft.exception
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2022/2/21 13:44
*/
@Data
public class GalaxyNftException extends RuntimeException{
private static final long serialVersionUID = -3916918823313768482L;
private String code;
private String msg;
public GalaxyNftException(String code, String msg) {
super(msg);
this.code = code;
this.msg = msg;
}
public GalaxyNftException(String code, String msg, Throwable t) {
super(msg, t);
this.code = code;
this.msg = msg;
}
}
......@@ -318,6 +318,7 @@ public class MQConst {
SQL_SERIES_INFO("galaxy:stream:rk.sql.seriesInfo", "group.sql.seriesInfo", "系列信息"),
SQL_NFT_ORDER_INFO("galaxy:stream:rk.sql.nftOrderInfo", "group.sql.nftOrderInfo", "订单信息"),
SQL_NFT_TRADE_INFO("galaxy:stream:rk.sql.nftTradeInfo", "group.sql.nftTradeInfo", "交易信息"),
SQL_NFT_ORDER_FAIL_LOG("galaxy:stream:rk.sql.nftOrderFailLog", "group.sql.nftOrderFailLog", "交易发行购买失败记录"),
JSON_NFT_PUBLISH_AND_BUY("galaxy:stream:rk.json.nftPublishAndBuy", "group.sql.nftPublishAndBuy", "NFT发行和购买"),
;
private final String key;
......
......@@ -18,6 +18,7 @@ import com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftBuyRespDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyRespDto;
import com.liquidnet.service.galaxy.exception.GalaxyNftException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -54,6 +55,7 @@ public class ConsumerGalaxyJsonNftPublishAndBuyProcessor {
private GalaxyBeanTransferBiz galaxyBeanTransferBiz;
public ResponseDto<GalaxyNftPublishAndBuyRespDto> nftPublishAndBuy(GalaxyNftPublishAndBuyReqDto reqDto) {
try{
//获取订单信息
GalaxyNftOrderBo nftOrderBo = dataUtils.getNftOrderBo(reqDto.getRouterType(),reqDto.getNftOrderPayId());
if(StringUtil.isNotNull(nftOrderBo)){
......@@ -227,6 +229,12 @@ public class ConsumerGalaxyJsonNftPublishAndBuyProcessor {
BeanUtil.copy(nftBuyRespDto,nftPublishAndBuyRespDto);
return ResponseDto.success(nftPublishAndBuyRespDto);
}
}catch(GalaxyNftException e){
String rsMsg = e.getMessage();
log.error("购买失败");
}catch(Exception e){
log.error("发行上链异常!");
}
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL.getCode(), GalaxyErrorEnum.PUBLISH_FAIL.getMessage());
}
......
......@@ -9,24 +9,27 @@ goblin_nft_order.update.close=UPDATE goblin_nft_order SET status = ?, updated_at
galaxy_user_info.insert=insert into galaxy_user_info (user_id, user_name, user_type, mobile, id_card_type, id_card, mnemonic, mnemonic_index,user_identification, user_pub_key, user_pri_key, block_chain_address, router_type,created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
galaxy_series_info.insert=insert into galaxy_series_info (series_info_id, series_name, series_code, series_id, total_count, crt_count,series_claim_task_id, series_claim_status, cover_url, series_desc, nft_count,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
# ------------------------数字藏品系列NFT信息----------------------------
galaxy_series_nft_info.insert=insert into galaxy_series_nft_info (series_nft_info_id, series_info_id, sku_id, series_name, series_code,series_id, nft_total_count, nft_crt_count, nft_id_begin ,nft_id_begin_index ,nft_publish_number,original_nft_url, original_display_url,author, nft_name, nft_url, display_url, nft_desc, nft_flag, sell_count, nft_hash,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品订单信息----------------------------
galaxy_nft_order_info.insert=insert into galaxy_nft_order_info (nft_order_pay_id, user_id, sku_id, series_name, series_id,series_code, nft_id,nft_price, nft_publish_task_id, nft_publish_from_address,nft_publish_to_address,nft_publish_chain_timestamp, nft_publish_status, nft_publish_trade_hash,nft_buy_task_id,nft_buy_from_address, nft_buy_to_address, nft_buy_chain_timestamp,nft_buy_status, nft_buy_trade_hash,nft_buy_pay_task_id, router_type, created_at,updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品交易信息----------------------------
galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (nft_id, nft_name, series_name, series_id, series_code, trade_hash, chain_timestamp, from_address, to_address,trade_price, trade_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?)
galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (user_id, nft_id, nft_name, series_name, series_id, series_code, trade_hash,chain_timestamp, from_address, to_address, trade_price, trade_type, router_type,created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品发行购买失败记录----------------------------
galaxy_nft_order_fail_log.insert=insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name, series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second, deal_with_status, trade_type,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
#更新信息
# ------------------------更新系列声明信息----------------------------
galaxy_series_info.updateSeriesIdAndStatus=update galaxy_series_info t set t.series_id = ?,t.chain_timestamp = ?,t.trade_hash = ?,t.series_claim_status = ? ,t.updated_at =? where t.series_code = ?
# ------------------------更新系列NFT信息----------------------------
galaxy_series_nft_info.updateSeriesIdAndStatus=update galaxy_series_nft_info t set t.series_id = ?,t.updated_at =? where t.sku_id = ?
# ------------------------更新NFT发行信息----------------------------
galaxy_nft_order_info.updateNftPublishInfo=update galaxy_nft_order_info t set t.nft_id = ? ,t.nft_publish_task_id = ?,t.nft_publish_chain_timestamp = ?,t.nft_publish_status = ?,t.nft_publish_trade_hash = ?,t.updated_at =? where t.nft_order_pay_id = ?
# ------------------------更新NFT购买信息----------------------------
galaxy_nft_order_info.updateNftBuyInfo=update galaxy_nft_order_info t set t.nft_buy_task_id = ? ,t.nft_buy_chain_timestamp = ? ,t.nft_buy_status = ? ,t.nft_buy_trade_hash = ? ,t.nft_buy_pay_task_id = ? ,t.updated_at =? where t.nft_order_pay_id = ?
#更新已发行个数
# ------------------------更新系列已发行个数----------------------------
galaxy_series_info.updateSeriesCrtCount=update galaxy_series_info t set t.crt_count = ?,t.updated_at =? where t.series_code = ?
#更新已发行个数
# ------------------------更新系列NFT已发行个数----------------------------
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 = ?
......@@ -434,13 +434,15 @@ public abstract class AbstractDataUtils {
*/
this.getMongoTemplate().save(nftTradeVo,GalaxyNftTradeVo.class.getSimpleName());
// insert into galaxy_nft_trade_info (mid, nft_id, nft_name,series_name,series_id,series_code, trade_hash, chain_timestamp, from_address
// , to_address,trade_price, trade_type, created_at, updated_at)
// insert into galaxy_nft_trade_info (user_id, nft_id, nft_name, series_name, series_id,
// series_code, trade_hash,chain_timestamp, from_address, to_address,
// trade_price, trade_type, router_type,created_at, updated_at)
try{
this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_trade_info.insert"),
new Object[]{nftTradeVo.getNftId(),nftTradeVo.getNftName(),nftTradeVo.getSeriesName(),nftTradeVo.getSeriesId(),nftTradeVo.getSeriesCode(),nftTradeVo.getTradeHash(),nftTradeVo.getChainTimestamp(),nftTradeVo.getFromAddress()
,nftTradeVo.getToAddress(),nftTradeVo.getTradePrice(),nftTradeVo.getTradeType(),LocalDateTime.now(),null
new Object[]{nftTradeVo.getUserId(),nftTradeVo.getNftId(),nftTradeVo.getNftName(),nftTradeVo.getSeriesName(),nftTradeVo.getSeriesId(),
nftTradeVo.getSeriesCode(),nftTradeVo.getTradeHash(),nftTradeVo.getChainTimestamp(),nftTradeVo.getFromAddress(),nftTradeVo.getToAddress(),
nftTradeVo.getTradePrice(),nftTradeVo.getTradeType(),nftTradeVo.getRouterType(),LocalDateTime.now(),null
}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
);
......@@ -450,6 +452,30 @@ public abstract class AbstractDataUtils {
}
}
public void setNftOrderFailLogVo(String routerType, GalaxyNftOrderFailLogVo nftOrderFailLogVo) {
/**
* 入库mongo
*/
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,
// series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second,
// deal_with_status,trade_type, router_type, created_at, updated_at)
try{
this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_order_fail_log.insert"),
new Object[]{nftOrderFailLogVo.getNftOrderPayId(),nftOrderFailLogVo.getUserId(),nftOrderFailLogVo.getNftId(),nftOrderFailLogVo.getNftName(),nftOrderFailLogVo.getSeriesName(),
nftOrderFailLogVo.getSeriesId(),nftOrderFailLogVo.getSeriesCode(),nftOrderFailLogVo.getTaskId(),nftOrderFailLogVo.getFailReasonDesc(),nftOrderFailLogVo.getFailReasonDescSecond(),
nftOrderFailLogVo.getDealWithStatus(),nftOrderFailLogVo.getTradeType(),nftOrderFailLogVo.getRouterType(),LocalDateTime.now(),null
}
, MQConst.GalaxyQueue.SQL_NFT_ORDER_FAIL_LOG.getKey()
);
}catch(Exception e){
log.error(e.getMessage(),e);
log.error("#setNftOrderFailLogVo error ==> MESSAGE:{}",e.getMessage());
}
}
public long incrNftIdNo(String routerType,String skuId) {
return this.getRedisUtil().incr(GalaxyConstant.REDIS_KEY_GALAXY_PUBLISH_NFT.concat(routerType).concat(":").concat(skuId), 1);
}
......
......@@ -106,6 +106,7 @@ create table galaxy_nft_order_info
create table galaxy_nft_trade_info
(
mid bigint unsigned NOT NULL AUTO_INCREMENT,
user_id varchar(200) NOT NULL COMMENT '用户ID',
nft_id varchar(200) COMMENT 'nftId',
nft_name varchar(200) COMMENT 'nft名字(sku名称)',
series_name varchar(28) NOT NULL COMMENT '系列的唯一名称',
......@@ -117,7 +118,29 @@ create table galaxy_nft_trade_info
to_address varchar(200) COMMENT '转入方地址',
trade_price bigint COMMENT '交易价格',
trade_type varchar(3) COMMENT '交易类别 1发行 2购买 3转移 4设置价格 5设置状态',
router_type varchar(20) NOT NULL COMMENT '路由类型(zxinchain、eth、antchain)',
created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
) ENGINE = InnoDB comment '数字藏品交易信息';
create table galaxy_nft_order_fail_log
(
mid bigint unsigned NOT NULL AUTO_INCREMENT,
nft_order_pay_id varchar(100) COMMENT '订单支付唯一ID',
user_id varchar(200) NOT NULL COMMENT '用户ID',
nft_id varchar(200) COMMENT 'nftId',
nft_name varchar(200) COMMENT 'nft名字(sku名称)',
series_name varchar(28) NOT NULL COMMENT '系列的唯一名称',
series_id varchar(200) COMMENT '系列的唯一Id',
series_code varchar(200) NOT NULL COMMENT '本地系列唯一编码',
taskId varchar(100) COMMENT '任务ID',
fail_reason_desc varchar(20) COMMENT '失败原因',
fail_reason_desc_second varchar(20) COMMENT '失败原因2',
trade_type varchar(3) COMMENT '交易类别 1发行 2购买 3转移 4设置价格 5设置状态',
router_type varchar(20) NOT NULL COMMENT '路由类型(zxinchain、eth、antchain)',
deal_with_status varchar(3) COMMENT '处理状态 1未处理 2已处理 3再次失败 4不做处理',
created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`)
) ENGINE = InnoDB comment '数字藏品发行购买失败记录表';
\ No newline at end of file
......@@ -2,24 +2,27 @@
galaxy_user_info.insert=insert into galaxy_user_info (user_id, user_name, user_type, mobile, id_card_type, id_card, mnemonic, mnemonic_index,user_identification, user_pub_key, user_pri_key, block_chain_address, router_type,created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
galaxy_series_info.insert=insert into galaxy_series_info (series_info_id, series_name, series_code, series_id, total_count, crt_count,series_claim_task_id, series_claim_status, cover_url, series_desc, nft_count,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
# ------------------------数字藏品系列NFT信息----------------------------
galaxy_series_nft_info.insert=insert into galaxy_series_nft_info (series_nft_info_id, series_info_id, sku_id, series_name, series_code,series_id, nft_total_count, nft_crt_count, nft_id_begin ,nft_id_begin_index ,nft_publish_number,original_nft_url, original_display_url,author, nft_name, nft_url, display_url, nft_desc, nft_flag, sell_count, nft_hash,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品订单信息----------------------------
galaxy_nft_order_info.insert=insert into galaxy_nft_order_info (nft_order_pay_id, user_id, sku_id, series_name, series_id,series_code, nft_id,nft_price, nft_publish_task_id, nft_publish_from_address,nft_publish_to_address,nft_publish_chain_timestamp, nft_publish_status, nft_publish_trade_hash,nft_buy_task_id,nft_buy_from_address, nft_buy_to_address, nft_buy_chain_timestamp,nft_buy_status, nft_buy_trade_hash,nft_buy_pay_task_id, router_type, created_at,updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品交易信息----------------------------
galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (nft_id, nft_name, series_name, series_id, series_code, trade_hash, chain_timestamp, from_address, to_address,trade_price, trade_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?)
galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (user_id, nft_id, nft_name, series_name, series_id, series_code, trade_hash,chain_timestamp, from_address, to_address, trade_price, trade_type, router_type,created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品发行购买失败记录----------------------------
galaxy_nft_order_fail_log.insert=insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name, series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second, deal_with_status, trade_type,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
#更新信息
# ------------------------更新系列声明信息----------------------------
galaxy_series_info.updateSeriesIdAndStatus=update galaxy_series_info t set t.series_id = ?,t.chain_timestamp = ?,t.trade_hash = ?,t.series_claim_status = ? ,t.updated_at =? where t.series_code = ?
# ------------------------更新系列NFT信息----------------------------
galaxy_series_nft_info.updateSeriesIdAndStatus=update galaxy_series_nft_info t set t.series_id = ?,t.updated_at =? where t.sku_id = ?
# ------------------------更新NFT发行信息----------------------------
galaxy_nft_order_info.updateNftPublishInfo=update galaxy_nft_order_info t set t.nft_id = ? ,t.nft_publish_task_id = ?,t.nft_publish_chain_timestamp = ?,t.nft_publish_status = ?,t.nft_publish_trade_hash = ?,t.updated_at =? where t.nft_order_pay_id = ?
# ------------------------更新NFT购买信息----------------------------
galaxy_nft_order_info.updateNftBuyInfo=update galaxy_nft_order_info t set t.nft_buy_task_id = ? ,t.nft_buy_chain_timestamp = ? ,t.nft_buy_status = ? ,t.nft_buy_trade_hash = ? ,t.nft_buy_pay_task_id = ? ,t.updated_at =? where t.nft_order_pay_id = ?
#更新已发行个数
# ------------------------更新系列已发行个数----------------------------
galaxy_series_info.updateSeriesCrtCount=update galaxy_series_info t set t.crt_count = ?,t.updated_at =? where t.series_code = ?
#更新已发行个数
# ------------------------更新系列NFT已发行个数----------------------------
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 = ?
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