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