## 专区商品列表添加等级、奖衔权限判断;

This commit is contained in:
cabbage 2025-08-27 10:50:46 +08:00
parent 80f27bbec8
commit d4aec35734
2 changed files with 37 additions and 9 deletions

View File

@ -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<BdWaresMapper, BdWares> impl
specialAreaList = saList;
}
// 查询推荐商品
List<BdWaresExt> recommendWaresList = this.selectByRecommentList(pkCountry, specialAreaList);
// 校验商品奖衔和等级/团队权限
List<Integer> waresIdList = recommendWaresList.stream().map(BdWares::getPkId).collect(Collectors.toList());
Set<Integer> waresIdSet = new HashSet<>();
List<String> authWaresList = new ArrayList<>();
if (waresIdList.size() > 0) {
// 处理商品权限
List<WaresGradeAwards> 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<RecommendSpecialAreaVo> resultList = new ArrayList<>();
@ -1263,16 +1281,27 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
recommendSpecialAreaVo.setSpecialAreaName(sArea.getLabel());
resultList.add(recommendSpecialAreaVo);
// 推荐商品 取值前两个
List<BdWaresExt> waresList = this.queryByRecommendList(specialArea, EYesNo.YES.getIntValue(), pkCountry, waresShowMap);
List<BdWaresExt> 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<BdWaresExt> 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<WaresVo> waresVoList = filterList.stream().map(wl -> {
WaresVo waresVo = new WaresVo();
waresVo.setPkWares(wl.getPkId());

View File

@ -414,7 +414,6 @@
<!-- 查询推荐商品 -->
<select id="queryByRecommendList" resultMap="BaseResultMap">
select bw.*, be.IS_SALE, be.PRE_SALE_STATUS,
be.INVENTORY, be.INVENTORY_RATIO, be.MEMBER_LIMIT, be.MEMBER_MONTH_LIMIT, be.INVENTORY_USE
from bd_wares bw
left join bd_wares_extend be on bw.pk_id = be.pk_wares