diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/StoreProductStatistics/StoreProdAppViewRankResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/StoreProductStatistics/StoreProdAppViewRankResDTO.java index 69d4b42c3..b8b8345f5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/StoreProductStatistics/StoreProdAppViewRankResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/StoreProductStatistics/StoreProdAppViewRankResDTO.java @@ -22,6 +22,7 @@ public class StoreProdAppViewRankResDTO { private List viewCountList; @Data + @Accessors(chain = true) public static class SPAVRViewCountDTO { @ApiModelProperty(value = "档口ID") private Long storeId; diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStatisticsServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStatisticsServiceImpl.java index 4d78c070e..da7258681 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStatisticsServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStatisticsServiceImpl.java @@ -3,6 +3,8 @@ package com.ruoyi.xkt.service.impl; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.xkt.dto.StoreProductStatistics.StoreProdAppViewRankResDTO; +import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicAndTagDTO; +import com.ruoyi.xkt.mapper.StoreProductMapper; import com.ruoyi.xkt.mapper.StoreProductStatisticsMapper; import com.ruoyi.xkt.service.IStoreProductStatisticsService; import lombok.RequiredArgsConstructor; @@ -13,8 +15,11 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * 档口商品统计 服务层实现 @@ -27,6 +32,7 @@ public class StoreProductStatisticsServiceImpl implements IStoreProductStatistic final StoreProductStatisticsMapper prodStatisticsMapper; final RedisCache redisCache; + final StoreProductMapper storeProdMapper; /** * 档口商品访问榜 @@ -48,7 +54,18 @@ public class StoreProductStatisticsServiceImpl implements IStoreProductStatistic if (CollectionUtils.isEmpty(viewCountList)) { return redisAppViewRank; } - redisAppViewRank.setViewCountList(viewCountList); + final List storeProdIdList = viewCountList.stream().map(StoreProdAppViewRankResDTO.SPAVRViewCountDTO::getStoreProdId).collect(Collectors.toList()); + List prodInfoList = this.storeProdMapper.selectPriceAndMainPicAndTagList(storeProdIdList); + Map prodInfoMap = CollectionUtils.isEmpty(prodInfoList) ? new HashMap<>() + : prodInfoList.stream().collect(Collectors.toMap(StoreProdPriceAndMainPicAndTagDTO::getStoreProdId, v -> v)); + List retViewList = viewCountList.stream() + .filter(x -> prodInfoMap.containsKey(x.getStoreProdId())) + .map(x -> { + StoreProdPriceAndMainPicAndTagDTO prodInfo = prodInfoMap.get(x.getStoreProdId()); + return x.setStoreId(prodInfo.getStoreId()).setStoreProdId(x.getStoreProdId()).setStoreName(prodInfo.getStoreName()) + .setMainPicUrl(prodInfo.getMainPicUrl()).setProdArtNum(prodInfo.getProdArtNum()).setPrice(prodInfo.getMinPrice()); + }).collect(Collectors.toList()); + redisAppViewRank.setViewCountList(retViewList); // 放到redis中 redisCache.setCacheObject(CacheConstants.STORE_PROD_VIEW_COUNT_CACHE, redisAppViewRank, 1, TimeUnit.DAYS); return redisAppViewRank; diff --git a/xkt/src/main/resources/mapper/StoreProductStatisticsMapper.xml b/xkt/src/main/resources/mapper/StoreProductStatisticsMapper.xml index 37771a9df..5b778ee08 100644 --- a/xkt/src/main/resources/mapper/StoreProductStatisticsMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductStatisticsMapper.xml @@ -60,25 +60,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"