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

Commit 62ddd06d authored by jiangxiulong's avatar jiangxiulong

nft商品列表 大美搜索

parent 4f146645
...@@ -7,10 +7,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo; ...@@ -7,10 +7,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuListJobVo; import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuListJobVo;
import com.liquidnet.service.goblin.service.GoblinCouponService; import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService; import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils; import com.liquidnet.service.goblin.util.*;
import com.liquidnet.service.goblin.util.GoblinOrderUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.QueueUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
...@@ -22,6 +19,7 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -22,6 +19,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -49,23 +47,43 @@ public class GoblinNftJobServiceImpl { ...@@ -49,23 +47,43 @@ public class GoblinNftJobServiceImpl {
public ResponseDto<Boolean> goodsList() { public ResponseDto<Boolean> goodsList() {
// mongo初始条件 // mongo初始条件
Query query = Query.query( Query query1 = Query.query(
Criteria.where("skuType").is(1).and("delFlg").is("0") Criteria.where("skuType").is(1).and("delFlg").is("0")
.and("status").is("3").and("shelvesStatus").is("3") .and("status").is("3").and("shelvesStatus").is("3")
.and("skuAppear").is("0") .and("skuAppear").is("0")
); );
LocalDateTime nowTime = LocalDateTime.now();
// 未开始的正序20个
query1.addCriteria(Criteria.where("saleStartTime").gt(nowTime));
// 分页 排序:按照开售时间 // 分页 排序:按照开售时间
Pageable pageable = PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "saleStartTime")); Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.ASC, "saleStartTime"));
query.with(pageable); query1.with(pageable);
// 查询 // 查询
List<GoblinNftGoodsSkuListJobVo> skuInfoVos = mongoTemplate.find(query, GoblinNftGoodsSkuListJobVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); List<GoblinNftGoodsSkuListJobVo> notStartSkuInfoVos = mongoTemplate.find(query1, GoblinNftGoodsSkuListJobVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
// mongo初始条件
Query query2 = Query.query(
Criteria.where("skuType").is(1).and("delFlg").is("0")
.and("status").is("3").and("shelvesStatus").is("3")
.and("skuAppear").is("0")
);
// 已开始的倒序80个
query2.addCriteria(Criteria.where("saleStartTime").lte(nowTime));
// 分页 排序:按照开售时间
Pageable pageable2 = PageRequest.of(0, 80, Sort.by(Sort.Direction.DESC, "saleStartTime"));
query2.with(pageable2);
// 查询
List<GoblinNftGoodsSkuListJobVo> startSkuInfoVos = mongoTemplate.find(query2, GoblinNftGoodsSkuListJobVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
List<String> startSkuIdList = CollectionUtil.arrayListString(); List<String> startSkuIdList = CollectionUtil.arrayListString();
List<String> notStartSkuIdList = CollectionUtil.arrayListString(); List<String> notStartSkuIdList = CollectionUtil.arrayListString();
List<String> soldOutSkuIdList = CollectionUtil.arrayListString(); List<String> soldOutSkuIdList = CollectionUtil.arrayListString();
LocalDateTime nowTime = LocalDateTime.now(); ArrayList<GoblinNftGoodsSkuListJobVo> jobVoArrayList = ObjectUtil.getGoblinNftGoodsSkuListJobVoArrayList();
for (GoblinNftGoodsSkuListJobVo info : skuInfoVos) { jobVoArrayList.addAll(notStartSkuInfoVos);
jobVoArrayList.addAll(startSkuInfoVos);
for (GoblinNftGoodsSkuListJobVo info : jobVoArrayList) {
if (nowTime.compareTo(info.getSaleStartTime()) > 0) {// 已开卖 if (nowTime.compareTo(info.getSaleStartTime()) > 0) {// 已开卖
List<String> skuIdList = CollectionUtil.arrayListString(); List<String> skuIdList = CollectionUtil.arrayListString();
if (info.getUnbox().equals("1")) {// 是盲盒,非盲盒少查一次spu if (info.getUnbox().equals("1")) {// 是盲盒,非盲盒少查一次spu
...@@ -82,7 +100,8 @@ public class GoblinNftJobServiceImpl { ...@@ -82,7 +100,8 @@ public class GoblinNftJobServiceImpl {
} }
} }
// 已开卖 时间倒序 // 已开卖 时间倒序
// Collections.reverse(startSkuIdList); Collections.reverse(notStartSkuIdList);
Collections.reverse(soldOutSkuIdList);
// 写入缓存 // 写入缓存
goblinRedisUtils.setGoblinNftGoodsInfoListVo(startSkuIdList, "1"); goblinRedisUtils.setGoblinNftGoodsInfoListVo(startSkuIdList, "1");
......
...@@ -1494,7 +1494,16 @@ public class GoblinMongoUtils { ...@@ -1494,7 +1494,16 @@ public class GoblinMongoUtils {
if (vo.getUnbox().equals("0")) { if (vo.getUnbox().equals("0")) {
mgtGoodsSkuListVo.setSurplusStock(redisUtils.getSkuStock(null, vo.getSkuId())); mgtGoodsSkuListVo.setSurplusStock(redisUtils.getSkuStock(null, vo.getSkuId()));
} else { } else {
mgtGoodsSkuListVo.setSurplusStock(redisUtils.getSkuAllStatusStock(vo)); List<String> skuIdList = redisUtils.getGoodsInfoVo(vo.getSpuId()).getSkuIdList();
int stock = 0;
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(vo.getSkuId())) {// 过滤自己
continue;
}
GoblinGoodsSkuInfoVo itemVo = redisUtils.getGoodsSkuInfoVo(skuIdItem);
stock += redisUtils.getSkuAllStatusStock(itemVo);
}
mgtGoodsSkuListVo.setSurplusStock(stock);
} }
voList.add(mgtGoodsSkuListVo); voList.add(mgtGoodsSkuListVo);
} }
......
...@@ -84,6 +84,7 @@ public class ObjectUtil { ...@@ -84,6 +84,7 @@ public class ObjectUtil {
private static final ArrayList<GoblinUserDigitalArtworkListVo> GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<GoblinUserDigitalArtworkListVo> GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST = new ArrayList<>();
private static final PagedResult<GoblinStoreMgtGoodsSkuListVo> goblinStoreMgtGoodsSkuListVo = new PagedResult<>(); private static final PagedResult<GoblinStoreMgtGoodsSkuListVo> goblinStoreMgtGoodsSkuListVo = new PagedResult<>();
private static final ArrayList<GoblinStoreMgtGoodsSkuListVo> goblinStoreMgtGoodsSkuListVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMgtGoodsSkuListVo> goblinStoreMgtGoodsSkuListVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftGoodsSkuListJobVo> goblinNftGoodsSkuListJobVoArrayList = new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>(); private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
...@@ -104,6 +105,10 @@ public class ObjectUtil { ...@@ -104,6 +105,10 @@ public class ObjectUtil {
return (ArrayList<GoblinStoreMgtGoodsSkuListVo>) goblinStoreMgtGoodsSkuListVoArrayList.clone(); return (ArrayList<GoblinStoreMgtGoodsSkuListVo>) goblinStoreMgtGoodsSkuListVoArrayList.clone();
} }
public static ArrayList<GoblinNftGoodsSkuListJobVo> getGoblinNftGoodsSkuListJobVoArrayList() {
return (ArrayList<GoblinNftGoodsSkuListJobVo>) goblinNftGoodsSkuListJobVoArrayList.clone();
}
public static PagedResult<GoblinStoreMgtCouponListVo> getGoblinStoreMgtCouponListVoPagedResult() { public static PagedResult<GoblinStoreMgtCouponListVo> getGoblinStoreMgtCouponListVoPagedResult() {
return goblinStoreMgtCouponListVoPagedResult.clone(); return goblinStoreMgtCouponListVoPagedResult.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