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

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

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

parent 09d90227
...@@ -47,6 +47,9 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -47,6 +47,9 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(position = 27, value = "开售时间") @ApiModelProperty(position = 27, value = "开售时间")
private LocalDateTime saleStartTime; 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-是]") @ApiModelProperty(position = 33, value = "是否购买[0-否|1-是]")
private String skuCanbuy; private String skuCanbuy;
......
package com.liquidnet.service.goblin.dto.vo; package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
@ApiModel(value = "GoblinUserDigitalArtworkPageVo", description = "我的藏品信息") @ApiModel(value = "GoblinUserDigitalArtworkPageVo", description = "我的藏品信息")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinUserDigitalArtworkPageVo implements Cloneable { public class GoblinUserDigitalArtworkPageVo implements Cloneable {
...@@ -13,6 +17,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable { ...@@ -13,6 +17,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
@ApiModelProperty(position = 12, value = "藏品列表分页数据") @ApiModelProperty(position = 12, value = "藏品列表分页数据")
private PagedResult<GoblinUserDigitalArtworkListVo> pagedResult; private PagedResult<GoblinUserDigitalArtworkListVo> pagedResult;
@ApiModelProperty(position = 13, value = "系统时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime systime;
public int getArtworkNum() { public int getArtworkNum() {
return artworkNum; return artworkNum;
} }
...@@ -21,6 +29,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable { ...@@ -21,6 +29,10 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
return pagedResult; return pagedResult;
} }
public LocalDateTime getSystime() {
return systime;
}
public GoblinUserDigitalArtworkPageVo setArtworkNum(int artworkNum) { public GoblinUserDigitalArtworkPageVo setArtworkNum(int artworkNum) {
this.artworkNum = artworkNum; this.artworkNum = artworkNum;
return this; return this;
...@@ -31,6 +43,11 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable { ...@@ -31,6 +43,11 @@ public class GoblinUserDigitalArtworkPageVo implements Cloneable {
return this; return this;
} }
public GoblinUserDigitalArtworkPageVo setSystime(LocalDateTime systime) {
this.systime = systime;
return this;
}
private static final GoblinUserDigitalArtworkPageVo obj = new GoblinUserDigitalArtworkPageVo(); private static final GoblinUserDigitalArtworkPageVo obj = new GoblinUserDigitalArtworkPageVo();
public static GoblinUserDigitalArtworkPageVo getNew() { public static GoblinUserDigitalArtworkPageVo getNew() {
......
...@@ -21,6 +21,7 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -21,6 +21,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
...@@ -118,6 +119,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -118,6 +119,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(goodsSkuInfoVo.getSpuId()); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(goodsSkuInfoVo.getSpuId());
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
nftGoodsSkuInfoVo.setSystime(LocalDateTime.now());
return nftGoodsSkuInfoVo; return nftGoodsSkuInfoVo;
} else { } else {
return null; return null;
......
...@@ -40,48 +40,50 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr ...@@ -40,48 +40,50 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
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); PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = goblinMongoUtils.getUserDigitalArtworkListVos(uid, pageNum, pageSize);
listVoPagedResult.setTotal(artworkNum, pageSize); listVoPagedResult.setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult); pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
} else { } else {
PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult(); PagedResult<GoblinUserDigitalArtworkListVo> listVoPagedResult = ObjectUtil.getGoblinUserDigitalArtworkListVoPagedResult();
List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList(); 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)) {
int cacheSize = userDigitalArtworkIds.size(), cacheNum = cacheSize / pageSize;// 分几页 log.warn("#我的藏品列表:藏品IDS缓存为空[uid={},artworkNum={}]", uid, artworkNum);
int fromIndex = Math.min(Math.min(cacheNum, pageNum - 1) * pageSize, cacheSize - 1); return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
List<String> subList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize)); }
int cacheSize = userDigitalArtworkIds.size(), cacheNum = cacheSize / pageSize;// 分几页
LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(15); int fromIndex = Math.min(Math.min(cacheNum, pageNum - 1) * pageSize, cacheSize - 1);
int subSize = subList.size(); List<String> subList = userDigitalArtworkIds.subList(fromIndex, Math.min(fromIndex + pageSize, cacheSize));
for (int i = 0; i < subSize; i++) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subList.get(i)); LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(15);
if (null != userDigitalArtworkVo) { int subSize = subList.size();
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId()); for (int i = 0; i < subSize; i++) {
GoblinUserDigitalArtworkVo userDigitalArtworkVo = goblinRedisUtils.getUserDigitalArtworkVo(subList.get(i));
GoblinUserDigitalArtworkListVo listVo = GoblinUserDigitalArtworkListVo.getNew().copy(userDigitalArtworkVo); if (null != userDigitalArtworkVo) {
listVo.setName(goodsSkuInfoVo.getName()); GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId());
listVo.setSubtitle(goodsSkuInfoVo.getSubtitle());
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.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); list.add(listVo);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult); }
} }
listVoPagedResult.setList(list).setTotal(artworkNum, pageSize);
pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
} }
} }
return pageVo; 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