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

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

~api:我的藏品列表调整;

parent de7716f6
...@@ -36,15 +36,16 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -36,15 +36,16 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
GoblinUserDigitalArtworkPageVo pageVo = GoblinUserDigitalArtworkPageVo.getNew(); GoblinUserDigitalArtworkPageVo pageVo = GoblinUserDigitalArtworkPageVo.getNew();
long artworkNum = goblinRedisUtils.countUserDigitalArtwork(uid); long artworkNum = goblinRedisUtils.countUserDigitalArtwork(uid);
if (artworkNum > 0) { if (artworkNum > 0) {
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
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);
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = goblinMongoUtils.getUserDigitalArtworkListVos(uid, pageNum, pageSize); subArtworkIdList = goblinMongoUtils.getPageUserDigitalArtworkIds(uid, pageNum, pageSize);
listVoPagedResult.setTotal(artworkNum, pageSize); if (CollectionUtils.isEmpty(subArtworkIdList)) {
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now()); log.warn("#我的藏品列表:藏品IDS数据为空[uid={},artworkNum={}]", uid, artworkNum);
return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
} else { } else {
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList();
List<String> userDigitalArtworkIds = goblinRedisUtils.getUserDigitalArtworkIds(uid); List<String> userDigitalArtworkIds = goblinRedisUtils.getUserDigitalArtworkIds(uid);
if (CollectionUtils.isEmpty(userDigitalArtworkIds)) { if (CollectionUtils.isEmpty(userDigitalArtworkIds)) {
log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum); log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum);
...@@ -52,38 +53,37 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -52,38 +53,37 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
} }
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);
List<String> subList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize)); subArtworkIdList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize));
}
LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(15);
for (int i = 0, subSize = subList.size(); i < subSize; i++) { List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList();
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subList.get(i)); LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(20);
if (null != userDigitalArtworkVo) { for (int i = 0, subSize = subArtworkIdList.size(); i < subSize; i++) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId()); GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subArtworkIdList.get(i));
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId());
GoblinUserDigitalArtworkListVo listVo = GoblinUserDigitalArtworkListVo.getNew().copy(userDigitalArtworkVo);
listVo.setName(goodsSkuInfoVo.getName()); GoblinUserDigitalArtworkListVo listVo = GoblinUserDigitalArtworkListVo.getNew().copy(userDigitalArtworkVo);
listVo.setSubtitle(goodsSkuInfoVo.getSubtitle()); listVo.setName(goodsSkuInfoVo.getName());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic()); listVo.setSubtitle(goodsSkuInfoVo.getSubtitle());
listVo.setEdition(goodsSkuInfoVo.getSkuStock()); listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
listVo.setUnbox(goodsSkuInfoVo.getUnbox()); listVo.setEdition(goodsSkuInfoVo.getSkuStock());
listVo.setOpeningTime(goodsSkuInfoVo.getOpeningTime()); listVo.setUnbox(goodsSkuInfoVo.getUnbox());
listVo.setOpeningTime(goodsSkuInfoVo.getOpeningTime());
if ("0".equals(listVo.getUnbox()) && 1 != listVo.getState() && listVo.getCreatedAt().isBefore(toCheckTime)) {// 15秒前创建的藏品,去主动核实发行交易状态
List<String> checkRespDataList = goblinGalaxyService.checkNftTradeResult(uid, userDigitalArtworkVo.getOrderId(), goodsSkuInfoVo.getRouteType()); if ("0".equals(listVo.getUnbox()) && 1 != listVo.getState() && listVo.getCreatedAt().isBefore(toCheckTime)) {// 15秒前创建的藏品,去主动核实发行交易状态
this.updateUserDigitalArtworkByChainTrade(userDigitalArtworkVo, listVo, checkRespDataList, now); List<String> checkRespDataList = goblinGalaxyService.checkNftTradeResult(uid, userDigitalArtworkVo.getOrderId(), goodsSkuInfoVo.getRouteType());
} else if (1 == listVo.getState() && "1".equals(listVo.getUnbox())) {// 盲盒已开启的,直接展示开出的藏品封面 this.updateUserDigitalArtworkByChainTrade(userDigitalArtworkVo, listVo, checkRespDataList, now);
GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId()); } else if (1 == listVo.getState() && "1".equals(listVo.getUnbox())) {// 盲盒已开启的,直接展示开出的藏品封面
goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId()); GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic()); goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId());
} listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
list.add(listVo);
}
} }
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize); list.add(listVo);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
} }
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
} }
return pageVo; return pageVo;
} }
...@@ -105,6 +105,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -105,6 +105,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
artworkInfoVo.setAuthor(goodsInfoVo.getAuthor()); artworkInfoVo.setAuthor(goodsInfoVo.getAuthor());
artworkInfoVo.setPublisher(goodsInfoVo.getPublisher()); artworkInfoVo.setPublisher(goodsInfoVo.getPublisher());
artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails()); artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails());
artworkInfoVo.setGenerateTime(goodsSkuInfoVo.getDeclareAt());
return artworkInfoVo; return artworkInfoVo;
} }
......
...@@ -1304,15 +1304,16 @@ public class GoblinMongoUtils { ...@@ -1304,15 +1304,16 @@ public class GoblinMongoUtils {
return updateResult.getModifiedCount() > 0; return updateResult.getModifiedCount() > 0;
} }
public PagedResult<GoblinUserDigitalArtworkListVo> getUserDigitalArtworkListVos(String uid, Integer pageNum, Integer pageSize) { public List<String> getPageUserDigitalArtworkIds(String uid, Integer pageNum, Integer pageSize) {
Criteria criteria = Criteria.where("delFlg").is("0").and("uid").is(uid); Criteria criteria = Criteria.where("delFlg").is("0").and("uid").is(uid);
Query query = Query.query(criteria); Query query = Query.query(criteria);
PagedResult<GoblinUserDigitalArtworkListVo> pagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult(); PagedResult<GoblinUserDigitalArtworkVo> pagedResult = ObjectUtil.getGoblinUserDigitalArtworkVoPagedResult();
query.with(PageRequest.of(pageNum - 1, pageSize)).with(Sort.by(Sort.Order.desc("createdAt"))); query.with(PageRequest.of(pageNum - 1, pageSize)).with(Sort.by(Sort.Order.desc("createdAt")));
List<GoblinUserDigitalArtworkListVo> list = mongoTemplate.find(query, GoblinUserDigitalArtworkListVo.class, GoblinUserDigitalArtworkVo.class.getSimpleName()); query.fields().include("artworkId");
return pagedResult.setList(list); List<GoblinUserDigitalArtworkVo> list = mongoTemplate.find(query, GoblinUserDigitalArtworkVo.class, GoblinUserDigitalArtworkVo.class.getSimpleName());
return CollectionUtils.isEmpty(list) ? null : list.stream().map(GoblinUserDigitalArtworkVo::getArtworkId).collect(Collectors.toList());
} }
/* ---------------------------------------- ---------------------------------------- */ /* ---------------------------------------- ---------------------------------------- */
......
...@@ -27,6 +27,7 @@ public class ObjectUtil { ...@@ -27,6 +27,7 @@ public class ObjectUtil {
private static final PagedResult<GoblinStoreNoticeVo> goblinStoreNoticeVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinStoreNoticeVo> goblinStoreNoticeVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreMgtCouponListVo> goblinStoreMgtCouponListVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinStoreMgtCouponListVo> goblinStoreMgtCouponListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinUserDigitalArtworkListVo> goblinUserDigitalArtworkListVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinUserDigitalArtworkListVo> goblinUserDigitalArtworkListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinUserDigitalArtworkVo> goblinUserDigitalArtworkVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinNftGoodsSkuListVo> goblinNftGoodsSkuListVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinNftGoodsSkuListVo> goblinNftGoodsSkuListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoPagedResult = new PagedResult<>();
...@@ -103,6 +104,10 @@ public class ObjectUtil { ...@@ -103,6 +104,10 @@ public class ObjectUtil {
return goblinUserDigitalArtworkListVoPagedResult.clone(); return goblinUserDigitalArtworkListVoPagedResult.clone();
} }
public static PagedResult<GoblinUserDigitalArtworkVo> getGoblinUserDigitalArtworkVoPagedResult() {
return goblinUserDigitalArtworkVoPagedResult.clone();
}
public static PagedResult<GoblinNftGoodsSkuListVo> getGoblinNftGoodsSkuListVoPagedResult() { public static PagedResult<GoblinNftGoodsSkuListVo> getGoblinNftGoodsSkuListVoPagedResult() {
return goblinNftGoodsSkuListVoPagedResult.clone(); return goblinNftGoodsSkuListVoPagedResult.clone();
} }
......
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