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

Commit cdf959df authored by 张国柄's avatar 张国柄

~api;

parent 29627213
......@@ -183,7 +183,7 @@ public class GoblinUserDigitalArtworkController {
if (!goblinRedisUtils.lockUserDigitalArtworkVoOperate(artworkId)) return ResponseDto.failure(ErrorMapping.get("140000"));
boolean transferRstFlg = goblinUserDigitalArtworkService.transfer(userDigitalArtworkVo, goodsSkuInfoVo.getRouteType(), receiverArr);
goblinRedisUtils.unlockUserDigitalArtworkVoOperate(artworkId);
return transferRstFlg ? ResponseDto.success(GoblinStatusConst.TransferState.PENDING.name()) : ResponseDto.failure(ErrorMapping.get("140002"));
return transferRstFlg ? ResponseDto.success(GoblinStatusConst.TransferState.WAITING.name()) : ResponseDto.failure(ErrorMapping.get("140002"));
}
@ApiOperationSupport(order = 6)
......
......@@ -136,7 +136,13 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
for (String artworkId : artworkIdsTransferList) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(artworkId);
if (null == userDigitalArtworkVo || !userDigitalArtworkVo.getReceiverUid().equals(uid)) {
if (
null == userDigitalArtworkVo
|| null == userDigitalArtworkVo.getTransferState()
|| !userDigitalArtworkVo.getReceiverUid().equals(uid)
|| GoblinStatusConst.TransferState.SUCCESS.name().equals(userDigitalArtworkVo.getTransferState())
|| userDigitalArtworkVo.getTransferAt().plusDays(1).isBefore(LocalDateTime.now())
) {
continue;
}
......@@ -246,102 +252,103 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
// if (goblinMongoUtils.updateUserDigitalArtworkVoByUnboxing(userDigitalArtworkBoxVo)) {
// String artworkId = IDGenerator.nextMilliId2();
String artworkId = IDGenerator.nextSnowId();
String artworkId = IDGenerator.nextSnowId();
String orderId = userDigitalArtworkBoxVo.getOrderId();
GoblinNftOrderVo orderVo = goblinRedisUtils.getGoblinNftOrder(orderId);
GoblinGoodsSkuInfoVo unboxSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getBoxSkuId());
String orderId = userDigitalArtworkBoxVo.getOrderId();
GoblinNftOrderVo orderVo = goblinRedisUtils.getGoblinNftOrder(orderId);
GoblinGoodsSkuInfoVo unboxSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getBoxSkuId());
GoblinUserDigitalArtworkListVo unboxDigitalArtworkListVo = GoblinUserDigitalArtworkListVo.getNew();
unboxDigitalArtworkListVo.setArtworkId(artworkId);
unboxDigitalArtworkListVo.setName(unboxSkuInfoVo.getName());
unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle());
unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic());
GoblinUserDigitalArtworkListVo unboxDigitalArtworkListVo = GoblinUserDigitalArtworkListVo.getNew();
unboxDigitalArtworkListVo.setArtworkId(artworkId);
unboxDigitalArtworkListVo.setName(unboxSkuInfoVo.getName());
unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle());
unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic());
// unboxDigitalArtworkListVo.setSource(userDigitalArtworkBoxVo.getSource());
// unboxDigitalArtworkListVo.setState(0);
// unboxDigitalArtworkListVo.setCreatedAt();
// unboxDigitalArtworkListVo.setUnbox("0");
// unboxDigitalArtworkListVo.setOpeningTime(now);
String skuId = orderVo.getBoxSkuId(), spuId = orderVo.getSpuId();
String skuId = orderVo.getBoxSkuId(), spuId = orderVo.getSpuId();
// Integer source = 1;
Integer orderType = orderVo.getOrderType();
Integer source = orderType == 1 ? 1 : (orderType == 2 ? 2 : (orderType == 3 ? 3 : (orderType == 4 ? 31 : 0)));
Integer orderType = orderVo.getOrderType();
Integer source = orderType == 1 ? 1 : (orderType == 2 ? 2 : (orderType == 3 ? 3 : (orderType == 4 ? 31 : 0)));
// if (goblinRedisUtils.hasGenUserDigitalArtwork(uid, skuId, orderId)) {// 已生成
// log.warn("#UNBOX_ARTWORK EXIST_ART[uid={},skuId={},orderId={},source={}]", uid, skuId, orderId, source);
// return unboxDigitalArtworkListVo;
// }
userDigitalArtworkBoxVo.setHitArtworkId(artworkId);
userDigitalArtworkBoxVo.setHitArtworkId(artworkId);
// goblinRedisUtils.setexUserDigitalArtworkVo(userDigitalArtworkBoxVo);
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
GoblinUserDigitalArtworkVo initUserDigitalArtworkVo = GoblinUserDigitalArtworkVo.getNew();
GoblinUserDigitalArtworkVo initUserDigitalArtworkVo = GoblinUserDigitalArtworkVo.getNew();
// String artworkId = IDGenerator.nextMilliId2();
initUserDigitalArtworkVo.setArtworkId(artworkId);
initUserDigitalArtworkVo.setSkuId(skuId);
initUserDigitalArtworkVo.setUid(uid);
initUserDigitalArtworkVo.setOrderId(orderId);
initUserDigitalArtworkVo.setSource(source);
initUserDigitalArtworkVo.setState(0);
initUserDigitalArtworkVo.setDelFlg("0");
initUserDigitalArtworkVo.setCreatedAt(now);
initUserDigitalArtworkVo.setAuthor(goodsInfoVo.getAuthor());
initUserDigitalArtworkVo.setPublisher(goodsInfoVo.getPublisher());
initUserDigitalArtworkVo.setArtworkId(artworkId);
initUserDigitalArtworkVo.setSkuId(skuId);
initUserDigitalArtworkVo.setUid(uid);
initUserDigitalArtworkVo.setOrderId(orderId);
initUserDigitalArtworkVo.setSource(source);
initUserDigitalArtworkVo.setState(0);
initUserDigitalArtworkVo.setDelFlg("0");
initUserDigitalArtworkVo.setCreatedAt(now);
initUserDigitalArtworkVo.setAuthor(goodsInfoVo.getAuthor());
initUserDigitalArtworkVo.setPublisher(goodsInfoVo.getPublisher());
// // Mongo记录VO
// goblinMongoUtils.insertUserDigitalArtworkVo(initUserDigitalArtworkVo);
// Redis更新VO
goblinRedisUtils.setexUserDigitalArtworkVo(userDigitalArtworkBoxVo, 48 * 3600);
// Redis记录VO
goblinRedisUtils.setUserDigitalArtworkVo(initUserDigitalArtworkVo);
// Redis更新藏品ID列表
goblinRedisUtils.addUserDigitalArtworkIdsForUnbox(uid, artworkId, userDigitalArtworkBoxVo.getArtworkId());
{// Redis更新藏品订单关联artworkId
orderVo.setArtworkId(artworkId);
goblinRedisUtils.setGoblinNftOrder(orderVo);
// Mongo同步更新藏品订单
MdbMessage mdbMessage = MdbMessage.getNew();
mdbMessage.setCollect(GoblinNftOrderVo.class.getSimpleName());
mdbMessage.setColumn("orderId");
mdbMessage.setBizId(orderVo.getOrderId());
mdbMessage.setPrefix(GoblinRedisConst.REDIS_GOBLIN_NFT_ORDER_INFO);
mdbMessage.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), mdbMessage.toJson());
}
if ("0".equals(unboxSkuInfoVo.getUnbox())) {// 非盲盒,NFT发行购买
ObjectNode bizNftBuyNode = JsonUtils.OM().createObjectNode().put("nftOrderPayId", orderId).put("routerType", unboxSkuInfoVo.getRouteType())
.put("skuId", skuId).put("userId", uid).put("buyTimestamp", DateUtil.Formatter.yyyyMMddHHmmss.format(now));;
queueUtils.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), bizNftBuyNode.toString());
}
// Mysql持久化
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.insert"));
LinkedList<Object[]> initUserDigitalArtworkObjs = CollectionUtil.linkedListObjectArr();
initUserDigitalArtworkObjs.add(new Object[]{initUserDigitalArtworkVo.getArtworkId(), skuId, uid, orderId, source, initUserDigitalArtworkVo.getState(), now});
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.update_for_unboxing"));
LinkedList<Object[]> updateBoxArtworkObjs = CollectionUtil.linkedListObjectArr();
updateBoxArtworkObjs.add(new Object[]{now, now, now, userDigitalArtworkBoxVo.getArtworkId()});
toMqSqls.add(SqlMapping.get("goblin_nft_order.update_artwork"));
LinkedList<Object[]> updateNftOrderObjs = CollectionUtil.linkedListObjectArr();
updateNftOrderObjs.add(new Object[]{artworkId, orderId});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, initUserDigitalArtworkObjs, updateBoxArtworkObjs, updateNftOrderObjs));
// Mongo同步更新
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
goblinQueueBizMongoDto.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
goblinQueueBizMongoDto.setColumn("artworkId");
goblinQueueBizMongoDto.setBizId(userDigitalArtworkBoxVo.getArtworkId());
goblinQueueBizMongoDto.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
goblinQueueBizMongoDto.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), goblinQueueBizMongoDto.toJson());
// Redis更新VO
goblinRedisUtils.setexUserDigitalArtworkVo(userDigitalArtworkBoxVo, 48 * 3600);
// Redis记录VO
goblinRedisUtils.setUserDigitalArtworkVo(initUserDigitalArtworkVo);
// Redis更新藏品ID列表
goblinRedisUtils.addUserDigitalArtworkIdsForUnbox(uid, artworkId, userDigitalArtworkBoxVo.getArtworkId());
{// Redis更新藏品订单关联artworkId
orderVo.setArtworkId(artworkId);
goblinRedisUtils.setGoblinNftOrder(orderVo);
// Mongo同步更新藏品订单
MdbMessage mdbMessage = MdbMessage.getNew();
mdbMessage.setCollect(GoblinNftOrderVo.class.getSimpleName());
mdbMessage.setColumn("orderId");
mdbMessage.setBizId(orderVo.getOrderId());
mdbMessage.setPrefix(GoblinRedisConst.REDIS_GOBLIN_NFT_ORDER_INFO);
mdbMessage.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), mdbMessage.toJson());
}
// Mongo记录VO
goblinMongoUtils.insertUserDigitalArtworkVo(initUserDigitalArtworkVo);
if ("0".equals(unboxSkuInfoVo.getUnbox())) {// 非盲盒,NFT发行购买
ObjectNode bizNftBuyNode = JsonUtils.OM().createObjectNode().put("nftOrderPayId", orderId).put("routerType", unboxSkuInfoVo.getRouteType())
.put("skuId", skuId).put("userId", uid).put("buyTimestamp", DateUtil.Formatter.yyyyMMddHHmmss.format(now));
;
queueUtils.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), bizNftBuyNode.toString());
}
return unboxDigitalArtworkListVo;
// Mysql持久化
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.insert"));
LinkedList<Object[]> initUserDigitalArtworkObjs = CollectionUtil.linkedListObjectArr();
initUserDigitalArtworkObjs.add(new Object[]{initUserDigitalArtworkVo.getArtworkId(), skuId, uid, orderId, source, initUserDigitalArtworkVo.getState(), now});
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.update_for_unboxing"));
LinkedList<Object[]> updateBoxArtworkObjs = CollectionUtil.linkedListObjectArr();
updateBoxArtworkObjs.add(new Object[]{now, now, now, userDigitalArtworkBoxVo.getArtworkId()});
toMqSqls.add(SqlMapping.get("goblin_nft_order.update_artwork"));
LinkedList<Object[]> updateNftOrderObjs = CollectionUtil.linkedListObjectArr();
updateNftOrderObjs.add(new Object[]{artworkId, orderId});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, initUserDigitalArtworkObjs, updateBoxArtworkObjs, updateNftOrderObjs));
// Mongo同步更新
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
goblinQueueBizMongoDto.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
goblinQueueBizMongoDto.setColumn("artworkId");
goblinQueueBizMongoDto.setBizId(userDigitalArtworkBoxVo.getArtworkId());
goblinQueueBizMongoDto.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
goblinQueueBizMongoDto.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), goblinQueueBizMongoDto.toJson());
// Mongo记录VO
goblinMongoUtils.insertUserDigitalArtworkVo(initUserDigitalArtworkVo);
return unboxDigitalArtworkListVo;
// }
// return null;
}
......@@ -354,35 +361,35 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
userDigitalArtworkVo.setUpdatedAt(now);
// if (goblinMongoUtils.updateUserDigitalArtworkVoByAccept(userDigitalArtworkVo)) {
// Redis更新VO
goblinRedisUtils.setUserDigitalArtworkVo(userDigitalArtworkVo);
// Redis更新VO
goblinRedisUtils.setUserDigitalArtworkVo(userDigitalArtworkVo);
String skuId = userDigitalArtworkVo.getSkuId();
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
String skuId = userDigitalArtworkVo.getSkuId();
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if ("0".equals(goodsSkuInfoVo.getUnbox())) {// 非盲盒,NFT发行购买
ObjectNode bizNftBuyNode = JsonUtils.OM().createObjectNode().put("nftOrderPayId", userDigitalArtworkVo.getOrderId()).put("routerType", goodsSkuInfoVo.getRouteType())
.put("skuId", skuId).put("userId", uid).put("buyTimestamp", DateUtil.Formatter.yyyyMMddHHmmss.format(now));
queueUtils.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), bizNftBuyNode.toString());
}
// Mysql持久化
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.update_for_accept"));
LinkedList<Object[]> updateUserArtworkObjs = CollectionUtil.linkedListObjectArr();
updateUserArtworkObjs.add(new Object[]{now, now, userDigitalArtworkVo.getArtworkId()});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, updateUserArtworkObjs));
// Mongo同步更新
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
goblinQueueBizMongoDto.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
goblinQueueBizMongoDto.setColumn("artworkId");
goblinQueueBizMongoDto.setBizId(userDigitalArtworkVo.getArtworkId());
goblinQueueBizMongoDto.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
goblinQueueBizMongoDto.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), goblinQueueBizMongoDto.toJson());
if ("0".equals(goodsSkuInfoVo.getUnbox())) {// 非盲盒,NFT发行购买
ObjectNode bizNftBuyNode = JsonUtils.OM().createObjectNode().put("nftOrderPayId", userDigitalArtworkVo.getOrderId()).put("routerType", goodsSkuInfoVo.getRouteType())
.put("skuId", skuId).put("userId", uid).put("buyTimestamp", DateUtil.Formatter.yyyyMMddHHmmss.format(now));
queueUtils.sendMsgByRedis(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey(), bizNftBuyNode.toString());
}
return true;
// Mysql持久化
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.update_for_accept"));
LinkedList<Object[]> updateUserArtworkObjs = CollectionUtil.linkedListObjectArr();
updateUserArtworkObjs.add(new Object[]{now, now, userDigitalArtworkVo.getArtworkId()});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, updateUserArtworkObjs));
// Mongo同步更新
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
goblinQueueBizMongoDto.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
goblinQueueBizMongoDto.setColumn("artworkId");
goblinQueueBizMongoDto.setBizId(userDigitalArtworkVo.getArtworkId());
goblinQueueBizMongoDto.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
goblinQueueBizMongoDto.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), goblinQueueBizMongoDto.toJson());
return true;
// }
// return false;
}
......
......@@ -2141,7 +2141,7 @@ public class GoblinRedisUtils {
} else {
ids.add(0, artworkId);
}
return redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER, ids);
return redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER.concat(uid), ids);
}
public boolean rmvUserDigitalArtworkIdsTransfer(String uid, String artworkId) {
......@@ -2151,9 +2151,9 @@ public class GoblinRedisUtils {
} else {
ids.remove(artworkId);
if (CollectionUtils.isEmpty(ids)) {
redisUtil.del(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER);
redisUtil.del(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER.concat(uid));
} else {
redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER, ids);
redisUtil.set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER.concat(uid), ids);
}
return true;
}
......
......@@ -107,9 +107,9 @@ public class PlatformGoblinNftTransferOrderService extends ServiceImpl<GoblinNft
} else {
ids.remove(artworkId);
if (CollectionUtils.isEmpty(ids)) {
redisDataSourceUtil.getRedisGoblinUtil().del(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER);
redisDataSourceUtil.getRedisGoblinUtil().del(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER.concat(uid));
} else {
redisDataSourceUtil.getRedisGoblinUtil().set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER, ids);
redisDataSourceUtil.getRedisGoblinUtil().set(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS_TRANSFER.concat(uid), ids);
}
return true;
}
......
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