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

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

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

parent de7716f6
......@@ -36,15 +36,16 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
GoblinUserDigitalArtworkPageVo pageVo = GoblinUserDigitalArtworkPageVo.getNew();
long artworkNum = goblinRedisUtils.countUserDigitalArtwork(uid);
if (artworkNum > 0) {
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
List<String> subArtworkIdList;
if (artworkNum > 30 && pageNum * pageSize > 30) {// 查询Mongo
if ((long) pageNum * pageSize > artworkNum) pageNum = Math.toIntExact(artworkNum / pageSize);
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = goblinMongoUtils.getUserDigitalArtworkListVos(uid, pageNum, pageSize);
listVoPagedResult.setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
subArtworkIdList = goblinMongoUtils.getPageUserDigitalArtworkIds(uid, pageNum, pageSize);
if (CollectionUtils.isEmpty(subArtworkIdList)) {
log.warn("#我的藏品列表:藏品IDS数据为空[uid={},artworkNum={}]", uid, artworkNum);
return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
} else {
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList();
List<String> userDigitalArtworkIds = goblinRedisUtils.getUserDigitalArtworkIds(uid);
if (CollectionUtils.isEmpty(userDigitalArtworkIds)) {
log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum);
......@@ -52,38 +53,37 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
}
int cacheSize = userDigitalArtworkIds.size(), cacheNum = cacheSize / pageSize;// 分几页
int fromIndex = Math.min(Math.min(cacheNum, pageNum - 1) * pageSize, cacheSize - 1);
List<String> subList = 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++) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subList.get(i));
if (null != userDigitalArtworkVo) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId());
GoblinUserDigitalArtworkListVo listVo = GoblinUserDigitalArtworkListVo.getNew().copy(userDigitalArtworkVo);
listVo.setName(goodsSkuInfoVo.getName());
listVo.setSubtitle(goodsSkuInfoVo.getSubtitle());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
listVo.setEdition(goodsSkuInfoVo.getSkuStock());
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());
this.updateUserDigitalArtworkByChainTrade(userDigitalArtworkVo, listVo, checkRespDataList, now);
} else if (1 == listVo.getState() && "1".equals(listVo.getUnbox())) {// 盲盒已开启的,直接展示开出的藏品封面
GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId());
goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
}
list.add(listVo);
}
subArtworkIdList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize));
}
List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList();
LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(20);
for (int i = 0, subSize = subArtworkIdList.size(); i < subSize; i++) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subArtworkIdList.get(i));
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId());
GoblinUserDigitalArtworkListVo listVo = GoblinUserDigitalArtworkListVo.getNew().copy(userDigitalArtworkVo);
listVo.setName(goodsSkuInfoVo.getName());
listVo.setSubtitle(goodsSkuInfoVo.getSubtitle());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
listVo.setEdition(goodsSkuInfoVo.getSkuStock());
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());
this.updateUserDigitalArtworkByChainTrade(userDigitalArtworkVo, listVo, checkRespDataList, now);
} else if (1 == listVo.getState() && "1".equals(listVo.getUnbox())) {// 盲盒已开启的,直接展示开出的藏品封面
GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId());
goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
}
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
list.add(listVo);
}
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
return pageVo;
}
......@@ -105,6 +105,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
artworkInfoVo.setAuthor(goodsInfoVo.getAuthor());
artworkInfoVo.setPublisher(goodsInfoVo.getPublisher());
artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails());
artworkInfoVo.setGenerateTime(goodsSkuInfoVo.getDeclareAt());
return artworkInfoVo;
}
......
......@@ -1304,15 +1304,16 @@ public class GoblinMongoUtils {
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);
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")));
List<GoblinUserDigitalArtworkListVo> list = mongoTemplate.find(query, GoblinUserDigitalArtworkListVo.class, GoblinUserDigitalArtworkVo.class.getSimpleName());
return pagedResult.setList(list);
query.fields().include("artworkId");
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 {
private static final PagedResult<GoblinStoreNoticeVo> goblinStoreNoticeVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreMgtCouponListVo> goblinStoreMgtCouponListVoPagedResult = 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<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoPagedResult = new PagedResult<>();
......@@ -103,6 +104,10 @@ public class ObjectUtil {
return goblinUserDigitalArtworkListVoPagedResult.clone();
}
public static PagedResult<GoblinUserDigitalArtworkVo> getGoblinUserDigitalArtworkVoPagedResult() {
return goblinUserDigitalArtworkVoPagedResult.clone();
}
public static PagedResult<GoblinNftGoodsSkuListVo> getGoblinNftGoodsSkuListVoPagedResult() {
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