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

Commit 40b4633a authored by anjiabin's avatar anjiabin

完善nft系列声明功能

parent 964f6ddb
...@@ -12,7 +12,7 @@ package com.liquidnet.service.galaxy.constant; ...@@ -12,7 +12,7 @@ package com.liquidnet.service.galaxy.constant;
public class GalaxyConstant { public class GalaxyConstant {
public static final String REDIS_KEY_GALAXY_USER="galaxy:user:"; public static final String REDIS_KEY_GALAXY_USER="galaxy:user:";
public static final String REDIS_KEY_GALAXY_SERIES="galaxy:series:"; public static final String REDIS_KEY_GALAXY_SERIES="galaxy:series:";
public static final String REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD="galaxy:series:nft:upload"; public static final String REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD="galaxy:series:nft:upload:";
public static final String REDIS_KEY_GALAXY_SERIES_NFT="galaxy:series:nft:"; public static final String REDIS_KEY_GALAXY_SERIES_NFT="galaxy:series:nft:";
public static final String REDIS_KEY_GALAXY_TRADE="galaxy:trade:order:"; public static final String REDIS_KEY_GALAXY_TRADE="galaxy:trade:order:";
......
...@@ -289,7 +289,7 @@ public class MQConst { ...@@ -289,7 +289,7 @@ public class MQConst {
SQL_SERIES_INFO("galaxy:stream:rk.sql.seriesInfo", "group.sql.seriesInfo", "系列信息"), 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_ORDER_INFO("galaxy:stream:rk.sql.nftOrderInfo", "group.sql.nftOrderInfo", "订单信息"),
SQL_NFT_TRADE_INFO("galaxy:stream:rk.sql.nftTradeInfo", "group.sql.nftTradeInfo", "交易信息"), SQL_NFT_TRADE_INFO("galaxy:stream:rk.sql.nftTradeInfo", "group.sql.nftTradeInfo", "交易信息"),
JSON_NFT_PUBLISH_AND_BUY("galaxy:stream:rk.json.nftPublishAndBuy", "group.sql.nftPublishAndBuy", "NFT发行和购买"), JSON_NFT_PUBLISH_AND_BUY("galaxy:stream:rk.json.nftPublishAndBuyLocal", "group.sql.nftPublishAndBuyLocal", "NFT发行和购买"),
; ;
private final String key; private final String key;
private final String group; private final String group;
......
...@@ -82,6 +82,7 @@ public class ZxinArtworkBiz { ...@@ -82,6 +82,7 @@ public class ZxinArtworkBiz {
/** /**
* 系列缓存初始化 * 系列缓存初始化
*/ */
//获取任务ID //获取任务ID
GalaxySeriesNftUploadBo seriesNftUploadBo = dataUtils.getSeriesNftUploadBo(reqDto.getRouterType(),reqDto.getSkuId()); GalaxySeriesNftUploadBo seriesNftUploadBo = dataUtils.getSeriesNftUploadBo(reqDto.getRouterType(),reqDto.getSkuId());
if(StringUtil.isNotNull(seriesNftUploadBo)){ if(StringUtil.isNotNull(seriesNftUploadBo)){
...@@ -95,11 +96,19 @@ public class ZxinArtworkBiz { ...@@ -95,11 +96,19 @@ public class ZxinArtworkBiz {
//返回素材上传结果 //返回素材上传结果
GalaxyNftUploadRespDto galaxyNftUploadRespDto = GalaxyNftUploadRespDto.getNew(); GalaxyNftUploadRespDto galaxyNftUploadRespDto = GalaxyNftUploadRespDto.getNew();
try {
galaxyNftUploadRespDto.setSkuId(reqDto.getSkuId()); galaxyNftUploadRespDto.setSkuId(reqDto.getSkuId());
galaxyNftUploadRespDto.setNftUrl(this.getFullFilePath(seriesName,originalNftUrl)); galaxyNftUploadRespDto.setNftUrl(this.getFullFilePath(seriesName,originalNftUrl));
galaxyNftUploadRespDto.setOriginalNftUrl(reqDto.getOriginalNftUrl()); galaxyNftUploadRespDto.setOriginalNftUrl(reqDto.getOriginalNftUrl());
galaxyNftUploadRespDto.setDisplayUrl(this.getFullFilePath(seriesName,originalDisplayUrl)); galaxyNftUploadRespDto.setDisplayUrl(this.getFullFilePath(seriesName,originalDisplayUrl));
galaxyNftUploadRespDto.setOriginalDisplayUrl(reqDto.getOriginalDisplayUrl()); galaxyNftUploadRespDto.setOriginalDisplayUrl(reqDto.getOriginalDisplayUrl());
} catch(ZxlNftException e){
log.error(e.getMessage());
return ResponseDto.failure(e.getCode(),e.getMessage());
}catch (Exception e) {
log.error(e.getMessage());
return ResponseDto.failure(e.getMessage());
}
seriesNftUploadBo = GalaxySeriesNftUploadBo.getNew(); seriesNftUploadBo = GalaxySeriesNftUploadBo.getNew();
seriesNftUploadBo.setSkuId(reqDto.getSkuId()); seriesNftUploadBo.setSkuId(reqDto.getSkuId());
...@@ -316,7 +325,10 @@ public class ZxinArtworkBiz { ...@@ -316,7 +325,10 @@ public class ZxinArtworkBiz {
} }
public ResponseDto<GalaxyArtSeriesClaimResultQueryRespDto> seriesClaimResultQuery(GalaxyArtSeriesClaimResultQueryReqDto reqDto) { public ResponseDto<GalaxyArtSeriesClaimResultQueryRespDto> seriesClaimResultQuery(GalaxyArtSeriesClaimResultQueryReqDto reqDto) {
String seriesCode = GalaxyConstant.SERIES_NAME_PREFIX.concat(reqDto.getSkuId()); //根据skuId获取系列nft信息
GalaxySeriesNftInfoBo seriesNftInfoBo = dataUtils.getSeriesNftInfoBo(reqDto.getRouterType(),reqDto.getSkuId());
String seriesCode = seriesNftInfoBo.getSeriesCode();
//获取任务ID //获取任务ID
GalaxySeriesInfoBo seriesInfoBo = dataUtils.getSeriesInfoBo(reqDto.getRouterType(),seriesCode); GalaxySeriesInfoBo seriesInfoBo = dataUtils.getSeriesInfoBo(reqDto.getRouterType(),seriesCode);
...@@ -341,6 +353,7 @@ public class ZxinArtworkBiz { ...@@ -341,6 +353,7 @@ public class ZxinArtworkBiz {
seriesInfoBo.setChainTimestamp(nowTimeStr); seriesInfoBo.setChainTimestamp(nowTimeStr);
seriesInfoBo.setTradeHash(resp.getData().getTxHash()); seriesInfoBo.setTradeHash(resp.getData().getTxHash());
seriesInfoBo.setSeriesId(resp.getData().getSeriesId()); seriesInfoBo.setSeriesId(resp.getData().getSeriesId());
seriesInfoBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateSeriesClaimStatus(reqDto.getRouterType(),seriesCode,seriesInfoBo); dataUtils.updateSeriesClaimStatus(reqDto.getRouterType(),seriesCode,seriesInfoBo);
//设置成功返回参数 //设置成功返回参数
...@@ -349,6 +362,7 @@ public class ZxinArtworkBiz { ...@@ -349,6 +362,7 @@ public class ZxinArtworkBiz {
return ResponseDto.success(resultQueryRespDto); return ResponseDto.success(resultQueryRespDto);
}else if(resp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())){ }else if(resp.getData().getTaskStatus().toString().equals(ZxlnftEnum.TaskStatusEnum.TASK_FAIL.getCode())){
seriesInfoBo.setSeriesClaimStatus(GalaxyEnum.SeriesClaimStatusEnum.FAIL.getCode()); seriesInfoBo.setSeriesClaimStatus(GalaxyEnum.SeriesClaimStatusEnum.FAIL.getCode());
seriesInfoBo.setUpdatedAt(LocalDateTime.now());
dataUtils.updateSeriesClaimStatus(reqDto.getRouterType(),seriesCode,seriesInfoBo); dataUtils.updateSeriesClaimStatus(reqDto.getRouterType(),seriesCode,seriesInfoBo);
return ResponseDto.failure(GalaxyErrorEnum.SERIES_CLAIM_ERROR.getCode(), GalaxyErrorEnum.SERIES_CLAIM_ERROR.getMessage()); return ResponseDto.failure(GalaxyErrorEnum.SERIES_CLAIM_ERROR.getCode(), GalaxyErrorEnum.SERIES_CLAIM_ERROR.getMessage());
} }
......
...@@ -86,8 +86,6 @@ public class ZxinTradeBiz { ...@@ -86,8 +86,6 @@ public class ZxinTradeBiz {
if(StringUtil.isNotNull(nftOrderBo)){ if(StringUtil.isNotNull(nftOrderBo)){
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getCode(), GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getMessage()); return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getCode(), GalaxyErrorEnum.PUBLISH_FAIL_ALREADY_EXIST.getMessage());
} }
//获取用户信息 //获取用户信息
GalaxyUserInfoBo userInfoBo = dataUtils.getGalaxyUserInfo(reqDto.getRouterType(),reqDto.getUserId()); GalaxyUserInfoBo userInfoBo = dataUtils.getGalaxyUserInfo(reqDto.getRouterType(),reqDto.getUserId());
...@@ -110,7 +108,7 @@ public class ZxinTradeBiz { ...@@ -110,7 +108,7 @@ public class ZxinTradeBiz {
/** /**
* 根据sku获取系列Id * 根据sku获取系列Id
*/ */
String seriesId = seriesNftInfoBo.getSkuId(); String seriesId = seriesNftInfoBo.getSeriesId();
//返回参数nftId //返回参数nftId
String nftId = null; String nftId = null;
......
...@@ -35,8 +35,8 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr ...@@ -35,8 +35,8 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr
@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)); queueUtil.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), JsonUtils.toJson(reqDto));
return ResponseDto.success(); // return ResponseDto.success();
// return zxinTradeBiz.nftPublishAndBuy(reqDto); return zxinTradeBiz.nftPublishAndBuy(reqDto);
} }
@Override @Override
......
...@@ -19,7 +19,10 @@ import org.springframework.data.mongodb.core.query.Update; ...@@ -19,7 +19,10 @@ import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Component @Component
...@@ -210,7 +213,6 @@ public class DataUtils { ...@@ -210,7 +213,6 @@ public class DataUtils {
Query query = Query.query(Criteria.where("seriesCode").is(seriesInfoBo.getSeriesCode())); Query query = Query.query(Criteria.where("seriesCode").is(seriesInfoBo.getSeriesCode()));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesInfoBo))); Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesInfoBo)));
// update.set("seriesClaimStatus", seriesInfoBo.getSeriesClaimStatus());
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()); String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now());
update.set("updatedAt",nowTimeStr); update.set("updatedAt",nowTimeStr);
UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesInfoVo.class,GalaxySeriesInfoVo.class.getSimpleName()); UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesInfoVo.class,GalaxySeriesInfoVo.class.getSimpleName());
...@@ -222,16 +224,63 @@ public class DataUtils { ...@@ -222,16 +224,63 @@ public class DataUtils {
new Object[]{seriesInfoBo.getSeriesId(),seriesInfoBo.getChainTimestamp(),seriesInfoBo.getTradeHash(),seriesInfoBo.getSeriesClaimStatus(),nowTimeStr,seriesInfoBo.getSeriesCode()} new Object[]{seriesInfoBo.getSeriesId(),seriesInfoBo.getChainTimestamp(),seriesInfoBo.getTradeHash(),seriesInfoBo.getSeriesClaimStatus(),nowTimeStr,seriesInfoBo.getSeriesCode()}
, MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey() , MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey()
); );
}catch(Exception e){
log.error(e.getMessage(),e);
log.error("#updateSeriesClaimStatus error ==> MESSAGE:{}",e.getMessage());
}
//更新系列对应的系列nft状态
List<String> skuIdList = this.getSkuIdListBySeriesCode(seriesCode);
skuIdList.stream().forEach(skuId -> {
GalaxySeriesNftInfoBo seriesNftInfoBo = this.getSeriesNftInfoBo(routerType,skuId);
seriesNftInfoBo.setSeriesId(seriesInfoBo.getSeriesId());
seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
this.updateSeriesNftStatus(routerType,skuId,seriesNftInfoBo);
});
}
public void updateSeriesNftStatus(String routerType,String skuId, GalaxySeriesNftInfoBo seriesNftInfoBo) {
//更新系列nft状态
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(seriesNftInfoBo.getUpdatedAt());
update.set("routerType",routerType);
update.set("updatedAt",nowTimeStr);
UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesNftInfoVo.class,GalaxySeriesNftInfoVo.class.getSimpleName());
log.info("updateSeriesNftStatus result:{}",result.toString());
try{
queueUtil.sendMySqlRedis( queueUtil.sendMySqlRedis(
SqlMapping.get("galaxy_series_nft_info.updateSeriesIdAndStatus"), SqlMapping.get("galaxy_series_nft_info.updateSeriesIdAndStatus"),
new Object[]{seriesInfoBo.getSeriesId(),nowTimeStr,seriesInfoBo.getSeriesCode()} new Object[]{seriesNftInfoBo.getSeriesId(),nowTimeStr,seriesNftInfoBo.getSkuId()}
, MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey() , MQConst.GalaxyQueue.SQL_SERIES_INFO.getKey()
); );
}catch(Exception e){ }catch(Exception e){
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
log.error("#updateSeriesClaimStatus error ==> MESSAGE:{}",e.getMessage()); log.error("#updateSeriesNftStatus error ==> MESSAGE:{}",e.getMessage());
}
}
//根据系列Id获取
public List<String> getSkuIdListBySeriesCode(String seriesCode){
//根据演出id获取用户信息 只查询5条
List<String> skuIdList = new ArrayList<>();
//获取总数
Criteria criteria = Criteria.where("seriesCode").is(seriesCode);
Query query = Query.query(criteria);
long startTime = System.currentTimeMillis();
List<GalaxySeriesNftInfoVo> seriesNftInfoVoList = mongoTemplate.find(query, GalaxySeriesNftInfoVo.class, GalaxySeriesNftInfoVo.class.getSimpleName());
long endTime = System.currentTimeMillis();
log.info("getSkuIdListBySeriesCode 根据系列code获取skuId 耗时:{}ms",endTime-startTime);
//根据用户id获取头像信息
if(StringUtil.isNotNull(seriesNftInfoVoList)){
skuIdList = seriesNftInfoVoList.stream().map(GalaxySeriesNftInfoVo::getSkuId).collect(Collectors.toList());
} }
return skuIdList;
} }
public void setNftOrderBo(String routerType,String nftOrderPayId, GalaxyNftOrderBo nftOrderBo) { public void setNftOrderBo(String routerType,String nftOrderPayId, GalaxyNftOrderBo nftOrderBo) {
......
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