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

Commit 62888341 authored by anjiabin's avatar anjiabin

nft修改购买逻辑

parent f9e52db0
...@@ -23,13 +23,17 @@ public class GalaxyNftOrderBo implements Serializable,Cloneable { ...@@ -23,13 +23,17 @@ public class GalaxyNftOrderBo implements Serializable,Cloneable {
*/ */
private String skuId; private String skuId;
/** /**
* 系列的唯一名称 * 本地系列唯一名称
*/ */
private String seriesName; private String seriesName;
/** /**
* 系列的唯一Id * 系列的唯一Id
*/ */
private String seriesId; private String seriesId;
/**
* 本地系列唯一编码
*/
private String seriesCode;
/** /**
* 接入方买入唯一标识 * 接入方买入唯一标识
*/ */
......
...@@ -23,13 +23,17 @@ public class GalaxyNftOrderVo implements Serializable,Cloneable { ...@@ -23,13 +23,17 @@ public class GalaxyNftOrderVo implements Serializable,Cloneable {
*/ */
private String skuId; private String skuId;
/** /**
* 系列的唯一名称 * 本地系列唯一名称
*/ */
private String seriesName; private String seriesName;
/** /**
* 系列的唯一Id * 系列的唯一Id
*/ */
private String seriesId; private String seriesId;
/**
* 本地系列唯一编码
*/
private String seriesCode;
/** /**
* 接入方买入唯一标识 * 接入方买入唯一标识
*/ */
......
...@@ -21,10 +21,22 @@ public class GalaxyNftTradeVo implements Serializable,Cloneable { ...@@ -21,10 +21,22 @@ public class GalaxyNftTradeVo implements Serializable,Cloneable {
* 应用系统购买系列唯一ID * 应用系统购买系列唯一ID
*/ */
private String nftId; private String nftId;
/**
* nft名字
*/
private String nftName;
/**
* 本地系列唯一名称
*/
private String seriesName;
/** /**
* 系列的唯一Id * 系列的唯一Id
*/ */
private String seriesId; private String seriesId;
/**
* 本地系列唯一编码
*/
private String seriesCode;
/** /**
* nftId * nftId
*/ */
......
...@@ -81,6 +81,7 @@ create table galaxy_nft_order_info ...@@ -81,6 +81,7 @@ create table galaxy_nft_order_info
sku_id varchar(200) NOT NULL COMMENT '应用系统购买系列唯一ID', sku_id varchar(200) NOT NULL COMMENT '应用系统购买系列唯一ID',
series_name varchar(20) NOT NULL COMMENT '系列的唯一名称(前缀+skuid)', series_name varchar(20) NOT NULL COMMENT '系列的唯一名称(前缀+skuid)',
series_id varchar(3) COMMENT '系列的唯一Id', series_id varchar(3) COMMENT '系列的唯一Id',
series_code varchar(200) NOT NULL COMMENT '本地系列唯一编码',
nft_id varchar(200) COMMENT 'nftId', nft_id varchar(200) COMMENT 'nftId',
nft_price varchar(50) COMMENT 'nft购买价格', nft_price varchar(50) COMMENT 'nft购买价格',
nft_publish_task_id varchar(100) COMMENT 'nft发行任务id', nft_publish_task_id varchar(100) COMMENT 'nft发行任务id',
...@@ -106,7 +107,10 @@ create table galaxy_nft_trade_info ...@@ -106,7 +107,10 @@ create table galaxy_nft_trade_info
( (
mid bigint unsigned NOT NULL AUTO_INCREMENT, mid bigint unsigned NOT NULL AUTO_INCREMENT,
nft_id varchar(200) COMMENT 'nftId', nft_id varchar(200) COMMENT 'nftId',
nft_name varchar(200) COMMENT 'nft名字(sku名称)',
series_name varchar(20) NOT NULL COMMENT '系列的唯一名称',
series_id varchar(3) COMMENT '系列的唯一Id', series_id varchar(3) COMMENT '系列的唯一Id',
series_code varchar(200) NOT NULL COMMENT '本地系列唯一编码',
trade_hash varchar(200) COMMENT '交易hash', trade_hash varchar(200) COMMENT '交易hash',
chain_timestamp varchar(20) COMMENT '链上交易时间戳', chain_timestamp varchar(20) COMMENT '链上交易时间戳',
from_address varchar(200) COMMENT '转出方地址', from_address varchar(200) COMMENT '转出方地址',
......
...@@ -463,7 +463,7 @@ public class ZxinArtworkBiz { ...@@ -463,7 +463,7 @@ public class ZxinArtworkBiz {
seriesNftInfoBo.setNftTotalCount(Long.valueOf(nftTotalCount.toString())); seriesNftInfoBo.setNftTotalCount(Long.valueOf(nftTotalCount.toString()));
seriesNftInfoBo.setNftCrtCount(0L); seriesNftInfoBo.setNftCrtCount(0L);
seriesNftInfoBo.setNftIdBegin(null); seriesNftInfoBo.setNftIdBegin(null);
seriesNftInfoBo.setNftIdBeginIndex(BigDecimal.valueOf(nftTotalCount).multiply(BigDecimal.valueOf(nftPublishNumber-1)).intValue()); seriesNftInfoBo.setNftIdBeginIndex(BigDecimal.valueOf(nftTotalCount).multiply(BigDecimal.valueOf(nftPublishNumber-1)).intValue()+1);
seriesNftInfoBo.setNftPublishNumber(nftPublishNumber); seriesNftInfoBo.setNftPublishNumber(nftPublishNumber);
seriesNftInfoBo.setOriginalNftUrl(seriesNftUploadBo.getOriginalNftUrl()); seriesNftInfoBo.setOriginalNftUrl(seriesNftUploadBo.getOriginalNftUrl());
seriesNftInfoBo.setOriginalDisplayUrl(seriesNftUploadBo.getOriginalDisplayUrl()); seriesNftInfoBo.setOriginalDisplayUrl(seriesNftUploadBo.getOriginalDisplayUrl());
......
...@@ -31,6 +31,7 @@ public class ZxinCommonBiz { ...@@ -31,6 +31,7 @@ public class ZxinCommonBiz {
nftOrderBo.setSkuId(seriesNftInfoBo.getSkuId()); nftOrderBo.setSkuId(seriesNftInfoBo.getSkuId());
nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName()); nftOrderBo.setSeriesName(seriesNftInfoBo.getSeriesName());
nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId()); nftOrderBo.setSeriesId(seriesNftInfoBo.getSeriesId());
nftOrderBo.setSeriesCode(seriesNftInfoBo.getSeriesCode());
nftOrderBo.setNftOrderPayId(nftOrderPayId); nftOrderBo.setNftOrderPayId(nftOrderPayId);
nftOrderBo.setNftId(null); nftOrderBo.setNftId(null);
nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue()); nftOrderBo.setNftPrice(seriesNftInfoBo.getSellCount().longValue());
......
...@@ -18,6 +18,7 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -18,6 +18,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -302,7 +303,7 @@ public class DataUtils { ...@@ -302,7 +303,7 @@ public class DataUtils {
try{ try{
queueUtil.sendMySqlRedis( queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_nft_order_info.insert"), SqlMapping.get("galaxy_nft_order_info.insert"),
new Object[]{nftOrderPayId,nftOrderBo.getUserId(),nftOrderBo.getSkuId(),nftOrderBo.getSeriesName(),nftOrderBo.getSeriesId() new Object[]{nftOrderPayId,nftOrderBo.getUserId(),nftOrderBo.getSkuId(),nftOrderBo.getSeriesName(),nftOrderBo.getSeriesId(),nftOrderBo.getSeriesCode()
,nftOrderBo.getNftId(),nftOrderBo.getNftPrice(),nftOrderBo.getNftPublishFromAddress(),nftOrderBo.getNftPublishToAddress(),nftOrderBo.getNftPublishTaskId() ,nftOrderBo.getNftId(),nftOrderBo.getNftPrice(),nftOrderBo.getNftPublishFromAddress(),nftOrderBo.getNftPublishToAddress(),nftOrderBo.getNftPublishTaskId()
,nftOrderBo.getNftBuyTaskId(),nftOrderBo.getNftBuyPayTaskId(),nftOrderBo.getRouterType(),LocalDateTime.now(),null ,nftOrderBo.getNftBuyTaskId(),nftOrderBo.getNftBuyPayTaskId(),nftOrderBo.getRouterType(),LocalDateTime.now(),null
} }
...@@ -312,6 +313,20 @@ public class DataUtils { ...@@ -312,6 +313,20 @@ public class DataUtils {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
log.error("#setNftOrderBo error ==> MESSAGE:{}",e.getMessage()); log.error("#setNftOrderBo error ==> MESSAGE:{}",e.getMessage());
} }
//更新系列已发行信息
try {
this.updateSeriesCrtCount(routerType,nftOrderBo.getSeriesCode());
} catch (Exception e) {
log.error(e.getMessage(),e);
}
//更新系列nft已发行信息
try {
this.updateSeriesNftCrtCount(routerType,nftOrderBo.getSkuId());
} catch (Exception e) {
log.error(e.getMessage(),e);
}
} }
public GalaxyNftOrderBo getNftOrderBo(String routerType, String nftOrderPayId) { public GalaxyNftOrderBo getNftOrderBo(String routerType, String nftOrderPayId) {
...@@ -419,12 +434,12 @@ public class DataUtils { ...@@ -419,12 +434,12 @@ public class DataUtils {
*/ */
mongoTemplate.save(nftTradeVo,GalaxyNftTradeVo.class.getSimpleName()); mongoTemplate.save(nftTradeVo,GalaxyNftTradeVo.class.getSimpleName());
// insert into galaxy_nft_trade_info (mid, nft_id, series_id, trade_hash, chain_timestamp, from_address // 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) // , to_address,trade_price, trade_type, created_at, updated_at)
try{ try{
queueUtil.sendMySqlRedis( queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_nft_trade_info.insert"), SqlMapping.get("galaxy_nft_trade_info.insert"),
new Object[]{nftTradeVo.getNftId(),nftTradeVo.getSeriesId(),nftTradeVo.getTradeHash(),nftTradeVo.getChainTimestamp(),nftTradeVo.getFromAddress() 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 ,nftTradeVo.getToAddress(),nftTradeVo.getTradePrice(),nftTradeVo.getTradeType(),LocalDateTime.now(),null
} }
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey() , MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
...@@ -443,4 +458,64 @@ public class DataUtils { ...@@ -443,4 +458,64 @@ public class DataUtils {
Object o = redisUtil.get(GalaxyConstant.REDIS_KEY_GALAXY_PUBLISH_NFT.concat(routerType).concat(":").concat(skuId)); Object o = redisUtil.get(GalaxyConstant.REDIS_KEY_GALAXY_PUBLISH_NFT.concat(routerType).concat(":").concat(skuId));
return o==null?-1:(int)o; return o==null?-1:(int)o;
} }
/**
* 更新系列已购买信息
* @param routerType
* @param seriesCode
*/
public void updateSeriesCrtCount(String routerType,String seriesCode) {
GalaxySeriesInfoBo seriesInfoBo = this.getSeriesInfoBo(routerType,seriesCode);
seriesInfoBo.setCrtCount(seriesInfoBo.getCrtCount()+1);
redisUtil.set(GalaxyConstant.REDIS_KEY_GALAXY_SERIES.concat(routerType).concat(":") + seriesCode,seriesInfoBo,keyExpireTime);
Query query = Query.query(Criteria.where("seriesCode").is(seriesInfoBo.getSeriesCode()));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesInfoBo)));
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now());
update.set("crtCount",seriesInfoBo.getCrtCount()+1);
update.set("updatedAt",nowTimeStr);
UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesInfoVo.class,GalaxySeriesInfoVo.class.getSimpleName());
log.info("updateSeriesCrtCount result:{}",result.toString());
try{
queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_series_info.updateSeriesCrtCount"),
new Object[]{seriesInfoBo.getCrtCount()+1,LocalDateTime.now(),seriesCode}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
);
}catch(Exception e){
log.error(e.getMessage(),e);
log.error("#updateSeriesCrtCount error ==> MESSAGE:{}",e.getMessage());
}
}
/**
* 更新系列nft已购买信息
* @param routerType
* @param skuId
*/
public void updateSeriesNftCrtCount(String routerType,String skuId) {
GalaxySeriesNftInfoBo seriesNftInfoBo = this.getSeriesNftInfoBo(routerType,skuId);
seriesNftInfoBo.setNftCrtCount(seriesNftInfoBo.getNftCrtCount()+1);
redisUtil.set(GalaxyConstant.REDIS_KEY_GALAXY_SERIES_NFT.concat(routerType).concat(":") + skuId,seriesNftInfoBo,keyExpireTime);
Query query = Query.query(Criteria.where("skuId").is(skuId));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesNftInfoBo)));
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDate.now());
update.set("nftCrtCount",seriesNftInfoBo.getNftCrtCount()+1);
update.set("updatedAt",nowTimeStr);
UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesNftInfoBo.class,GalaxySeriesNftInfoBo.class.getSimpleName());
log.info("updateSeriesNftCrtCount result:{}",result.toString());
try{
queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_series_nft_info.updateSeriesNftCrtCount"),
new Object[]{seriesNftInfoBo.getNftCrtCount()+1,LocalDateTime.now(),skuId}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
);
}catch(Exception e){
log.error(e.getMessage(),e);
log.error("#GalaxySeriesNftInfoBo error ==> MESSAGE:{}",e.getMessage());
}
}
} }
...@@ -5,9 +5,9 @@ galaxy_series_info.insert=insert into galaxy_series_info (series_info_id, series ...@@ -5,9 +5,9 @@ galaxy_series_info.insert=insert into galaxy_series_info (series_info_id, series
# ------------------------数字藏品系列信息---------------------------- # ------------------------数字藏品系列信息----------------------------
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_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, nft_id, nft_price,from_address, to_address, nft_publish_task_id, nft_buy_task_id, nft_buy_pay_task_id,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,from_address, to_address, nft_publish_task_id, nft_buy_task_id, 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, series_id, 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 (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_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 = ? 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 = ?
...@@ -17,3 +17,9 @@ galaxy_series_nft_info.updateSeriesIdAndStatus=update galaxy_series_nft_info t s ...@@ -17,3 +17,9 @@ galaxy_series_nft_info.updateSeriesIdAndStatus=update galaxy_series_nft_info t s
galaxy_nft_order_info.updateNftId=update galaxy_nft_order_info t set t.nft_id = ? ,t.updated_at =? where t.nft_order_pay_id = ? galaxy_nft_order_info.updateNftId=update galaxy_nft_order_info t set t.nft_id = ? ,t.updated_at =? where t.nft_order_pay_id = ?
galaxy_nft_order_info.updateNftBuyTaskId=update galaxy_nft_order_info t set t.nft_buy_task_id = ? ,t.updated_at =? where t.nft_order_pay_id = ? galaxy_nft_order_info.updateNftBuyTaskId=update galaxy_nft_order_info t set t.nft_buy_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 = ?
#更新已发行个数
galaxy_series_nft_info.updateSeriesNftCrtCount=update galaxy_series_nft_info t set t.nft_crt_count = ?,t.updated_at =? where t.sku_id = ?
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