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

Commit 7b85bc23 authored by GaoHu's avatar GaoHu

Merge remote-tracking branch 'origin/dev_nft_411' into dev_nft_411

parents 057a7eb6 8c0a260e
......@@ -2,8 +2,6 @@ package com.liquidnet.common.cache.redis.config;
import lombok.extern.slf4j.Slf4j;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.RecordId;
......@@ -11,7 +9,6 @@ import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StreamOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.stereotype.Component;
import java.net.InetAddress;
import java.net.UnknownHostException;
......@@ -49,10 +46,26 @@ public class RedisStreamConfig {
}
public StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
// var options = StreamMessageListenerContainer
// .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// 创建配置对象
StreamMessageListenerContainer.StreamMessageListenerContainerOptions<String, MapRecord<String, String, String>> options = StreamMessageListenerContainer.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
// 一次性最多拉取多少条消息
.batchSize(1)
// 执行消息轮询的执行器
// .executor(this.threadPoolTaskExecutor)
// 消息消费异常的handler
.errorHandler(t -> {
// StreamListener中的异常会在这里抛出
System.out.println("errorHandler: " + t.getMessage());
})
// 超时时间,设置为0,表示不超时(超时后会抛出异常)
.pollTimeout(Duration.ZERO)
.build();
return StreamMessageListenerContainer.create(factory, options);
}
......
......@@ -7,7 +7,6 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService;
import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService;
import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
......@@ -29,7 +28,6 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
......@@ -56,24 +54,25 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
int size = 40;
//条件
Query query = Query.query(
Criteria.where("skuType").is(1)
.and("delFlg").is("0")
.and("status").is("3")
.and("shelvesStatus").is("3")
.and("skuAppear").is("0")
);
List<GoblinNftGoodsSkuListVo> skuList = goblinRedisUtils.getGoblinNftGoodsInfoListVo();
if (null == skuList || page > 1) {
skuList = new ArrayList<>();
List<String> skuIdList = goblinRedisUtils.getGoblinNftGoodsInfoListVo();
List<GoblinNftGoodsSkuListVo> skuList = new ArrayList<>();
if (null == skuIdList || page > 1) {
skuIdList = new ArrayList<>();
// 分页 排序:按照开售时间
Query query = Query.query(
Criteria.where("skuType").is(1)
.and("delFlg").is("0")
.and("status").is("3")
.and("shelvesStatus").is("3")
.and("skuAppear").is("0")
);
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC, "saleStartTime"));
query.with(pageable);
List<GoblinGoodsSkuInfoVo> skuInfoVos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
for (GoblinGoodsSkuInfoVo info : skuInfoVos) {
//获取预约相关
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(info.getSkuId(),0);
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(info.getSkuId(), 0);
// sku信息
GoblinNftGoodsSkuListVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuListVo.getNew().copy(info, anticipateValueVo);
// spu信息
......@@ -82,9 +81,22 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 写入列表
skuList.add(nftGoodsSkuInfoVo);
skuIdList.add(nftGoodsSkuInfoVo.getSkuId());
}
if (page <= 1) {
goblinRedisUtils.setGoblinNftGoodsInfoListVo(skuList);
goblinRedisUtils.setGoblinNftGoodsInfoListVo(skuIdList);
}
} else {
for (String skuId : skuIdList) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
GoblinNftGoodsSkuListVo goblinNftGoodsSkuListVo = GoblinNftGoodsSkuListVo.getNew().copy(goodsSkuInfoVo, null);
// spu信息
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(goodsSkuInfoVo.getSpuId());
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
skuList.add(goblinNftGoodsSkuListVo);
}
}
for (GoblinNftGoodsSkuListVo skuInfoVo : skuList) {
......@@ -119,7 +131,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (goblinRedisUtils.getSkuAllStatusShow(goodsSkuInfoVo)) {
//获取预约相关
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(skuId,1);
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(skuId, 1);
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo, anticipateValueVo);
// 限购数量
......
......@@ -1507,17 +1507,17 @@ public class GoblinRedisUtils {
}
}
public List<GoblinNftGoodsSkuListVo> getGoblinNftGoodsInfoListVo() {
public List<String> getGoblinNftGoodsInfoListVo() {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_GOODS_LIST;
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
return (List<GoblinNftGoodsSkuListVo>) obj;
return (List<String>) obj;
}
}
public void setGoblinNftGoodsInfoListVo(List<GoblinNftGoodsSkuListVo> spuList) {
public void setGoblinNftGoodsInfoListVo(List<String> spuList) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_GOODS_LIST;
redisUtil.set(redisKey, spuList);
}
......
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