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

Commit 225c8821 authored by anjiabin's avatar anjiabin

Merge branch 'dev_nft_411' of...

Merge branch 'dev_nft_411' of http://gitlab.zhengzai.tv/dongjingwei/liquidnet-bus-v1 into dev_nft_411
parents a547f876 581677f3
...@@ -193,6 +193,12 @@ public class GoblinRedisConst { ...@@ -193,6 +193,12 @@ public class GoblinRedisConst {
*/ */
public static final String USER_DIGITAL_ARTWORK_CT = PREFIX.concat("u_d_art_ct:"); public static final String USER_DIGITAL_ARTWORK_CT = PREFIX.concat("u_d_art_ct:");
/**
* 藏品盲盒开启标记
* {goblin:u_d_art_ub:${artworkId}, Number}
*/
public static final String USER_DIGITAL_ARTWORK_UNBOX = PREFIX.concat("u_d_art_ub:");
/** /**
* 我的藏品生成标记(有时效) * 我的藏品生成标记(有时效)
* {goblin:u_d_art:${uid+skuId+orderId},1} * {goblin:u_d_art:${uid+skuId+orderId},1}
......
...@@ -164,7 +164,9 @@ public class ConsumerGoblinBizArtworkGenRdsReceiver extends AbstractBizRedisRece ...@@ -164,7 +164,9 @@ public class ConsumerGoblinBizArtworkGenRdsReceiver extends AbstractBizRedisRece
bizNftBuyMap.put("message", bizNftBuyNode.toString()); bizNftBuyMap.put("message", bizNftBuyNode.toString());
streamOperations.add(StreamRecords.mapBacked(bizNftBuyMap).withStreamKey(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey())); streamOperations.add(StreamRecords.mapBacked(bizNftBuyMap).withStreamKey(MQConst.GalaxyQueue.JSON_NFT_PUBLISH_AND_BUY.getKey()));
redisUtil.incr(GoblinRedisConst.USER_DIGITAL_ARTWORK_CT.concat(uid), 1); if (!fromBoxArtworkFlg) {
redisUtil.incr(GoblinRedisConst.USER_DIGITAL_ARTWORK_CT.concat(uid), 1);
}
// Redis生成标记(缓存三天),用于上面的生成检查 // Redis生成标记(缓存三天),用于上面的生成检查
redisUtil.set(genMarkerKey, 1, 259200); redisUtil.set(genMarkerKey, 1, 259200);
return true; return true;
......
...@@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; ...@@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.IGoblinUserDigitalArtworkService; import com.liquidnet.service.goblin.service.IGoblinUserDigitalArtworkService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils; import com.liquidnet.service.goblin.util.GoblinRedisUtils;
...@@ -88,17 +89,24 @@ public class GoblinUserDigitalArtworkController { ...@@ -88,17 +89,24 @@ public class GoblinUserDigitalArtworkController {
unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle()); unboxDigitalArtworkListVo.setSubtitle(unboxSkuInfoVo.getSubtitle());
unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic()); unboxDigitalArtworkListVo.setCoverPic(unboxSkuInfoVo.getSkuPic());
return ResponseDto.success(unboxDigitalArtworkListVo); return ResponseDto.success(unboxDigitalArtworkListVo);
} else if (goblinRedisUtils.markUnboxUserDigitalArtwork(artworkId) > 1) {
return ResponseDto.failure(ErrorMapping.get("140000"));
} }
GoblinUserDigitalArtworkListVo unboxingRstVo = null; GoblinUserDigitalArtworkListVo unboxingRstVo = null;
switch (userDigitalArtworkVo.getSource()) { try {
case 1: switch (userDigitalArtworkVo.getSource()) {
case 2: case 1:
unboxingRstVo = goblinUserDigitalArtworkService.unboxingForBuyOrExchange(currentUid, userDigitalArtworkVo); case 2:
break; unboxingRstVo = goblinUserDigitalArtworkService.unboxingForBuyOrExchange(currentUid, userDigitalArtworkVo);
case 3: break;
default: case 3:
log.warn("Invalid operation[UID={},artworkId={}]", currentUid, artworkId); default:
log.warn("Invalid operation[UID={},artworkId={}]", currentUid, artworkId);
}
} catch (Exception e) {
log.error("开启盲盒异常[artworkId={},uid={}]", artworkId, currentUid);
} }
goblinRedisUtils.del(GoblinRedisConst.USER_DIGITAL_ARTWORK_UNBOX.concat(artworkId));
return null == unboxingRstVo ? ResponseDto.failure(ErrorMapping.get("140102")) : ResponseDto.success(unboxingRstVo); return null == unboxingRstVo ? ResponseDto.failure(ErrorMapping.get("140102")) : ResponseDto.success(unboxingRstVo);
} }
} }
...@@ -39,7 +39,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -39,7 +39,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult(); PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
List<String> subArtworkIdList; List<String> subArtworkIdList;
if (artworkNum > 30 && pageNum * pageSize > 30) {// 查询Mongo if (artworkNum > 30 && pageNum * pageSize > 30) {// 查询Mongo
if ((long) pageNum * pageSize > artworkNum) pageNum = Math.toIntExact(artworkNum / pageSize); // if ((long) pageNum * pageSize > artworkNum) pageNum = Math.toIntExact(artworkNum / pageSize);
subArtworkIdList = goblinMongoUtils.getPageUserDigitalArtworkIds(uid, pageNum, pageSize); subArtworkIdList = goblinMongoUtils.getPageUserDigitalArtworkIds(uid, pageNum, pageSize);
if (CollectionUtils.isEmpty(subArtworkIdList)) { if (CollectionUtils.isEmpty(subArtworkIdList)) {
log.warn("#我的藏品列表:藏品IDS数据为空[uid={},artworkNum={}]", uid, artworkNum); log.warn("#我的藏品列表:藏品IDS数据为空[uid={},artworkNum={}]", uid, artworkNum);
...@@ -47,12 +47,15 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -47,12 +47,15 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
} }
} else { } else {
List<String> userDigitalArtworkIds = goblinRedisUtils.getUserDigitalArtworkIds(uid); List<String> userDigitalArtworkIds = goblinRedisUtils.getUserDigitalArtworkIds(uid);
if (CollectionUtils.isEmpty(userDigitalArtworkIds)) { // if (CollectionUtils.isEmpty(userDigitalArtworkIds)) {
if (CollectionUtils.isEmpty(userDigitalArtworkIds) || ((pageNum - 1) * pageSize > (userDigitalArtworkIds.size() - 1))) {
log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum); log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum);
return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now()); return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
} }
int cacheSize = userDigitalArtworkIds.size(), cacheNum = cacheSize / pageSize;// 分几页 int cacheSize = userDigitalArtworkIds.size(), cacheNum = cacheSize / pageSize;// 分几页
int fromIndex = Math.min(Math.min(cacheNum, pageNum - 1) * pageSize, cacheSize - 1); // int fromIndex = Math.min(Math.min(cacheNum, pageNum - 1) * pageSize, cacheSize - 1);
int fromIndex = (pageNum - 1) * pageSize;
subArtworkIdList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize)); subArtworkIdList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize));
} }
......
...@@ -1442,6 +1442,10 @@ public class GoblinRedisUtils { ...@@ -1442,6 +1442,10 @@ public class GoblinRedisUtils {
return (List<String>) redisUtil.get(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS.concat(uid)); return (List<String>) redisUtil.get(GoblinRedisConst.USER_DIGITAL_ARTWORK_IDS.concat(uid));
} }
public long markUnboxUserDigitalArtwork(String artworkId) {
return redisUtil.incr(GoblinRedisConst.USER_DIGITAL_ARTWORK_UNBOX.concat(artworkId), 1);
}
public long countUserDigitalArtwork(String uid) { public long countUserDigitalArtwork(String uid) {
Object o = redisUtil.get(GoblinRedisConst.USER_DIGITAL_ARTWORK_CT.concat(uid)); Object o = redisUtil.get(GoblinRedisConst.USER_DIGITAL_ARTWORK_CT.concat(uid));
return Objects.isNull(o) ? 0 : (int) o; return Objects.isNull(o) ? 0 : (int) o;
......
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