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

Commit 7bcfee46 authored by zhanggb's avatar zhanggb

~queue:opt;

parent 2aa2be07
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.fasterxml.jackson.databind.JsonNode; //import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil; //import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping; //import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryRespDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; //import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; //import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; //import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; //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.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import java.time.Duration; //import java.time.Duration;
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.util.HashMap; //import java.util.HashMap;
import java.util.LinkedList; //import java.util.LinkedList;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizArtworkClqRdsReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizArtworkClqRdsReceiver extends AbstractBizRedisReceiver {
@Autowired // @Autowired
private RedisUtil redisUtil; // private RedisUtil redisUtil;
@Autowired // @Autowired
private MongoTemplate mongoTemplate; // private MongoTemplate mongoTemplate;
//
//
// @Value("${liquidnet.service.galaxy.url}") //// @Value("${liquidnet.service.galaxy.url}")
// private String serviceGalaxyUrl; //// private String serviceGalaxyUrl;
@Value("${liquidnet.service.goblin.url}") // @Value("${liquidnet.service.goblin.url}")
private String serviceGoblinUrl; // private String serviceGoblinUrl;
//
private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,series_id=?,series_hash=?,nft_hash=?,declare_at=?,updated_at=? WHERE sku_id=? "; // private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,series_id=?,series_hash=?,nft_hash=?,declare_at=?,updated_at=? WHERE sku_id=? ";
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
if (StringUtils.isEmpty(msg)) { // if (StringUtils.isEmpty(msg)) {
log.warn("CONSUMER MSG NULL_MSG ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_MSG ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
String[] msgArr = msg.split(","); // String[] msgArr = msg.split(",");
String skuId = msgArr[0], time = msgArr.length == 2 ? msgArr[1] : null; // String skuId = msgArr[0], time = msgArr.length == 2 ? msgArr[1] : null;
//
LocalDateTime now = LocalDateTime.now(), checkTime = now.minusSeconds(10); // LocalDateTime now = LocalDateTime.now(), checkTime = now.minusSeconds(10);
LocalDateTime createAt = StringUtils.isEmpty(time) ? checkTime : LocalDateTime.parse(time); // LocalDateTime createAt = StringUtils.isEmpty(time) ? checkTime : LocalDateTime.parse(time);
long durationToMillis = Duration.between(createAt, checkTime).toMillis(); // long durationToMillis = Duration.between(createAt, checkTime).toMillis();
if (durationToMillis >= 0) { // if (durationToMillis >= 0) {
aBoolean = this.bizArtworkClqProcessing(skuId); // aBoolean = this.bizArtworkClqProcessing(skuId);
} else { // } else {
try { // try {
Thread.sleep(Math.abs(durationToMillis)); // Thread.sleep(Math.abs(durationToMillis));
} catch (InterruptedException ignored) { // } catch (InterruptedException ignored) {
} // }
aBoolean = this.bizArtworkClqProcessing(skuId); // aBoolean = this.bizArtworkClqProcessing(skuId);
} // }
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizArtworkClqProcessing(String skuId) { // private boolean bizArtworkClqProcessing(String skuId) {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId); // GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId);
if (null == mgtGoodsSkuInfoVo) { // if (null == mgtGoodsSkuInfoVo) {
log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId); // log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId);
return true; // return true;
} // }
int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain(); // int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain();
String unbox = mgtGoodsSkuInfoVo.getUnbox(); // String unbox = mgtGoodsSkuInfoVo.getUnbox();
// 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID // // 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID
if (1 != skuType || !"0".equals(unbox) || 9 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) { // if (1 != skuType || !"0".equals(unbox) || 9 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) {
log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]", // log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]",
this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId()); // this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId());
return true; // return true;
} // }
//
GalaxyArtSeriesClaimResultQueryRespDto resultQueryRespDto = this.queryNftSeriesClaimResult(skuId, mgtGoodsSkuInfoVo.getRouteType()); // GalaxyArtSeriesClaimResultQueryRespDto resultQueryRespDto = this.queryNftSeriesClaimResult(skuId, mgtGoodsSkuInfoVo.getRouteType());
if (null == resultQueryRespDto) return false;// 声明查询失败,重新入队处理 // if (null == resultQueryRespDto) return false;// 声明查询失败,重新入队处理
//
String seriesId = resultQueryRespDto.getSeriesId(); // String seriesId = resultQueryRespDto.getSeriesId();
String txHash = resultQueryRespDto.getTxHash(); // String txHash = resultQueryRespDto.getTxHash();
String nftHash = resultQueryRespDto.getNftHash(); // String nftHash = resultQueryRespDto.getNftHash();
String chainTimestamp = resultQueryRespDto.getChainTimestamp(); // String chainTimestamp = resultQueryRespDto.getChainTimestamp();
//
LocalDateTime now = LocalDateTime.now(); // LocalDateTime now = LocalDateTime.now();
mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(), // Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(),
Update.update("upchain", 1).set("seriesId", seriesId).set("seriesHash", txHash).set("nftHash", nftHash).set("declareAt", chainTimestamp).getUpdateObject() // Update.update("upchain", 1).set("seriesId", seriesId).set("seriesHash", txHash).set("nftHash", nftHash).set("declareAt", chainTimestamp).getUpdateObject()
); // );
redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId)); // redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId));
//
// Mysql持久化 // // Mysql持久化
HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString(); // HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString();
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); // LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT); // toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT);
LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr();
updateGoodsSkuNftObjs.add(new Object[]{1, seriesId, txHash, nftHash, chainTimestamp, now, skuId}); // updateGoodsSkuNftObjs.add(new Object[]{1, seriesId, txHash, nftHash, chainTimestamp, now, skuId});
//
sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs)); // sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs));
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey()));
return true; // return true;
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
private GalaxyArtSeriesClaimResultQueryRespDto queryNftSeriesClaimResult(String skuId, String routerType) { // private GalaxyArtSeriesClaimResultQueryRespDto queryNftSeriesClaimResult(String skuId, String routerType) {
GalaxyArtSeriesClaimResultQueryReqDto artSeriesClaimResultQueryReqDto = GalaxyArtSeriesClaimResultQueryReqDto.getNew(); // GalaxyArtSeriesClaimResultQueryReqDto artSeriesClaimResultQueryReqDto = GalaxyArtSeriesClaimResultQueryReqDto.getNew();
artSeriesClaimResultQueryReqDto.setSkuId(skuId); // artSeriesClaimResultQueryReqDto.setSkuId(skuId);
artSeriesClaimResultQueryReqDto.setRouterType(routerType); // artSeriesClaimResultQueryReqDto.setRouterType(routerType);
//
// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/seriesClaimResultQuery"; //// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/seriesClaimResultQuery";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaimResultQuery"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaimResultQuery";
String postBoby = JsonUtils.toJson(artSeriesClaimResultQueryReqDto); // String postBoby = JsonUtils.toJson(artSeriesClaimResultQueryReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBoby, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBoby, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode, postRespDataJNode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode, postRespDataJNode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#CONSUMER MSG FAIL_UPC[{}]查询失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr); // log.warn("#CONSUMER MSG FAIL_UPC[{}]查询失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr);
return null; // return null;
} // }
if (1 != (postRespDataJNode = postRespJNode.get("data")).get("taskStatus").asInt()) { // if (1 != (postRespDataJNode = postRespJNode.get("data")).get("taskStatus").asInt()) {
log.warn("#CONSUMER MSG FAIL_UPC[{}]声明失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr); // log.warn("#CONSUMER MSG FAIL_UPC[{}]声明失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespDataJNode, GalaxyArtSeriesClaimResultQueryRespDto.class); // return JsonUtils.OM().convertValue(postRespDataJNode, GalaxyArtSeriesClaimResultQueryRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.CONSUMER MSG ERROR_UPC[{}]请求异常[url={},paramsStr={}],ex:{}", this.getRedisStreamKey(), postUrl, postBoby, e.getMessage()); // log.error("Ex.CONSUMER MSG ERROR_UPC[{}]请求异常[url={},paramsStr={}],ex:{}", this.getRedisStreamKey(), postUrl, postBoby, e.getMessage());
return null; // return null;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) { // public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); // GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.fasterxml.jackson.databind.JsonNode; //import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil; //import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping; //import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimRespDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadRespDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; //import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; //import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; //import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; //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.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StreamOperations; //import org.springframework.data.redis.core.StreamOperations;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.util.HashMap; //import java.util.HashMap;
import java.util.LinkedList; //import java.util.LinkedList;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizArtworkUplRdsReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizArtworkUplRdsReceiver extends AbstractBizRedisReceiver {
@Autowired // @Autowired
private RedisUtil redisUtil; // private RedisUtil redisUtil;
@Autowired // @Autowired
private MongoTemplate mongoTemplate; // private MongoTemplate mongoTemplate;
//
//
// @Value("${liquidnet.service.galaxy.url}") //// @Value("${liquidnet.service.galaxy.url}")
// private String serviceGalaxyUrl; //// private String serviceGalaxyUrl;
@Value("${liquidnet.service.goblin.url}") // @Value("${liquidnet.service.goblin.url}")
private String serviceGoblinUrl; // private String serviceGoblinUrl;
//
private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,display_url=?,nft_url=? WHERE sku_id=? AND upchain=0 "; // private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,display_url=?,nft_url=? WHERE sku_id=? AND upchain=0 ";
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
if (StringUtils.isEmpty(msg)) { // if (StringUtils.isEmpty(msg)) {
log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
aBoolean = this.bizArtworkUplProcessing(msg); // aBoolean = this.bizArtworkUplProcessing(msg);
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizArtworkUplProcessing(String skuId) { // private boolean bizArtworkUplProcessing(String skuId) {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId); // GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId);
if (null == mgtGoodsSkuInfoVo) { // if (null == mgtGoodsSkuInfoVo) {
log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId); // log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId);
return true; // return true;
} // }
int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain(); // int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain();
String unbox = mgtGoodsSkuInfoVo.getUnbox(); // String unbox = mgtGoodsSkuInfoVo.getUnbox();
// 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID // // 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID
if (1 != skuType || !"0".equals(unbox) || 0 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) { // if (1 != skuType || !"0".equals(unbox) || 0 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) {
log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]", // log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]",
this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId()); // this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId());
return true; // return true;
} // }
//
String displayUrl = mgtGoodsSkuInfoVo.getDisplayUrl(), nftUrl = mgtGoodsSkuInfoVo.getNftUrl(); // String displayUrl = mgtGoodsSkuInfoVo.getDisplayUrl(), nftUrl = mgtGoodsSkuInfoVo.getNftUrl();
if (StringUtils.isBlank(displayUrl)) {// 未上传过的直接上传处理,已上传过的跳过上传直接声明 // if (StringUtils.isBlank(displayUrl)) {// 未上传过的直接上传处理,已上传过的跳过上传直接声明
GalaxyNftUploadReqDto galaxyNftUploadReqDto = GalaxyNftUploadReqDto.getNew(); // GalaxyNftUploadReqDto galaxyNftUploadReqDto = GalaxyNftUploadReqDto.getNew();
galaxyNftUploadReqDto.setSkuId(skuId); // galaxyNftUploadReqDto.setSkuId(skuId);
galaxyNftUploadReqDto.setOriginalDisplayUrl(mgtGoodsSkuInfoVo.getSkuPic()); // galaxyNftUploadReqDto.setOriginalDisplayUrl(mgtGoodsSkuInfoVo.getSkuPic());
galaxyNftUploadReqDto.setOriginalNftUrl(mgtGoodsSkuInfoVo.getMaterialUrl()); // galaxyNftUploadReqDto.setOriginalNftUrl(mgtGoodsSkuInfoVo.getMaterialUrl());
galaxyNftUploadReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType()); // galaxyNftUploadReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType());
GalaxyNftUploadRespDto galaxyNftUploadRespDto = this.uploadNftMaterial(galaxyNftUploadReqDto); // GalaxyNftUploadRespDto galaxyNftUploadRespDto = this.uploadNftMaterial(galaxyNftUploadReqDto);
if (null == galaxyNftUploadRespDto) return false;// 上传失败,重新入队处理 // if (null == galaxyNftUploadRespDto) return false;// 上传失败,重新入队处理
//
displayUrl = galaxyNftUploadRespDto.getDisplayUrl(); // displayUrl = galaxyNftUploadRespDto.getDisplayUrl();
nftUrl = galaxyNftUploadRespDto.getNftUrl(); // nftUrl = galaxyNftUploadRespDto.getNftUrl();
} // }
//
GoblinGoodsInfoVo mgtGoodsInfoVo = this.getGoodsInfoVoFromMdb(mgtGoodsSkuInfoVo.getSpuId()); // GoblinGoodsInfoVo mgtGoodsInfoVo = this.getGoodsInfoVoFromMdb(mgtGoodsSkuInfoVo.getSpuId());
String skuTitle = mgtGoodsSkuInfoVo.getName() + mgtGoodsSkuInfoVo.getSubtitle(); // String skuTitle = mgtGoodsSkuInfoVo.getName() + mgtGoodsSkuInfoVo.getSubtitle();
GalaxyArtSeriesClaimReqDto galaxyArtSeriesClaimReqDto = GalaxyArtSeriesClaimReqDto.getNew(); // GalaxyArtSeriesClaimReqDto galaxyArtSeriesClaimReqDto = GalaxyArtSeriesClaimReqDto.getNew();
galaxyArtSeriesClaimReqDto.setAuthor(mgtGoodsInfoVo.getAuthor()); // galaxyArtSeriesClaimReqDto.setAuthor(mgtGoodsInfoVo.getAuthor());
galaxyArtSeriesClaimReqDto.setCoverUrl(displayUrl); // galaxyArtSeriesClaimReqDto.setCoverUrl(displayUrl);
galaxyArtSeriesClaimReqDto.setDisplayUrl(displayUrl); // galaxyArtSeriesClaimReqDto.setDisplayUrl(displayUrl);
galaxyArtSeriesClaimReqDto.setNftDesc(skuTitle); // galaxyArtSeriesClaimReqDto.setNftDesc(skuTitle);
galaxyArtSeriesClaimReqDto.setNftName(skuTitle); // galaxyArtSeriesClaimReqDto.setNftName(skuTitle);
galaxyArtSeriesClaimReqDto.setNftUrl(nftUrl); // galaxyArtSeriesClaimReqDto.setNftUrl(nftUrl);
galaxyArtSeriesClaimReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType()); // galaxyArtSeriesClaimReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType());
galaxyArtSeriesClaimReqDto.setSellCount(String.valueOf(mgtGoodsSkuInfoVo.getPrice())); // galaxyArtSeriesClaimReqDto.setSellCount(String.valueOf(mgtGoodsSkuInfoVo.getPrice()));
galaxyArtSeriesClaimReqDto.setSeriesDesc(skuTitle); // galaxyArtSeriesClaimReqDto.setSeriesDesc(skuTitle);
galaxyArtSeriesClaimReqDto.setSkuId(skuId); // galaxyArtSeriesClaimReqDto.setSkuId(skuId);
galaxyArtSeriesClaimReqDto.setTotalCount(Long.valueOf(mgtGoodsSkuInfoVo.getSkuStock())); // galaxyArtSeriesClaimReqDto.setTotalCount(Long.valueOf(mgtGoodsSkuInfoVo.getSkuStock()));
//
// 声明失败,标记`声明失败` // // 声明失败,标记`声明失败`
upchain = null == this.claimNftSeries(galaxyArtSeriesClaimReqDto) ? 2 : 9; // upchain = null == this.claimNftSeries(galaxyArtSeriesClaimReqDto) ? 2 : 9;
//
mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(), // Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(),
Update.update("upchain", upchain).set("displayUrl", displayUrl).set("nftUrl", nftUrl).getUpdateObject() // Update.update("upchain", upchain).set("displayUrl", displayUrl).set("nftUrl", nftUrl).getUpdateObject()
); // );
redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId)); // redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId));
//
// Mysql持久化 // // Mysql持久化
HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString(); // HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString();
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); // LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT); // toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT);
LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr();
updateGoodsSkuNftObjs.add(new Object[]{upchain, displayUrl, nftUrl, skuId}); // updateGoodsSkuNftObjs.add(new Object[]{upchain, displayUrl, nftUrl, skuId});
//
sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs)); // sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs));
//
StreamOperations<String, Object, Object> streamOperations = stringRedisTemplate.opsForStream(); // StreamOperations<String, Object, Object> streamOperations = stringRedisTemplate.opsForStream();
streamOperations.add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey())); // streamOperations.add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey()));
//
HashMap<String, String> toQueueBeClaimQueryMsg = CollectionUtil.mapStringString(); // HashMap<String, String> toQueueBeClaimQueryMsg = CollectionUtil.mapStringString();
toQueueBeClaimQueryMsg.put(MQConst.QUEUE_MESSAGE_KEY, skuId.concat(",").concat(String.valueOf(LocalDateTime.now()))); // toQueueBeClaimQueryMsg.put(MQConst.QUEUE_MESSAGE_KEY, skuId.concat(",").concat(String.valueOf(LocalDateTime.now())));
streamOperations.add(StreamRecords.mapBacked(toQueueBeClaimQueryMsg).withStreamKey(MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey())); // streamOperations.add(StreamRecords.mapBacked(toQueueBeClaimQueryMsg).withStreamKey(MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey()));
return true; // return true;
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
/** // /**
* NFT素材上传 // * NFT素材上传
* // *
* @param nftUploadReqDto GalaxyNftUploadReqDto // * @param nftUploadReqDto GalaxyNftUploadReqDto
* @return GalaxyNftUploadRespDto // * @return GalaxyNftUploadRespDto
*/ // */
public GalaxyNftUploadRespDto uploadNftMaterial(GalaxyNftUploadReqDto nftUploadReqDto) { // public GalaxyNftUploadRespDto uploadNftMaterial(GalaxyNftUploadReqDto nftUploadReqDto) {
// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/nftUpload"; //// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/nftUpload";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/nftUpload"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/nftUpload";
String postBody = JsonUtils.toJson(nftUploadReqDto); // String postBody = JsonUtils.toJson(nftUploadReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBody, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBody, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#NFT素材上传:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr); // log.warn("#NFT素材上传:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyNftUploadRespDto.class); // return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyNftUploadRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.NFT素材上传:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage()); // log.error("Ex.NFT素材上传:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage());
return null; // return null;
} // }
} // }
//
/** // /**
* NFT系列声明 // * NFT系列声明
* // *
* @param seriesClaimReqDto GalaxyArtSeriesClaimReqDto // * @param seriesClaimReqDto GalaxyArtSeriesClaimReqDto
* @return GalaxyArtSeriesClaimRespDto // * @return GalaxyArtSeriesClaimRespDto
*/ // */
public GalaxyArtSeriesClaimRespDto claimNftSeries(GalaxyArtSeriesClaimReqDto seriesClaimReqDto) { // public GalaxyArtSeriesClaimRespDto claimNftSeries(GalaxyArtSeriesClaimReqDto seriesClaimReqDto) {
// String postUrl = serviceGalaxyUrl + "/galaxy/nftArtwork/seriesClaim"; //// String postUrl = serviceGalaxyUrl + "/galaxy/nftArtwork/seriesClaim";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaim"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaim";
String postBody = JsonUtils.toJson(seriesClaimReqDto); // String postBody = JsonUtils.toJson(seriesClaimReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBody, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBody, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#NFT系列声明:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr); // log.warn("#NFT系列声明:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyArtSeriesClaimRespDto.class); // return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyArtSeriesClaimRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.NFT系列声明:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage()); // log.error("Ex.NFT系列声明:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage());
return null; // return null;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) { // public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); // GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
} // }
//
public GoblinGoodsInfoVo getGoodsInfoVoFromMdb(String spuId) { // public GoblinGoodsInfoVo getGoodsInfoVoFromMdb(String spuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")),
GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName()); // GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto; //import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap; //import org.springframework.util.MultiValueMap;
//
import java.util.HashMap; //import java.util.HashMap;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizIntegralReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizIntegralReceiver extends AbstractBizRedisReceiver {
//
@Value("${liquidnet.service.stone.url}") // @Value("${liquidnet.service.stone.url}")
private String stoneUrl; // private String stoneUrl;
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_INTEGRAL.getKey(); // return MQConst.GoblinQueue.BIZ_INTEGRAL.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_INTEGRAL.getGroup(); // return MQConst.GoblinQueue.BIZ_INTEGRAL.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
GoblinQueueBizIntegralDto fromJsonObj = JsonUtils.fromJson(msg, GoblinQueueBizIntegralDto.class); // GoblinQueueBizIntegralDto fromJsonObj = JsonUtils.fromJson(msg, GoblinQueueBizIntegralDto.class);
if (fromJsonObj == null) { // if (fromJsonObj == null) {
log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
aBoolean = this.bizIntegralProcessing(fromJsonObj); // aBoolean = this.bizIntegralProcessing(fromJsonObj);
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizIntegralProcessing(GoblinQueueBizIntegralDto dto) { // private boolean bizIntegralProcessing(GoblinQueueBizIntegralDto dto) {
try { // try {
log.info("bizIntegralProcessing params:{}", dto); // log.info("bizIntegralProcessing params:{}", dto);
String uid = dto.getUid(), content = dto.getContent(); // String uid = dto.getUid(), content = dto.getContent();
int type = dto.getType(); // int type = dto.getType();
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); // MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8"); // header.add("Accept", "application/json;charset=UTF-8");
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString(); // MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("score", dto.getScore().intValue() + ""); // params.add("score", dto.getScore().intValue() + "");
params.add("content", content); // params.add("content", content);
params.add("uid", uid); // params.add("uid", uid);
String resultData = ""; // String resultData = "";
long ss = System.currentTimeMillis(); // long ss = System.currentTimeMillis();
log.info("HttpUtil s:{}", ss); // log.info("HttpUtil s:{}", ss);
if (type == 1) { // if (type == 1) {
resultData = HttpUtil.post(stoneUrl + "/user/logs/in2111", params, header); // resultData = HttpUtil.post(stoneUrl + "/user/logs/in2111", params, header);
} else { // } else {
resultData = HttpUtil.post(stoneUrl + "/user/logs/de2111", params, header); // resultData = HttpUtil.post(stoneUrl + "/user/logs/de2111", params, header);
} // }
log.info("HttpUtil e:{}", System.currentTimeMillis() - ss); // log.info("HttpUtil e:{}", System.currentTimeMillis() - ss);
log.info("bizIntegralProcessing result:{}", resultData); // log.info("bizIntegralProcessing result:{}", resultData);
return true; // return true;
} catch (Exception e) { // } catch (Exception e) {
log.error("bizIntegralProcessing e:{}", e); // log.error("bizIntegralProcessing e:{}", e);
return false; // return false;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinMdbNftArtworkReceiver extends AbstractMdbRedisReceiver { //public class ConsumerGoblinMdbNftArtworkReceiver extends AbstractMdbRedisReceiver {
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getGroup();
} // }
//
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinMdbNftOrderReceiver extends AbstractMdbRedisReceiver { //public class ConsumerGoblinMdbNftOrderReceiver extends AbstractMdbRedisReceiver {
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(); // return MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_NFT_MONGO.getGroup(); // return MQConst.GoblinQueue.BIZ_NFT_MONGO.getGroup();
} // }
//
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinNftOrderRdsReceiver extends AbstractSqlRedisReceiver { //public class ConsumerGoblinNftOrderRdsReceiver extends AbstractSqlRedisReceiver {
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getKey(); // return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getGroup(); // return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getGroup();
} // }
} //}
package com.liquidnet.service.consumer.kylin.receiver; //package com.liquidnet.service.consumer.kylin.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinSqlArtworkGenRdsReceiver extends AbstractSqlRedisReceiver { //public class ConsumerGoblinSqlArtworkGenRdsReceiver extends AbstractSqlRedisReceiver {
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(); // return MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.SQL_ARTWORK_GEN.getGroup(); // return MQConst.GoblinQueue.SQL_ARTWORK_GEN.getGroup();
} // }
} //}
package com.liquidnet.service.consumer.nft.receiver; //package com.liquidnet.service.consumer.nft.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinNftOrderRdsReceiver extends AbstractSqlRedisReceiver { //public class ConsumerGoblinNftOrderRdsReceiver extends AbstractSqlRedisReceiver {
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getKey(); // return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getGroup(); // return MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getGroup();
} // }
} //}
...@@ -22,18 +22,18 @@ import java.util.List; ...@@ -22,18 +22,18 @@ import java.util.List;
public class ConsumerCommonBizRedisStreamConfig extends RedisStreamConfig { public class ConsumerCommonBizRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
StringRedisTemplate stringRedisTemplate; StringRedisTemplate stringRedisTemplate;
@Autowired // @Autowired
ConsumerGoblinBizArtworkUplRdsReceiver consumerGoblinBizArtworkUplRdsReceiver; // ConsumerGoblinBizArtworkUplRdsReceiver consumerGoblinBizArtworkUplRdsReceiver;
@Autowired // @Autowired
ConsumerGoblinBizArtworkClqRdsReceiver consumerGoblinBizArtworkClqRdsReceiver; // ConsumerGoblinBizArtworkClqRdsReceiver consumerGoblinBizArtworkClqRdsReceiver;
// @Autowired // @Autowired
// ConsumerGoblinBizArtworkGenRdsReceiver consumerGoblinBizArtworkGenRdsReceiver; // ConsumerGoblinBizArtworkGenRdsReceiver consumerGoblinBizArtworkGenRdsReceiver;
@Autowired // @Autowired
ConsumerGoblinBizIntegralReceiver consumerGoblinBizIntegralReceiver; // ConsumerGoblinBizIntegralReceiver consumerGoblinBizIntegralReceiver;
@Autowired // @Autowired
ConsumerGoblinMdbNftOrderReceiver consumerGoblinMdbNftOrderReceiver; // ConsumerGoblinMdbNftOrderReceiver consumerGoblinMdbNftOrderReceiver;
@Autowired // @Autowired
ConsumerGoblinMdbNftArtworkReceiver consumerGoblinMdbNftArtworkReceiver; // ConsumerGoblinMdbNftArtworkReceiver consumerGoblinMdbNftArtworkReceiver;
// @Bean// 藏品上传声明 // @Bean// 藏品上传声明
// public List<Subscription> subscriptionBizArtworkUpl(RedisConnectionFactory factory) { // public List<Subscription> subscriptionBizArtworkUpl(RedisConnectionFactory factory) {
...@@ -115,19 +115,19 @@ public class ConsumerCommonBizRedisStreamConfig extends RedisStreamConfig { ...@@ -115,19 +115,19 @@ public class ConsumerCommonBizRedisStreamConfig extends RedisStreamConfig {
// return subscriptionList; // return subscriptionList;
// } // }
@Bean// NFT数字藏品 mongo操作 // @Bean// NFT数字藏品 mongo操作
public List<Subscription> subscriptionBizNftArtwork(RedisConnectionFactory factory) { // public List<Subscription> subscriptionBizNftArtwork(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>(); // List<Subscription> subscriptionList = new ArrayList<>();
MQConst.GoblinQueue stream = MQConst.GoblinQueue.BIZ_ARTWORK_GEN; // MQConst.GoblinQueue stream = MQConst.GoblinQueue.BIZ_ARTWORK_GEN;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup()); // this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
for (int i = 0; i < 5; i++) { // for (int i = 0; i < 5; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory); // StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck( // subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)), // Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinMdbNftArtworkReceiver // StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinMdbNftArtworkReceiver
)); // ));
listenerContainer.start(); // listenerContainer.start();
} // }
return subscriptionList; // return subscriptionList;
} // }
} }
package com.liquidnet.service.consumer.slowly.receiver; //package com.liquidnet.service.consumer.slowly.receiver;
//
import com.fasterxml.jackson.databind.JsonNode; //import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil; //import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping; //import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimResultQueryRespDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; //import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; //import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; //import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; //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.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import java.time.Duration; //import java.time.Duration;
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.util.HashMap; //import java.util.HashMap;
import java.util.LinkedList; //import java.util.LinkedList;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizArtworkClqRdsReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizArtworkClqRdsReceiver extends AbstractBizRedisReceiver {
@Autowired // @Autowired
private RedisUtil redisUtil; // private RedisUtil redisUtil;
@Autowired // @Autowired
private MongoTemplate mongoTemplate; // private MongoTemplate mongoTemplate;
//
//
// @Value("${liquidnet.service.galaxy.url}") //// @Value("${liquidnet.service.galaxy.url}")
// private String serviceGalaxyUrl; //// private String serviceGalaxyUrl;
@Value("${liquidnet.service.goblin.url}") // @Value("${liquidnet.service.goblin.url}")
private String serviceGoblinUrl; // private String serviceGoblinUrl;
//
private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,series_id=?,series_hash=?,nft_hash=?,declare_at=?,updated_at=? WHERE sku_id=? "; // private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,series_id=?,series_hash=?,nft_hash=?,declare_at=?,updated_at=? WHERE sku_id=? ";
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
if (StringUtils.isEmpty(msg)) { // if (StringUtils.isEmpty(msg)) {
log.warn("CONSUMER MSG NULL_MSG ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_MSG ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
String[] msgArr = msg.split(","); // String[] msgArr = msg.split(",");
String skuId = msgArr[0], time = msgArr.length == 2 ? msgArr[1] : null; // String skuId = msgArr[0], time = msgArr.length == 2 ? msgArr[1] : null;
//
LocalDateTime now = LocalDateTime.now(), checkTime = now.minusSeconds(10); // LocalDateTime now = LocalDateTime.now(), checkTime = now.minusSeconds(10);
LocalDateTime createAt = StringUtils.isEmpty(time) ? checkTime : LocalDateTime.parse(time); // LocalDateTime createAt = StringUtils.isEmpty(time) ? checkTime : LocalDateTime.parse(time);
long durationToMillis = Duration.between(createAt, checkTime).toMillis(); // long durationToMillis = Duration.between(createAt, checkTime).toMillis();
if (durationToMillis >= 0) { // if (durationToMillis >= 0) {
aBoolean = this.bizArtworkClqProcessing(skuId); // aBoolean = this.bizArtworkClqProcessing(skuId);
} else { // } else {
try { // try {
Thread.sleep(Math.abs(durationToMillis)); // Thread.sleep(Math.abs(durationToMillis));
} catch (InterruptedException ignored) { // } catch (InterruptedException ignored) {
} // }
aBoolean = this.bizArtworkClqProcessing(skuId); // aBoolean = this.bizArtworkClqProcessing(skuId);
} // }
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizArtworkClqProcessing(String skuId) { // private boolean bizArtworkClqProcessing(String skuId) {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId); // GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId);
if (null == mgtGoodsSkuInfoVo) { // if (null == mgtGoodsSkuInfoVo) {
log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId); // log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId);
return true; // return true;
} // }
int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain(); // int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain();
String unbox = mgtGoodsSkuInfoVo.getUnbox(); // String unbox = mgtGoodsSkuInfoVo.getUnbox();
// 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID // // 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID
if (1 != skuType || !"0".equals(unbox) || 9 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) { // if (1 != skuType || !"0".equals(unbox) || 9 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) {
log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]", // log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]",
this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId()); // this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId());
return true; // return true;
} // }
//
GalaxyArtSeriesClaimResultQueryRespDto resultQueryRespDto = this.queryNftSeriesClaimResult(skuId, mgtGoodsSkuInfoVo.getRouteType()); // GalaxyArtSeriesClaimResultQueryRespDto resultQueryRespDto = this.queryNftSeriesClaimResult(skuId, mgtGoodsSkuInfoVo.getRouteType());
if (null == resultQueryRespDto) return false;// 声明查询失败,重新入队处理 // if (null == resultQueryRespDto) return false;// 声明查询失败,重新入队处理
//
String seriesId = resultQueryRespDto.getSeriesId(); // String seriesId = resultQueryRespDto.getSeriesId();
String txHash = resultQueryRespDto.getTxHash(); // String txHash = resultQueryRespDto.getTxHash();
String nftHash = resultQueryRespDto.getNftHash(); // String nftHash = resultQueryRespDto.getNftHash();
String chainTimestamp = resultQueryRespDto.getChainTimestamp(); // String chainTimestamp = resultQueryRespDto.getChainTimestamp();
//
LocalDateTime now = LocalDateTime.now(); // LocalDateTime now = LocalDateTime.now();
mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(), // Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(),
Update.update("upchain", 1).set("seriesId", seriesId).set("seriesHash", txHash).set("nftHash", nftHash).set("declareAt", chainTimestamp).getUpdateObject() // Update.update("upchain", 1).set("seriesId", seriesId).set("seriesHash", txHash).set("nftHash", nftHash).set("declareAt", chainTimestamp).getUpdateObject()
); // );
redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId)); // redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId));
//
// Mysql持久化 // // Mysql持久化
HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString(); // HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString();
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); // LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT); // toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT);
LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr();
updateGoodsSkuNftObjs.add(new Object[]{1, seriesId, txHash, nftHash, chainTimestamp, now, skuId}); // updateGoodsSkuNftObjs.add(new Object[]{1, seriesId, txHash, nftHash, chainTimestamp, now, skuId});
//
sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs)); // sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs));
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey()));
return true; // return true;
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
private GalaxyArtSeriesClaimResultQueryRespDto queryNftSeriesClaimResult(String skuId, String routerType) { // private GalaxyArtSeriesClaimResultQueryRespDto queryNftSeriesClaimResult(String skuId, String routerType) {
GalaxyArtSeriesClaimResultQueryReqDto artSeriesClaimResultQueryReqDto = GalaxyArtSeriesClaimResultQueryReqDto.getNew(); // GalaxyArtSeriesClaimResultQueryReqDto artSeriesClaimResultQueryReqDto = GalaxyArtSeriesClaimResultQueryReqDto.getNew();
artSeriesClaimResultQueryReqDto.setSkuId(skuId); // artSeriesClaimResultQueryReqDto.setSkuId(skuId);
artSeriesClaimResultQueryReqDto.setRouterType(routerType); // artSeriesClaimResultQueryReqDto.setRouterType(routerType);
//
// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/seriesClaimResultQuery"; //// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/seriesClaimResultQuery";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaimResultQuery"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaimResultQuery";
String postBoby = JsonUtils.toJson(artSeriesClaimResultQueryReqDto); // String postBoby = JsonUtils.toJson(artSeriesClaimResultQueryReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBoby, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBoby, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode, postRespDataJNode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode, postRespDataJNode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#CONSUMER MSG FAIL_UPC[{}]查询失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr); // log.warn("#CONSUMER MSG FAIL_UPC[{}]查询失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr);
return null; // return null;
} // }
if (1 != (postRespDataJNode = postRespJNode.get("data")).get("taskStatus").asInt()) { // if (1 != (postRespDataJNode = postRespJNode.get("data")).get("taskStatus").asInt()) {
log.warn("#CONSUMER MSG FAIL_UPC[{}]声明失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr); // log.warn("#CONSUMER MSG FAIL_UPC[{}]声明失败[paramsStr={},postRespStr={}]", this.getRedisStreamKey(), postBoby, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespDataJNode, GalaxyArtSeriesClaimResultQueryRespDto.class); // return JsonUtils.OM().convertValue(postRespDataJNode, GalaxyArtSeriesClaimResultQueryRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.CONSUMER MSG ERROR_UPC[{}]请求异常[url={},paramsStr={}],ex:{}", this.getRedisStreamKey(), postUrl, postBoby, e.getMessage()); // log.error("Ex.CONSUMER MSG ERROR_UPC[{}]请求异常[url={},paramsStr={}],ex:{}", this.getRedisStreamKey(), postUrl, postBoby, e.getMessage());
return null; // return null;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) { // public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); // GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.slowly.receiver; //package com.liquidnet.service.consumer.slowly.receiver;
//
import com.fasterxml.jackson.databind.JsonNode; //import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil; //import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping; //import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyArtSeriesClaimRespDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadReqDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadRespDto; //import com.liquidnet.service.galaxy.dto.param.GalaxyNftUploadRespDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; //import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo; //import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; //import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; //import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; //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.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StreamOperations; //import org.springframework.data.redis.core.StreamOperations;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.util.HashMap; //import java.util.HashMap;
import java.util.LinkedList; //import java.util.LinkedList;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizArtworkUplRdsReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizArtworkUplRdsReceiver extends AbstractBizRedisReceiver {
@Autowired // @Autowired
private RedisUtil redisUtil; // private RedisUtil redisUtil;
@Autowired // @Autowired
private MongoTemplate mongoTemplate; // private MongoTemplate mongoTemplate;
//
//
// @Value("${liquidnet.service.galaxy.url}") //// @Value("${liquidnet.service.galaxy.url}")
// private String serviceGalaxyUrl; //// private String serviceGalaxyUrl;
@Value("${liquidnet.service.goblin.url}") // @Value("${liquidnet.service.goblin.url}")
private String serviceGoblinUrl; // private String serviceGoblinUrl;
//
private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,display_url=?,nft_url=? WHERE sku_id=? AND upchain=0 "; // private static final String SQL_UPDATE_GOODS_SKU_NFT = "UPDATE goblin_goods_sku_nft SET upchain=?,display_url=?,nft_url=? WHERE sku_id=? AND upchain=0 ";
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_UPL.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
if (StringUtils.isEmpty(msg)) { // if (StringUtils.isEmpty(msg)) {
log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
aBoolean = this.bizArtworkUplProcessing(msg); // aBoolean = this.bizArtworkUplProcessing(msg);
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizArtworkUplProcessing(String skuId) { // private boolean bizArtworkUplProcessing(String skuId) {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId); // GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = this.getGoodsSkuInfoVoFromMdb(skuId);
if (null == mgtGoodsSkuInfoVo) { // if (null == mgtGoodsSkuInfoVo) {
log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId); // log.warn("#CONSUMER MSG NULL_SKU[{}]:[skuId={}]", this.getRedisStreamKey(), skuId);
return true; // return true;
} // }
int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain(); // int skuType = mgtGoodsSkuInfoVo.getSkuType(), upchain = mgtGoodsSkuInfoVo.getUpchain();
String unbox = mgtGoodsSkuInfoVo.getUnbox(); // String unbox = mgtGoodsSkuInfoVo.getUnbox();
// 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID // // 非数字藏品 || 盲盒 || 非声明中 || 已有声明系列ID
if (1 != skuType || !"0".equals(unbox) || 0 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) { // if (1 != skuType || !"0".equals(unbox) || 0 != upchain || StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getSeriesId())) {
log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]", // log.warn("#CONSUMER MSG VOID_SKU[{}]:[skuId={},skuType={},unbox={},upchain={},seriesId={}]",
this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId()); // this.getRedisStreamKey(), skuId, skuType, unbox, upchain, mgtGoodsSkuInfoVo.getSeriesId());
return true; // return true;
} // }
//
String displayUrl = mgtGoodsSkuInfoVo.getDisplayUrl(), nftUrl = mgtGoodsSkuInfoVo.getNftUrl(); // String displayUrl = mgtGoodsSkuInfoVo.getDisplayUrl(), nftUrl = mgtGoodsSkuInfoVo.getNftUrl();
if (StringUtils.isBlank(displayUrl)) {// 未上传过的直接上传处理,已上传过的跳过上传直接声明 // if (StringUtils.isBlank(displayUrl)) {// 未上传过的直接上传处理,已上传过的跳过上传直接声明
GalaxyNftUploadReqDto galaxyNftUploadReqDto = GalaxyNftUploadReqDto.getNew(); // GalaxyNftUploadReqDto galaxyNftUploadReqDto = GalaxyNftUploadReqDto.getNew();
galaxyNftUploadReqDto.setSkuId(skuId); // galaxyNftUploadReqDto.setSkuId(skuId);
galaxyNftUploadReqDto.setOriginalDisplayUrl(mgtGoodsSkuInfoVo.getSkuPic()); // galaxyNftUploadReqDto.setOriginalDisplayUrl(mgtGoodsSkuInfoVo.getSkuPic());
galaxyNftUploadReqDto.setOriginalNftUrl(mgtGoodsSkuInfoVo.getMaterialUrl()); // galaxyNftUploadReqDto.setOriginalNftUrl(mgtGoodsSkuInfoVo.getMaterialUrl());
galaxyNftUploadReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType()); // galaxyNftUploadReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType());
GalaxyNftUploadRespDto galaxyNftUploadRespDto = this.uploadNftMaterial(galaxyNftUploadReqDto); // GalaxyNftUploadRespDto galaxyNftUploadRespDto = this.uploadNftMaterial(galaxyNftUploadReqDto);
if (null == galaxyNftUploadRespDto) return false;// 上传失败,重新入队处理 // if (null == galaxyNftUploadRespDto) return false;// 上传失败,重新入队处理
//
displayUrl = galaxyNftUploadRespDto.getDisplayUrl(); // displayUrl = galaxyNftUploadRespDto.getDisplayUrl();
nftUrl = galaxyNftUploadRespDto.getNftUrl(); // nftUrl = galaxyNftUploadRespDto.getNftUrl();
} // }
//
GoblinGoodsInfoVo mgtGoodsInfoVo = this.getGoodsInfoVoFromMdb(mgtGoodsSkuInfoVo.getSpuId()); // GoblinGoodsInfoVo mgtGoodsInfoVo = this.getGoodsInfoVoFromMdb(mgtGoodsSkuInfoVo.getSpuId());
String skuTitle = mgtGoodsSkuInfoVo.getName() + mgtGoodsSkuInfoVo.getSubtitle(); // String skuTitle = mgtGoodsSkuInfoVo.getName() + mgtGoodsSkuInfoVo.getSubtitle();
GalaxyArtSeriesClaimReqDto galaxyArtSeriesClaimReqDto = GalaxyArtSeriesClaimReqDto.getNew(); // GalaxyArtSeriesClaimReqDto galaxyArtSeriesClaimReqDto = GalaxyArtSeriesClaimReqDto.getNew();
galaxyArtSeriesClaimReqDto.setAuthor(mgtGoodsInfoVo.getAuthor()); // galaxyArtSeriesClaimReqDto.setAuthor(mgtGoodsInfoVo.getAuthor());
galaxyArtSeriesClaimReqDto.setCoverUrl(displayUrl); // galaxyArtSeriesClaimReqDto.setCoverUrl(displayUrl);
galaxyArtSeriesClaimReqDto.setDisplayUrl(displayUrl); // galaxyArtSeriesClaimReqDto.setDisplayUrl(displayUrl);
galaxyArtSeriesClaimReqDto.setNftDesc(skuTitle); // galaxyArtSeriesClaimReqDto.setNftDesc(skuTitle);
galaxyArtSeriesClaimReqDto.setNftName(skuTitle); // galaxyArtSeriesClaimReqDto.setNftName(skuTitle);
galaxyArtSeriesClaimReqDto.setNftUrl(nftUrl); // galaxyArtSeriesClaimReqDto.setNftUrl(nftUrl);
galaxyArtSeriesClaimReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType()); // galaxyArtSeriesClaimReqDto.setRouterType(mgtGoodsSkuInfoVo.getRouteType());
galaxyArtSeriesClaimReqDto.setSellCount(String.valueOf(mgtGoodsSkuInfoVo.getPrice())); // galaxyArtSeriesClaimReqDto.setSellCount(String.valueOf(mgtGoodsSkuInfoVo.getPrice()));
galaxyArtSeriesClaimReqDto.setSeriesDesc(skuTitle); // galaxyArtSeriesClaimReqDto.setSeriesDesc(skuTitle);
galaxyArtSeriesClaimReqDto.setSkuId(skuId); // galaxyArtSeriesClaimReqDto.setSkuId(skuId);
galaxyArtSeriesClaimReqDto.setTotalCount(Long.valueOf(mgtGoodsSkuInfoVo.getSkuStock())); // galaxyArtSeriesClaimReqDto.setTotalCount(Long.valueOf(mgtGoodsSkuInfoVo.getSkuStock()));
//
// 声明失败,标记`声明失败` // // 声明失败,标记`声明失败`
upchain = null == this.claimNftSeries(galaxyArtSeriesClaimReqDto) ? 2 : 9; // upchain = null == this.claimNftSeries(galaxyArtSeriesClaimReqDto) ? 2 : 9;
//
mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne( // mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(), // Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")).getQueryObject(),
Update.update("upchain", upchain).set("displayUrl", displayUrl).set("nftUrl", nftUrl).getUpdateObject() // Update.update("upchain", upchain).set("displayUrl", displayUrl).set("nftUrl", nftUrl).getUpdateObject()
); // );
redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId)); // redisUtil.del(GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId));
//
// Mysql持久化 // // Mysql持久化
HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString(); // HashMap<String, String> sqlUpdateMap = CollectionUtil.mapStringString();
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); // LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT); // toMqSqls.add(SQL_UPDATE_GOODS_SKU_NFT);
LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr();
updateGoodsSkuNftObjs.add(new Object[]{upchain, displayUrl, nftUrl, skuId}); // updateGoodsSkuNftObjs.add(new Object[]{upchain, displayUrl, nftUrl, skuId});
//
sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs)); // sqlUpdateMap.put(MQConst.QUEUE_MESSAGE_KEY, SqlMapping.gets(toMqSqls, updateGoodsSkuNftObjs));
//
StreamOperations<String, Object, Object> streamOperations = stringRedisTemplate.opsForStream(); // StreamOperations<String, Object, Object> streamOperations = stringRedisTemplate.opsForStream();
streamOperations.add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey())); // streamOperations.add(StreamRecords.mapBacked(sqlUpdateMap).withStreamKey(MQConst.GoblinQueue.SQL_GOODS.getKey()));
//
HashMap<String, String> toQueueBeClaimQueryMsg = CollectionUtil.mapStringString(); // HashMap<String, String> toQueueBeClaimQueryMsg = CollectionUtil.mapStringString();
toQueueBeClaimQueryMsg.put(MQConst.QUEUE_MESSAGE_KEY, skuId.concat(",").concat(String.valueOf(LocalDateTime.now()))); // toQueueBeClaimQueryMsg.put(MQConst.QUEUE_MESSAGE_KEY, skuId.concat(",").concat(String.valueOf(LocalDateTime.now())));
streamOperations.add(StreamRecords.mapBacked(toQueueBeClaimQueryMsg).withStreamKey(MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey())); // streamOperations.add(StreamRecords.mapBacked(toQueueBeClaimQueryMsg).withStreamKey(MQConst.GoblinQueue.BIZ_ARTWORK_CLQ.getKey()));
return true; // return true;
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
/** // /**
* NFT素材上传 // * NFT素材上传
* // *
* @param nftUploadReqDto GalaxyNftUploadReqDto // * @param nftUploadReqDto GalaxyNftUploadReqDto
* @return GalaxyNftUploadRespDto // * @return GalaxyNftUploadRespDto
*/ // */
public GalaxyNftUploadRespDto uploadNftMaterial(GalaxyNftUploadReqDto nftUploadReqDto) { // public GalaxyNftUploadRespDto uploadNftMaterial(GalaxyNftUploadReqDto nftUploadReqDto) {
// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/nftUpload"; //// String postUrl = serviceGalaxyUrl + "/galaxy/artwork/nftUpload";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/nftUpload"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/nftUpload";
String postBody = JsonUtils.toJson(nftUploadReqDto); // String postBody = JsonUtils.toJson(nftUploadReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBody, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBody, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#NFT素材上传:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr); // log.warn("#NFT素材上传:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyNftUploadRespDto.class); // return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyNftUploadRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.NFT素材上传:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage()); // log.error("Ex.NFT素材上传:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage());
return null; // return null;
} // }
} // }
//
/** // /**
* NFT系列声明 // * NFT系列声明
* // *
* @param seriesClaimReqDto GalaxyArtSeriesClaimReqDto // * @param seriesClaimReqDto GalaxyArtSeriesClaimReqDto
* @return GalaxyArtSeriesClaimRespDto // * @return GalaxyArtSeriesClaimRespDto
*/ // */
public GalaxyArtSeriesClaimRespDto claimNftSeries(GalaxyArtSeriesClaimReqDto seriesClaimReqDto) { // public GalaxyArtSeriesClaimRespDto claimNftSeries(GalaxyArtSeriesClaimReqDto seriesClaimReqDto) {
// String postUrl = serviceGalaxyUrl + "/galaxy/nftArtwork/seriesClaim"; //// String postUrl = serviceGalaxyUrl + "/galaxy/nftArtwork/seriesClaim";
String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaim"; // String postUrl = serviceGoblinUrl + "/goblin/nftArtwork/seriesClaim";
String postBody = JsonUtils.toJson(seriesClaimReqDto); // String postBody = JsonUtils.toJson(seriesClaimReqDto);
try { // try {
String postRespStr = HttpUtil.postRaw(postUrl, postBody, null); // String postRespStr = HttpUtil.postRaw(postUrl, postBody, null);
JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode; // JsonNode postRespJNode = JsonUtils.fromJson(postRespStr, JsonNode.class), postRespCode;
if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) { // if (null == postRespJNode || null == (postRespCode = postRespJNode.get("code")) || !postRespCode.asText().equals("0")) {
log.warn("#NFT系列声明:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr); // log.warn("#NFT系列声明:请求失败[paramsStr={},postRespStr={}]", postBody, postRespStr);
return null; // return null;
} // }
return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyArtSeriesClaimRespDto.class); // return JsonUtils.OM().convertValue(postRespJNode.get("data"), GalaxyArtSeriesClaimRespDto.class);
} catch (Exception e) { // } catch (Exception e) {
log.error("Ex.NFT系列声明:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage()); // log.error("Ex.NFT系列声明:请求异常[url={},paramsStr={}],ex:{}", postUrl, postBody, e.getMessage());
return null; // return null;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
//
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) { // public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoFromMdb(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); // GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
} // }
//
public GoblinGoodsInfoVo getGoodsInfoVoFromMdb(String spuId) { // public GoblinGoodsInfoVo getGoodsInfoVoFromMdb(String spuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")),
GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName()); // GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.slowly.receiver; //package com.liquidnet.service.consumer.slowly.receiver;
//
import com.liquidnet.commons.lang.util.CollectionUtil; //import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil; //import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; //import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto; //import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.connection.stream.StreamRecords; //import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap; //import org.springframework.util.MultiValueMap;
//
import java.util.HashMap; //import java.util.HashMap;
//
@Slf4j //@Slf4j
@Component //@Component
public class ConsumerGoblinBizIntegralReceiver extends AbstractBizRedisReceiver { //public class ConsumerGoblinBizIntegralReceiver extends AbstractBizRedisReceiver {
//
@Value("${liquidnet.service.stone.url}") // @Value("${liquidnet.service.stone.url}")
private String stoneUrl; // private String stoneUrl;
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_INTEGRAL.getKey(); // return MQConst.GoblinQueue.BIZ_INTEGRAL.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_INTEGRAL.getGroup(); // return MQConst.GoblinQueue.BIZ_INTEGRAL.getGroup();
} // }
//
@Override // @Override
protected boolean consumerMessageHandler(String msg) { // protected boolean consumerMessageHandler(String msg) {
boolean aBoolean = false; // boolean aBoolean = false;
try { // try {
GoblinQueueBizIntegralDto fromJsonObj = JsonUtils.fromJson(msg, GoblinQueueBizIntegralDto.class); // GoblinQueueBizIntegralDto fromJsonObj = JsonUtils.fromJson(msg, GoblinQueueBizIntegralDto.class);
if (fromJsonObj == null) { // if (fromJsonObj == null) {
log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg); // log.warn("CONSUMER MSG NULL_DTO ==> [{}]:{}", this.getRedisStreamKey(), msg);
aBoolean = true; // aBoolean = true;
} else { // } else {
aBoolean = this.bizIntegralProcessing(fromJsonObj); // aBoolean = this.bizIntegralProcessing(fromJsonObj);
} // }
} catch (Exception e) { // } catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e); // log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
} finally { // } finally {
if (!aBoolean) { // if (!aBoolean) {
HashMap<String, String> map = CollectionUtil.mapStringString(); // HashMap<String, String> map = CollectionUtil.mapStringString();
map.put(MQConst.QUEUE_MESSAGE_KEY, msg); // map.put(MQConst.QUEUE_MESSAGE_KEY, msg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey())); // stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
} // }
} // }
return aBoolean; // return aBoolean;
} // }
//
private boolean bizIntegralProcessing(GoblinQueueBizIntegralDto dto) { // private boolean bizIntegralProcessing(GoblinQueueBizIntegralDto dto) {
try { // try {
log.info("bizIntegralProcessing params:{}", dto); // log.info("bizIntegralProcessing params:{}", dto);
String uid = dto.getUid(), content = dto.getContent(); // String uid = dto.getUid(), content = dto.getContent();
int type = dto.getType(); // int type = dto.getType();
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); // MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8"); // header.add("Accept", "application/json;charset=UTF-8");
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString(); // MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("score", dto.getScore().intValue() + ""); // params.add("score", dto.getScore().intValue() + "");
params.add("content", content); // params.add("content", content);
params.add("uid", uid); // params.add("uid", uid);
String resultData = ""; // String resultData = "";
long ss = System.currentTimeMillis(); // long ss = System.currentTimeMillis();
log.info("HttpUtil s:{}", ss); // log.info("HttpUtil s:{}", ss);
if (type == 1) { // if (type == 1) {
resultData = HttpUtil.post(stoneUrl + "/user/logs/in2111", params, header); // resultData = HttpUtil.post(stoneUrl + "/user/logs/in2111", params, header);
} else { // } else {
resultData = HttpUtil.post(stoneUrl + "/user/logs/de2111", params, header); // resultData = HttpUtil.post(stoneUrl + "/user/logs/de2111", params, header);
} // }
log.info("HttpUtil e:{}", System.currentTimeMillis() - ss); // log.info("HttpUtil e:{}", System.currentTimeMillis() - ss);
log.info("bizIntegralProcessing result:{}", resultData); // log.info("bizIntegralProcessing result:{}", resultData);
return true; // return true;
} catch (Exception e) { // } catch (Exception e) {
log.error("bizIntegralProcessing e:{}", e); // log.error("bizIntegralProcessing e:{}", e);
return false; // return false;
} // }
} // }
//
/* ------------------------------------------------------------------------------------ */ // /* ------------------------------------------------------------------------------------ */
} //}
package com.liquidnet.service.consumer.slowly.receiver; //package com.liquidnet.service.consumer.slowly.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinMdbNftArtworkReceiver extends AbstractMdbRedisReceiver { //public class ConsumerGoblinMdbNftArtworkReceiver extends AbstractMdbRedisReceiver {
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getKey(); // return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getGroup(); // return MQConst.GoblinQueue.BIZ_ARTWORK_GEN.getGroup();
} // }
//
} //}
package com.liquidnet.service.consumer.slowly.receiver; //package com.liquidnet.service.consumer.slowly.receiver;
//
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
@Component //@Component
public class ConsumerGoblinMdbNftOrderReceiver extends AbstractMdbRedisReceiver { //public class ConsumerGoblinMdbNftOrderReceiver extends AbstractMdbRedisReceiver {
//
@Override // @Override
protected String getRedisStreamKey() { // protected String getRedisStreamKey() {
return MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(); // return MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey();
} // }
//
@Override // @Override
protected String getRedisStreamGroup() { // protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.BIZ_NFT_MONGO.getGroup(); // return MQConst.GoblinQueue.BIZ_NFT_MONGO.getGroup();
} // }
//
} //}
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