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

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

~vo:我的藏品、商品详情+系统时间字段;

parent 09d90227
......@@ -47,6 +47,9 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(position = 27, value = "开售时间")
private LocalDateTime saleStartTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(position = 28, value = "系统时间")
private LocalDateTime systime;
@ApiModelProperty(position = 33, value = "是否购买[0-否|1-是]")
private String skuCanbuy;
......
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.PagedResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
@ApiModel(value = "GoblinUserDigitalArtworkPageVo", description = "我的藏品信息")
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinUserDigitalArtworkPageVo implements Cloneable {
......@@ -13,6 +17,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
@ApiModelProperty(position = 12, value = "藏品列表分页数据")
private PagedResult<GoblinUserDigitalArtworkListVo> pagedResult;
@ApiModelProperty(position = 13, value = "系统时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime systime;
public int getArtworkNum() {
return artworkNum;
}
......@@ -21,6 +29,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
return pagedResult;
}
public LocalDateTime getSystime() {
return systime;
}
public GoblinUserDigitalArtworkPageVo setArtworkNum(int artworkNum) {
this.artworkNum = artworkNum;
return this;
......@@ -31,6 +43,11 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
return this;
}
public GoblinUserDigitalArtworkPageVo setSystime(LocalDateTime systime) {
this.systime = systime;
return this;
}
private static final GoblinUserDigitalArtworkPageVo obj = new GoblinUserDigitalArtworkPageVo();
public static GoblinUserDigitalArtworkPageVo getNew() {
......
......@@ -21,6 +21,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
......@@ -118,6 +119,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(goodsSkuInfoVo.getSpuId());
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
nftGoodsSkuInfoVo.setSystime(LocalDateTime.now());
return nftGoodsSkuInfoVo;
} else {
return null;
......
......@@ -40,48 +40,50 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
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);
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)) {
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);
int subSize = subList.size();
for (int i = 0; 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());
if (CollectionUtils.isEmpty(userDigitalArtworkIds)) {
log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum);
return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
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);
int subSize = subList.size();
for (int i = 0; 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());
listVo.setEdition(goodsSkuInfoVo.getSkuStock());
listVo.setUnbox(goodsSkuInfoVo.getUnbox());
listVo.setOpeningTime(goodsSkuInfoVo.getOpeningTime());
if ("0".equals(goodsSkuInfoVo.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(goodsSkuInfoVo.getUnbox())) {// 盲盒已开启的,直接展示开出的藏品封面
GoblinNftOrderVo goblinNftOrder = goblinRedisUtils.getGoblinNftOrder(userDigitalArtworkVo.getOrderId());
goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(goblinNftOrder.getBoxSkuId());
listVo.setCoverPic(goodsSkuInfoVo.getSkuPic());
}
list.add(listVo);
}
}
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult);
list.add(listVo);
}
}
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
}
return pageVo;
......
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