From 92c26cea4de00349b346f71da3cf530b26c31eb0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 10 Jun 2025 09:40:59 +0800
Subject: [PATCH] fix(mall): 修复用户重复加入标签的问题

---
 src/main/java/cc/mrbird/febs/mall/controller/memberLevel/ViewHappyMemberLevelController.java |  129 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 123 insertions(+), 6 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 37f6e3e..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
@@ -4,15 +4,13 @@
 import cc.mrbird.febs.common.entity.FebsConstant;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.mall.entity.HappyActivity;
-import cc.mrbird.febs.mall.entity.HappyActivityCategory;
-import cc.mrbird.febs.mall.entity.HappyActivityOption;
-import cc.mrbird.febs.mall.entity.HappyMemberLevel;
-import cc.mrbird.febs.mall.mapper.HappyActivityCategoryMapper;
-import cc.mrbird.febs.mall.mapper.HappyActivityOptionMapper;
+import cc.mrbird.febs.mall.entity.*;
+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;
@@ -21,12 +19,95 @@
 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
 public class ViewHappyMemberLevelController extends BaseController {
 
     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");
+    }
 
     /**
      * 会员等级列表
@@ -61,4 +142,40 @@
         return FebsUtil.view("modules/levelView/levelInfo");
     }
 
+
+
+
+    /**
+     * 分销等级列表
+     */
+    @GetMapping("saleList")
+    @RequiresPermissions("saleList:view")
+    public String saleList() {
+        return FebsUtil.view("modules/levelView/saleList");
+    }
+
+    /**
+     * 分销等级新增
+     * @return
+     */
+    @GetMapping(value = "/saleAdd")
+    @RequiresPermissions("saleAdd:add")
+    public String saleAdd() {
+        return FebsUtil.view("modules/levelView/saleAdd");
+    }
+
+    /**
+     * 分销等级编辑
+     * @param id
+     * @param model
+     * @return
+     */
+    @GetMapping("saleInfo/{id}")
+    @RequiresPermissions("saleInfo:view")
+    public String saleInfo(@PathVariable long id, Model model) {
+        HappySaleLevel happySaleLevel = happySaleLevelMapper.selectById(id);
+        model.addAttribute("happySaleLevel", happySaleLevel);
+        return FebsUtil.view("modules/levelView/saleInfo");
+    }
+
 }

--
Gitblit v1.9.1