From 5121bf3455363020014319019eed718bf9d4c1b3 Mon Sep 17 00:00:00 2001 From: ziin Date: Thu, 11 Dec 2025 16:43:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(service):=20=E4=BF=AE=E6=AD=A3=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E4=B8=BB=E9=A2=98=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20getRecommendedThemes=20=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=20limit(8)=20=E6=9B=BF=E4=BB=A3=20S?= =?UTF-8?q?QL=20=E7=9A=84=20LIMIT=208=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=8F=92=E4=BB=B6=E5=B9=B2=E6=89=B0=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=8F=AA=E8=BF=94=E5=9B=9E=208=20=E6=9D=A1=E6=9C=AA?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E7=9A=84=E7=83=AD=E9=97=A8=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KeyboardThemesServiceImpl.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/yolo/keyborad/service/impl/KeyboardThemesServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/KeyboardThemesServiceImpl.java index 22e985d..b0667d9 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/KeyboardThemesServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/KeyboardThemesServiceImpl.java @@ -1,6 +1,7 @@ package com.yolo.keyborad.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.yolo.keyborad.model.entity.KeyboardThemePurchase; import com.yolo.keyborad.service.KeyboardThemePurchaseService; import jakarta.annotation.Resource; @@ -132,15 +133,23 @@ public class KeyboardThemesServiceImpl extends ServiceImpl queryWrapper = this.lambdaQuery() .eq(KeyboardThemes::getDeleted, false) .eq(KeyboardThemes::getThemeStatus, true) - .notIn(!purchasedThemeIds.isEmpty(), KeyboardThemes::getId, purchasedThemeIds) - .orderByDesc(KeyboardThemes::getRealDownloadCount) - .last("LIMIT 8") - .list() - .stream() + .orderByDesc(KeyboardThemes::getRealDownloadCount); + + // 如果有已购买的主题,排除它们 + if (!purchasedThemeIds.isEmpty()) { + queryWrapper.notIn(KeyboardThemes::getId, purchasedThemeIds); + } + + // 查询推荐主题列表,限制8条 + List themesList = queryWrapper.list(); + + // 只取前8条数据 + return themesList.stream() + .limit(8) .map(theme -> { KeyboardThemesRespVO vo = BeanUtil.copyProperties(theme, KeyboardThemesRespVO.class); // 推荐列表中的主题均为未购买状态