From 6e572c07ed63af582483ea18a224f16a146c0d32 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Wed, 8 Oct 2025 23:45:10 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=A1=A3=E5=8F=A3=E7=83=AD?= =?UTF-8?q?=E5=8D=96=E6=A0=87=E7=AD=BEBUG=E4=BF=AE=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/quartz/task/XktTask.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index e955ed339..8fc8e2ec3 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -461,7 +461,7 @@ public class XktTask { // 3. 当月(近一月)爆款 this.tagMonthHot(yesterday, oneMonthAgo, tagList); // 4. 档口热卖 - this.tagStoreHotTop20(yesterday, oneMonthAgo, tagList); + this.tagStoreHotTop10(yesterday, oneWeekAgo, tagList); // 5. 图搜榜 this.tagImgSearchTop10(yesterday, oneMonthAgo, tagList); // 6. 收藏榜 @@ -1341,24 +1341,27 @@ public class XktTask { /** * 筛选档口热卖商品 * - * @param yesterday 昨天 - * @param oneMonthAgo 一月前 - * @param tagList 标签集合 + * @param yesterday 昨天 + * @param oneWeekAgo 一周前 + * @param tagList 标签集合 */ - private void tagStoreHotTop20(Date yesterday, Date oneMonthAgo, List tagList) { + private void tagStoreHotTop10(Date yesterday, Date oneWeekAgo, List tagList) { + // 筛选近一周档口销量 List saleProdList = this.dailySaleProdMapper.selectList(new LambdaQueryWrapper() - .eq(DailySaleProduct::getDelFlag, Constants.UNDELETED).eq(DailySaleProduct::getVoucherDate, yesterday)); + .eq(DailySaleProduct::getDelFlag, Constants.UNDELETED).between(DailySaleProduct::getVoucherDate, oneWeekAgo, yesterday)); if (CollectionUtils.isEmpty(saleProdList)) { return; } - // 筛选每个档口,销量排名前20的商品 - Map> storeHotSaleMap = saleProdList.stream().collect(Collectors - .groupingBy(DailySaleProduct::getStoreId, Collectors - .collectingAndThen(Collectors.toList(), list -> list.stream().limit(20).collect(Collectors.toList())))); - storeHotSaleMap.forEach((storeId, saleList) -> { - tagList.addAll(saleList.stream().map(x -> DailyProdTag.builder().storeId(x.getStoreId()).storeProdId(x.getStoreProdId()) - .type(ProdTagType.STORE_HOT.getValue()).tag(ProdTagType.STORE_HOT.getLabel()).voucherDate(oneMonthAgo).build()) - .collect(Collectors.toList())); + // 筛选每个档口,销量排名前10的商品 + Map> storeHotSaleMap = saleProdList.stream().collect(Collectors + .groupingBy(DailySaleProduct::getStoreId, Collectors.groupingBy(DailySaleProduct::getStoreProdId, Collectors + .summingInt(DailySaleProduct::getSaleNum)))); + storeHotSaleMap.forEach((storeId, prodSaleMap) -> { + // 筛选prodSaleMap中销量前10的商品 + List> top5ProdList = prodSaleMap.entrySet().stream().sorted(Map.Entry.comparingByValue().reversed()) + .limit(10).collect(Collectors.toList()); + top5ProdList.forEach(entry -> tagList.add(DailyProdTag.builder().storeId(storeId).storeProdId(entry.getKey()).type(ProdTagType.STORE_HOT.getValue()) + .tag(ProdTagType.STORE_HOT.getLabel()).voucherDate(yesterday).build())); }); }