From c7a4d7be1692229ffcc1624e373366f2705298ba Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 27 Aug 2025 10:50:46 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E4=B8=93=E5=8C=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E7=AD=89=E7=BA=A7=E3=80=81?= =?UTF-8?q?=E5=A5=96=E8=A1=94=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BdWaresServiceImpl.java | 45 +++++++++++++++---- .../mapper/sale/wares/BdWaresMapper.xml | 1 - 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java index e269c2d3..3f46d112 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java @@ -1,6 +1,7 @@ package com.hzs.sale.wares.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -1244,6 +1245,23 @@ public class BdWaresServiceImpl extends ServiceImpl impl specialAreaList = saList; } + // 查询推荐商品 + List recommendWaresList = this.selectByRecommentList(pkCountry, specialAreaList); + // 校验商品奖衔和等级/团队权限 + List waresIdList = recommendWaresList.stream().map(BdWares::getPkId).collect(Collectors.toList()); + Set waresIdSet = new HashSet<>(); + List authWaresList = new ArrayList<>(); + if (waresIdList.size() > 0) { + // 处理商品权限 + List waresGradeAwardsList = iBdWaresGradeService.queryWaresGradeAwards(waresIdList); + // 先处理没有配置等级、奖衔的商品 + waresGradeAwardsList.forEach(waresGradeAwards -> { + waresIdSet.add(waresGradeAwards.getPkWares()); + String key = waresGradeAwards.getPkWares() + "_" + waresGradeAwards.getRangeType() + "_" + waresGradeAwards.getPkRange().toString(); + authWaresList.add(key); + }); + } + RecommendWaresInfoVo recommendWaresInfoVo = new RecommendWaresInfoVo(); // 推荐专区 List resultList = new ArrayList<>(); @@ -1263,16 +1281,27 @@ public class BdWaresServiceImpl extends ServiceImpl impl recommendSpecialAreaVo.setSpecialAreaName(sArea.getLabel()); resultList.add(recommendSpecialAreaVo); - // 推荐商品 取值前两个 - List waresList = this.queryByRecommendList(specialArea, EYesNo.YES.getIntValue(), pkCountry, waresShowMap); List filterList = new ArrayList<>(); - if (waresList.size() > 3) { - filterList.add(waresList.get(0)); - filterList.add(waresList.get(1)); - filterList.add(waresList.get(2)); - } else { - filterList.addAll(waresList); + // 推荐商品,TODO 此处查询推荐商品,可以先全查出来在内存进行分专区处理,后续有时间可以优化 + List waresList = this.queryByRecommendList(specialArea, EYesNo.YES.getIntValue(), pkCountry, waresShowMap); + if (CollectionUtil.isNotEmpty(waresList)) { + for (BdWaresExt waresExt : waresList) { + if (waresIdSet.contains(waresExt.getPkId())) { + String gradeKey = waresExt.getPkId() + "_" + ERangeType.GRADE.getValue() + "_" + loginMember.getPkSettleGrade(); + String awardsKey = waresExt.getPkId() + "_" + ERangeType.AWARDS.getValue() + "_" + loginMember.getPkAwards(); + String authorityKey = waresExt.getPkId() + "_" + ERangeType.AUTHORITY.getValue() + "_" + loginMember.getRegisterAuthority(); + if (!authWaresList.contains(gradeKey) && !authWaresList.contains(awardsKey) && !authWaresList.contains(authorityKey)) { + continue; + } + } + if (filterList.size() > 2) { + break; + } else { + filterList.add(waresExt); + } + } } + List waresVoList = filterList.stream().map(wl -> { WaresVo waresVo = new WaresVo(); waresVo.setPkWares(wl.getPkId()); diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml index 521a2d68..7264e341 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMapper.xml @@ -414,7 +414,6 @@