From 6127f9c2f53b4e11d2ddfc5575631e5403da0410 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 05 Jun 2025 17:34:45 +0800 Subject: [PATCH] feat(mall): 添加年排行功能并优化积分查询性能 --- src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java | 88 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 85 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java b/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java index 9f5cd3e..ceb2e51 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java @@ -5,12 +5,12 @@ import cc.mrbird.febs.common.utils.FebsUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.entity.*; -import cc.mrbird.febs.mall.mapper.HappyActivityCategoryMapper; -import cc.mrbird.febs.mall.mapper.HappyActivityOptionMapper; -import cc.mrbird.febs.mall.mapper.HappySaleLevelMapper; +import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.AdminMemberLevelService; import cc.mrbird.febs.mall.service.IAdminHappyActivityService; +import cc.mrbird.febs.mall.vo.AdminLabelSetVo; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; @@ -19,6 +19,10 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + @Controller("levelView") @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/levelView") @RequiredArgsConstructor @@ -26,6 +30,84 @@ private final AdminMemberLevelService adminMemberLevelService; private final HappySaleLevelMapper happySaleLevelMapper; + private final HappyMemberLabelMapper happyMemberLabelMapper; + private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper; + private final MallMemberMapper mallMemberMapper; + + /** + * 会员标识列表 + */ + @GetMapping("labelList") + @RequiresPermissions("labelList:view") + public String labelList() { + return FebsUtil.view("modules/levelView/labelList"); + } + + /** + * 会员标识新增 + * @return + */ + @GetMapping(value = "/labelAdd") + @RequiresPermissions("labelAdd:add") + public String labelAdd() { + return FebsUtil.view("modules/levelView/labelAdd"); + } + + /** + * 会员标识编辑 + * @param id + * @param model + * @return + */ + @GetMapping("labelInfo/{id}") + @RequiresPermissions("labelInfo:view") + public String labelInfo(@PathVariable long id, Model model) { + HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(id); + model.addAttribute("happyMemberLabel", happyMemberLabel); + return FebsUtil.view("modules/levelView/labelInfo"); + } + + /** + * 设置会员标识 + * @param id + * @param model + * @return + */ + @GetMapping("labelSet/{id}") + @RequiresPermissions("labelSet:view") + public String labelSet(@PathVariable long id, Model model) { + HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(id); + + //右侧数据 + List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList( + new LambdaQueryWrapper<HappyMemberLabelRecord>() + .eq(HappyMemberLabelRecord::getLabelId, id) + ); + + //stream流操作happyMemberLabelRecords,获取memberId的set集合 + Set<Long> memberIds = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getMemberId).collect(Collectors.toSet()); + + //左侧数据 + List<MallMember> mallMembers = mallMemberMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId, MallMember::getName,MallMember::getRealName, MallMember::getPhone) + .isNotNull(MallMember::getPhone) + .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE) + ); + //stream流操作mallMembers,生成一个新的List<MallMemberVo> + List<AdminLabelSetVo> adminLabelSetVos = mallMembers.stream().map(mallMember -> { + AdminLabelSetVo adminLabelSetVo = new AdminLabelSetVo(); + adminLabelSetVo.setId(mallMember.getId()); + adminLabelSetVo.setLabelName(mallMember.getName()+"("+mallMember.getRealName()+")"+mallMember.getPhone()); + return adminLabelSetVo; + }).collect(Collectors.toList()); + + + model.addAttribute("adminLabelSetVos", adminLabelSetVos); + model.addAttribute("memberIds", memberIds); + model.addAttribute("labelId", id); + return FebsUtil.view("modules/levelView/labelSet"); + } /** * 会员等级列表 -- Gitblit v1.9.1