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

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

~api:转赠退还实现;

parent 930ebb60
...@@ -27,16 +27,16 @@ public interface IGoblinUserDigitalArtworkService { ...@@ -27,16 +27,16 @@ public interface IGoblinUserDigitalArtworkService {
/** /**
* 藏品受赠确认领取 * 藏品受赠确认领取
* *
* @param userDigitalArtworkVo GoblinUserDigitalArtworkVo * @param artworkId 藏品ID
* @return boolean, true-成功 * @return boolean, true-成功
*/ */
boolean transferConfirmReceive(GoblinUserDigitalArtworkVo userDigitalArtworkVo); boolean transferConfirmReceive(String artworkId);
/** /**
* 藏品受赠确认退还 * 藏品受赠确认退还
* *
* @param userDigitalArtworkVo GoblinUserDigitalArtworkVo * @param artworkId 藏品ID
* @return boolean, true-成功 * @return boolean, true-成功
*/ */
boolean transferConfirmReturn(GoblinUserDigitalArtworkVo userDigitalArtworkVo); boolean transferConfirmReturn(String artworkId);
} }
...@@ -202,10 +202,10 @@ public class GoblinUserDigitalArtworkController { ...@@ -202,10 +202,10 @@ public class GoblinUserDigitalArtworkController {
return ResponseDto.failure(ErrorMapping.get("140117"));// 已过转赠领取有效期 return ResponseDto.failure(ErrorMapping.get("140117"));// 已过转赠领取有效期
} }
if (!GoblinStatusConst.TransferState.WAITING.name().equals(userDigitalArtworkVo.getTransferState())) { if (!GoblinStatusConst.TransferState.WAITING.name().equals(userDigitalArtworkVo.getTransferState())) {
return ResponseDto.failure(ErrorMapping.get("140118"));// 藏品已领取 return ResponseDto.failure(ErrorMapping.get(null == userDigitalArtworkVo.getTransferState() ? "140119" : "140118"));// 藏品已领取或已退还
} }
if (!goblinRedisUtils.lockUserDigitalArtworkVoOperate(artworkId)) return ResponseDto.failure(ErrorMapping.get("140000")); if (!goblinRedisUtils.lockUserDigitalArtworkVoOperate(artworkId)) return ResponseDto.failure(ErrorMapping.get("140000"));
boolean transferReceiveRstFlg = goblinUserDigitalArtworkService.transferConfirmReceive(userDigitalArtworkVo); boolean transferReceiveRstFlg = goblinUserDigitalArtworkService.transferConfirmReceive(artworkId);
goblinRedisUtils.unlockUserDigitalArtworkVoOperate(artworkId); goblinRedisUtils.unlockUserDigitalArtworkVoOperate(artworkId);
return transferReceiveRstFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("140002")); return transferReceiveRstFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("140002"));
} }
...@@ -222,12 +222,11 @@ public class GoblinUserDigitalArtworkController { ...@@ -222,12 +222,11 @@ public class GoblinUserDigitalArtworkController {
if (null == userDigitalArtworkVo || userDigitalArtworkVo.getDelFlg().equals("1") || !currentUid.equals(userDigitalArtworkVo.getReceiverUid())) { if (null == userDigitalArtworkVo || userDigitalArtworkVo.getDelFlg().equals("1") || !currentUid.equals(userDigitalArtworkVo.getReceiverUid())) {
return ResponseDto.failure(ErrorMapping.get("140105"));// 藏品不存在 return ResponseDto.failure(ErrorMapping.get("140105"));// 藏品不存在
} }
String transferState = userDigitalArtworkVo.getTransferState(); if (!GoblinStatusConst.TransferState.WAITING.name().equals(userDigitalArtworkVo.getTransferState())) {
if (!GoblinStatusConst.TransferState.WAITING.name().equals(transferState)) { return ResponseDto.failure(ErrorMapping.get(null == userDigitalArtworkVo.getTransferState() ? "140119" : "140118"));// 藏品已领取
return ResponseDto.failure(ErrorMapping.get(null == transferState ? "140119" : "140118"));// 藏品已领取
} }
if (!goblinRedisUtils.lockUserDigitalArtworkVoOperate(artworkId)) return ResponseDto.failure(ErrorMapping.get("140000")); if (!goblinRedisUtils.lockUserDigitalArtworkVoOperate(artworkId)) return ResponseDto.failure(ErrorMapping.get("140000"));
boolean transferReceiveRstFlg = goblinUserDigitalArtworkService.transferConfirmReturn(userDigitalArtworkVo); boolean transferReceiveRstFlg = goblinUserDigitalArtworkService.transferConfirmReturn(artworkId);
goblinRedisUtils.unlockUserDigitalArtworkVoOperate(artworkId); goblinRedisUtils.unlockUserDigitalArtworkVoOperate(artworkId);
return transferReceiveRstFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("140002")); return transferReceiveRstFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("140002"));
} }
......
...@@ -2,10 +2,7 @@ package com.liquidnet.service.goblin.service.impl; ...@@ -2,10 +2,7 @@ package com.liquidnet.service.goblin.service.impl;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.MdbMessage; import com.liquidnet.service.base.*;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
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.GalaxyNftPublishAndBuyResultQueryReqDto; import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyResultQueryReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyResultQueryRespDto; import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyResultQueryRespDto;
...@@ -435,7 +432,11 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -435,7 +432,11 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
} }
@Override @Override
public boolean transferConfirmReceive(GoblinUserDigitalArtworkVo userDigitalArtworkVo) { public boolean transferConfirmReceive(String artworkId) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(artworkId);
if (!GoblinStatusConst.TransferState.WAITING.name().equals(userDigitalArtworkVo.getTransferState())) {
return false;// 藏品已领取或已退还
}
LocalDateTime currentDateTime = LocalDateTime.now(); LocalDateTime currentDateTime = LocalDateTime.now();
userDigitalArtworkVo.setUpdatedAt(currentDateTime); userDigitalArtworkVo.setUpdatedAt(currentDateTime);
userDigitalArtworkVo.setTransferState(GoblinStatusConst.TransferState.PENDING.name()); userDigitalArtworkVo.setTransferState(GoblinStatusConst.TransferState.PENDING.name());
...@@ -453,13 +454,13 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -453,13 +454,13 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_ARTWORK_TRANS_QUERY.getKey(), userDigitalArtworkVo.getArtworkId().concat(",").concat(String.valueOf(currentDateTime))); queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_ARTWORK_TRANS_QUERY.getKey(), userDigitalArtworkVo.getArtworkId().concat(",").concat(String.valueOf(currentDateTime)));
// Mongo同步更新 // Mongo同步更新
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew(); MdbMessage mdbMessage = MdbMessage.getNew();
goblinQueueBizMongoDto.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName()); mdbMessage.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
goblinQueueBizMongoDto.setColumn("artworkId"); mdbMessage.setColumn("artworkId");
goblinQueueBizMongoDto.setBizId(userDigitalArtworkVo.getArtworkId()); mdbMessage.setBizId(userDigitalArtworkVo.getArtworkId());
goblinQueueBizMongoDto.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK); mdbMessage.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
goblinQueueBizMongoDto.setOpType(2); mdbMessage.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), goblinQueueBizMongoDto.toJson()); queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), mdbMessage.toJson());
// Mysql持久化 // Mysql持久化
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
...@@ -478,7 +479,39 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -478,7 +479,39 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
} }
@Override @Override
public boolean transferConfirmReturn(GoblinUserDigitalArtworkVo userDigitalArtworkVo) { public boolean transferConfirmReturn(String artworkId) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(artworkId);
if (!GoblinStatusConst.TransferState.WAITING.name().equals(userDigitalArtworkVo.getTransferState())) {
return false;// 藏品已领取或已退还
}
String receiverUid = userDigitalArtworkVo.getReceiverUid(), transferOrderId = userDigitalArtworkVo.getTransferOrderId();
if (goblinRedisUtils.rmvUserDigitalArtworkIdsTransfer(receiverUid, artworkId)) {
LocalDateTime currentDateTime = LocalDateTime.now();
// 转赠人藏品恢复
userDigitalArtworkVo.setTransferOrderId(null);
userDigitalArtworkVo.setTransferState(null);
userDigitalArtworkVo.setReceiverUid(null);
userDigitalArtworkVo.setReceiverUser(null);
userDigitalArtworkVo.setUpdatedAt(currentDateTime);
goblinRedisUtils.setUserDigitalArtworkVo(userDigitalArtworkVo);
// Mongo藏品数据更新
MdbMessage mdbMessage = MdbMessage.getNew();
mdbMessage.setCollect(GoblinUserDigitalArtworkVo.class.getSimpleName());
mdbMessage.setColumn("artworkId");
mdbMessage.setBizId(artworkId);
mdbMessage.setPrefix(GoblinRedisConst.USER_DIGITAL_ARTWORK);
mdbMessage.setOpType(2);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey(), mdbMessage.toJson());
// Mysql转赠订单更新
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_nft_transfer_order.up_transfer_confirm"));// 藏品订单记录更新
LinkedList<Object[]> updateNftTransferOrderObjs = CollectionUtil.linkedListObjectArr();
updateNftTransferOrderObjs.add(new Object[]{2, currentDateTime, transferOrderId});
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_ARTWORK_GEN.getKey(), SqlMapping.gets(toMqSqls, updateNftTransferOrderObjs));
return true;
}
return false; return false;
} }
......
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