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

Commit 9ce70d9b 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 26b51865 23f8c9e0
...@@ -57,9 +57,11 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -57,9 +57,11 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
@ApiModelProperty(position = 55, value = "spu相关信息") @ApiModelProperty(position = 55, value = "spu相关信息")
private GoblinNftGoodsSpuInfoVo goblinNftGoodsSpuInfoVo; private GoblinNftGoodsSpuInfoVo goblinNftGoodsSpuInfoVo;
@ApiModelProperty(position = 56, value = "是否还有库存 0没有库存 1有库存 即售罄") @ApiModelProperty(position = 56, value = "是否售罄[0-否|1-是]")
private String soldoutStatus;
@ApiModelProperty(position = 57, value = "是否还有库存 0没有库存 1有库存 即售罄")
private int isStock; private int isStock;
@ApiModelProperty(position = 57, value = "当前用户还可以购买数量 有限购的时候用") @ApiModelProperty(position = 58, value = "当前用户还可以购买数量 有限购的时候用")
private int canBuyNum; private int canBuyNum;
private static final GoblinNftGoodsSkuInfoVo obj = new GoblinNftGoodsSkuInfoVo(); private static final GoblinNftGoodsSkuInfoVo obj = new GoblinNftGoodsSkuInfoVo();
...@@ -87,6 +89,7 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -87,6 +89,7 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
this.setSaleStartTime(source.getSaleStartTime()); this.setSaleStartTime(source.getSaleStartTime());
this.setSkuCanbuy(source.getSkuCanbuy()); this.setSkuCanbuy(source.getSkuCanbuy());
this.setExtagVoList(source.getExtagVoList()); this.setExtagVoList(source.getExtagVoList());
this.setSoldoutStatus(source.getSoldoutStatus());
return this; return this;
} }
} }
...@@ -36,7 +36,9 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable { ...@@ -36,7 +36,9 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable {
@ApiModelProperty(position = 55, value = "spu相关信息") @ApiModelProperty(position = 55, value = "spu相关信息")
private GoblinNftGoodsSpuInfoVo goblinNftGoodsSpuInfoVo; private GoblinNftGoodsSpuInfoVo goblinNftGoodsSpuInfoVo;
@ApiModelProperty(position = 56, value = "是否还有库存 0没有库存 1有库存 即售罄") @ApiModelProperty(position = 56, value = "是否售罄[0-否|1-是]")
private String soldoutStatus;
@ApiModelProperty(position = 57, value = "是否还有库存 0没有库存即售罄 1有库存")
private int isStock; private int isStock;
private static final GoblinNftGoodsSkuListVo obj = new GoblinNftGoodsSkuListVo(); private static final GoblinNftGoodsSkuListVo obj = new GoblinNftGoodsSkuListVo();
...@@ -57,6 +59,7 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable { ...@@ -57,6 +59,7 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable {
this.setSubtitle(source.getSubtitle()); this.setSubtitle(source.getSubtitle());
this.setSkuPic(source.getSkuPic()); this.setSkuPic(source.getSkuPic());
this.setSaleStartTime(source.getSaleStartTime()); this.setSaleStartTime(source.getSaleStartTime());
this.setSoldoutStatus(source.getSoldoutStatus());
return this; return this;
} }
} }
...@@ -22,7 +22,9 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -22,7 +22,9 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
...@@ -45,14 +47,13 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -45,14 +47,13 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
int size = 20; int size = 20;
//条件 //条件
Query query = Query.query( Query query = Query.query(
Criteria.where("skuType").is(1).and("delFlg").is("0").and("status").is("3").and("shelvesStatus").is("3") Criteria.where("skuType").is(1).and("delFlg").is("0").and("status").is("3").and("shelvesStatus").is("3").and("skuAppear").is("0")
); );
long count = mongoTemplate.count(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); long count = mongoTemplate.count(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
List<GoblinNftGoodsSkuListVo> skuList = goblinRedisUtils.getGoblinNftGoodsInfoListVo(); List<GoblinNftGoodsSkuListVo> skuList = goblinRedisUtils.getGoblinNftGoodsInfoListVo();
if (null == skuList || page > 1) { if (null == skuList || page > 1) {
skuList = new ArrayList<>(); skuList = new ArrayList<>();
// 分页 排序:按照开售时间 // 分页 排序:按照开售时间
// TODO: jxl 2022/3/30 售罄放后面
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC, "saleStartTime")); Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC, "saleStartTime"));
query.with(pageable); query.with(pageable);
...@@ -73,21 +74,28 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -73,21 +74,28 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
} }
for (GoblinNftGoodsSkuListVo skuInfoVo : skuList) { for (GoblinNftGoodsSkuListVo skuInfoVo : skuList) {
int stock = goblinRedisUtils.getSkuStock(null, skuInfoVo.getSkuId()); int stock = goblinRedisUtils.getSkuStock(null, skuInfoVo.getSkuId());
if (stock <= 0) { if (stock <= 0 || skuInfoVo.getSoldoutStatus().equals("1")) {
skuInfoVo.setIsStock(0); skuInfoVo.setIsStock(0);
} else { } else {
skuInfoVo.setIsStock(1); skuInfoVo.setIsStock(1);
} }
} }
List<GoblinNftGoodsSkuListVo> listSort = skuList.stream().sorted(Comparator.comparing(GoblinNftGoodsSkuListVo::getIsStock).reversed()).collect(Collectors.toList());
PagedResult<GoblinNftGoodsSkuListVo> listVoPagedResult = ObjectUtil.getGoblinNftGoodsSkuListVoPagedResult(); PagedResult<GoblinNftGoodsSkuListVo> listVoPagedResult = ObjectUtil.getGoblinNftGoodsSkuListVoPagedResult();
listVoPagedResult.setList(skuList).setTotal(count, size).setPageSize(size).setCurrentPage(page); listVoPagedResult.setList(listSort).setTotal(count, size).setPageSize(size).setCurrentPage(page);
return ResponseDto.success(listVoPagedResult); return ResponseDto.success(listVoPagedResult);
} }
@Override @Override
public GoblinNftGoodsSkuInfoVo goodsDetail(String skuId) { public GoblinNftGoodsSkuInfoVo goodsDetail(String skuId) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null != goodsSkuInfoVo && goodsSkuInfoVo.getDelFlg().equals("0") && goodsSkuInfoVo.getShelvesStatus().equals("3")) { if (
null != goodsSkuInfoVo && goodsSkuInfoVo.getDelFlg().equals("0") &&
goodsSkuInfoVo.getStatus().equals("3") &&
goodsSkuInfoVo.getShelvesStatus().equals("3") && goodsSkuInfoVo.getSkuAppear().equals("0") &&
goodsSkuInfoVo.getSkuType() == 1
) {
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo); GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo);
// 限购数量 // 限购数量
Integer buyCount = 0; Integer buyCount = 0;
...@@ -101,7 +109,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -101,7 +109,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
// 库存 // 库存
int stock = goblinRedisUtils.getSkuStock(null, skuId); int stock = goblinRedisUtils.getSkuStock(null, skuId);
log.info("skuId:{}, 库存数量:{}", skuId, stock); log.info("skuId:{}, 库存数量:{}", skuId, stock);
if (stock <= 0) { if (stock <= 0 || nftGoodsSkuInfoVo.getSoldoutStatus().equals("1")) {
nftGoodsSkuInfoVo.setIsStock(0); nftGoodsSkuInfoVo.setIsStock(0);
} else { } else {
nftGoodsSkuInfoVo.setIsStock(1); nftGoodsSkuInfoVo.setIsStock(1);
......
...@@ -1364,6 +1364,10 @@ public class GoblinRedisUtils { ...@@ -1364,6 +1364,10 @@ public class GoblinRedisUtils {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_GOODS_LIST; String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_GOODS_LIST;
redisUtil.set(redisKey, spuList); redisUtil.set(redisKey, spuList);
} }
public void delGoblinNftGoodsInfoListVo() {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_GOODS_LIST;
redisUtil.del(redisKey);
}
/* ---------------------------------------- 我的藏品 ---------------------------------------- */ /* ---------------------------------------- 我的藏品 ---------------------------------------- */
......
...@@ -67,7 +67,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -67,7 +67,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
String skuId = payParam.getSkuId(); String skuId = payParam.getSkuId();
int number = 1; int number = 1;
GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null == skuVo) { if (null == skuVo || skuVo.getSkuAppear().equals("1")) {
return ResponseDto.failure("该商品不存在~"); return ResponseDto.failure("该商品不存在~");
} }
String spuId = skuVo.getSpuId(); String spuId = skuVo.getSpuId();
...@@ -79,9 +79,16 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -79,9 +79,16 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
return ResponseDto.failure("该商品不属于藏品~"); return ResponseDto.failure("该商品不属于藏品~");
} }
// 3审核通过 3已上架 0未删除 才可购买 // 3审核通过 3已上架 0未删除 才可购买
if (!skuVo.getStatus().equals("3") || !skuVo.getShelvesStatus().equals("3") || skuVo.getDelFlg().equals("1")) { if (
!skuVo.getStatus().equals("3") || !skuVo.getShelvesStatus().equals("3") ||
skuVo.getDelFlg().equals("1") || skuVo.getSkuCanbuy().equals("0")
) {
return ResponseDto.failure("该商品当前状态不可购买~"); return ResponseDto.failure("该商品当前状态不可购买~");
} }
// 主动设置的售罄
if (skuVo.getSoldoutStatus().equals(1)) {
return ResponseDto.failure("该商品已售罄~");
}
// 判断开售、停售时间 // 判断开售、停售时间
LocalDateTime saleStartTime = skuVo.getSaleStartTime(); LocalDateTime saleStartTime = skuVo.getSaleStartTime();
LocalDateTime saleStopTime = skuVo.getSaleStopTime(); LocalDateTime saleStopTime = skuVo.getSaleStopTime();
...@@ -609,7 +616,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -609,7 +616,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 加积分 // 加积分
goblinOrderUtils.doTask(uid, orderVo.getPriceActual()); goblinOrderUtils.doTask(uid, orderVo.getPriceActual());
// TODO: jxl 2022/3/31 仍炳上链的对列 盲盒要不要仍
} }
// 写入用户订单列表 因取消的订单不展示 所以放在这里 // 写入用户订单列表 因取消的订单不展示 所以放在这里
nftOrderUtils.addNftOrderList(uid, orderVo.getOrderId()); nftOrderUtils.addNftOrderList(uid, orderVo.getOrderId());
......
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