From 258dc93217e5af0bbe79802a665ef77e62fe7bc0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 04 Feb 2026 14:43:38 +0800
Subject: [PATCH] feat(member): 添加会员角色管理功能

---
 src/main/java/cc/mrbird/febs/mall/controller/member/AdminMallMemberController.java            |    9 +++-
 src/main/resources/templates/febs/views/modules/mallMember/vip-level-setting.html             |    6 +-
 src/main/java/cc/mrbird/febs/mall/service/AdminMemberLevelService.java                        |    1 
 src/main/java/cc/mrbird/febs/mall/controller/memberLevel/AdminHappyMemberLevelController.java |   30 +++++---------
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java               |   15 +++++++
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html                |    4 +-
 6 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/member/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/member/AdminMallMemberController.java
index 0a71bf1..867257b 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/member/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/member/AdminMallMemberController.java
@@ -15,6 +15,7 @@
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -656,9 +657,11 @@
 
     @PostMapping("vipLevelSetUpdate")
     public FebsResponse vipLevelSetUpdate(MallMember member) {
-        MallMember mallMember = mallMemberService.getBaseMapper().selectById(member.getId());
-        mallMember.setDirector(member.getDirector());
-        mallMemberService.updateById(mallMember);
+        mallMemberService.getBaseMapper().update(null,
+                Wrappers.lambdaUpdate(MallMember.class)
+                .set(MallMember::getDirector, member.getDirector())
+                .eq(MallMember::getId, member.getId())
+                );
         return new FebsResponse().success().message("操作成功");
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/AdminHappyMemberLevelController.java b/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/AdminHappyMemberLevelController.java
index 42dbd66..0efc9d6 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/AdminHappyMemberLevelController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/memberLevel/AdminHappyMemberLevelController.java
@@ -5,34 +5,15 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
-import cc.mrbird.febs.common.utils.excl.ExcelUtil;
-import cc.mrbird.febs.common.utils.excl.ExcelVersion;
-import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil;
-import cc.mrbird.febs.mall.dto.AdminHappyActivityCategoryDto;
-import cc.mrbird.febs.mall.dto.activity.*;
 import cc.mrbird.febs.mall.dto.memberLevel.*;
-import cc.mrbird.febs.mall.entity.HappyActivity;
-import cc.mrbird.febs.mall.entity.HappyActivityOption;
 import cc.mrbird.febs.mall.service.AdminMemberLevelService;
-import cc.mrbird.febs.mall.service.IAdminHappyActivityService;
 import cc.mrbird.febs.mall.vo.memberLevel.AdminMemberLabelSetDto;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-import java.io.OutputStream;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -139,6 +120,17 @@
         return adminMemberLevelService.levelAll();
     }
 
+    /**
+     * 会员等级-获取全部
+     * @return
+     */
+    @GetMapping(value = "/memberRoleAll")
+    public FebsResponse memberRoleAll() {
+
+        String companyId = getCurrentUserCompanyId();
+        return adminMemberLevelService.memberRoleAll(companyId);
+    }
+
 
 
     /**
diff --git a/src/main/java/cc/mrbird/febs/mall/service/AdminMemberLevelService.java b/src/main/java/cc/mrbird/febs/mall/service/AdminMemberLevelService.java
index 4d1359f..33b5266 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/AdminMemberLevelService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/AdminMemberLevelService.java
@@ -29,6 +29,7 @@
     FebsResponse labelMemberSet(AdminMemberLabelSetDto dto);
 
     FebsResponse levelAll();
+    FebsResponse memberRoleAll(String companyId);
 
     IPage<HappySaleLevel> getSaleLevelListInPage(AdminSaleLevelDto dto, QueryRequest request);
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
index 39d383b..ea23b9b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
@@ -1,5 +1,7 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.ai.entity.AiMemberRole;
+import cc.mrbird.febs.ai.mapper.AiMemberRoleMapper;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.StateUpDownEnum;
@@ -37,6 +39,7 @@
     private final HappySaleLevelMapper happySaleLevelMapper;
     private final HappyMemberLabelMapper happyMemberLabelMapper;
     private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
+    private final AiMemberRoleMapper aiMemberRoleMapper;
     @Override
     public IPage<HappyMemberLevel> getLevelListInPage(AdminMemberLevelDto dto, QueryRequest request) {
 
@@ -152,6 +155,18 @@
     }
 
     @Override
+    public FebsResponse memberRoleAll(String companyId) {
+        LambdaQueryWrapper<AiMemberRole> aiMemberRoleLambdaQueryWrapper = Wrappers.lambdaQuery(AiMemberRole.class);
+        aiMemberRoleLambdaQueryWrapper.select(AiMemberRole::getId, AiMemberRole::getName);
+        if (StrUtil.isNotBlank(companyId)){
+            aiMemberRoleLambdaQueryWrapper.eq(AiMemberRole::getCompanyId, companyId);
+        }
+        aiMemberRoleLambdaQueryWrapper.orderByAsc(AiMemberRole::getSort);
+        List<AiMemberRole> aiMemberRoles = aiMemberRoleMapper.selectList(aiMemberRoleLambdaQueryWrapper);
+        return new FebsResponse().success().data(aiMemberRoles);
+    }
+
+    @Override
     public IPage<HappySaleLevel> getSaleLevelListInPage(AdminSaleLevelDto dto, QueryRequest request) {
 
         Page<HappySaleLevel> page = new Page<>(request.getPageNum(), request.getPageSize());
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
index 36db83d..ea74953 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -133,7 +133,7 @@
 <script type="text/html" id="memberToolbar">
     <div class="layui-btn-container">
 <!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="updateMemberLevel:update" lay-event="updateMemberLevel">修改会员等级</button>-->
+        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateMemberLevel">修改角色</button>
 <!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="updateSaleLevel:update" lay-event="updateSaleLevel">修改分销等级</button>-->
 <!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="wallet:update" lay-event="balance">余额修改</button>-->
 <!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="wallet:update" lay-event="prizeScore">积分修改</button>-->
@@ -475,7 +475,7 @@
                     febs.alert.warn('每次只能修改一个用户');
                     return;
                 }
-                febs.modal.open('设置会员等级', 'modules/mallMember/vipLevelSetting/' + checkData[0].id, {
+                febs.modal.open('角色设置', 'modules/mallMember/vipLevelSetting/' + checkData[0].id, {
                     btn: ['确认', '取消'],
                     yes: function (index, layero) {
                         $('#vip-level-set').find('#submit').trigger('click');
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/vip-level-setting.html b/src/main/resources/templates/febs/views/modules/mallMember/vip-level-setting.html
index 22b5a96..ea8b621 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/vip-level-setting.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/vip-level-setting.html
@@ -27,7 +27,7 @@
         </div>
         <div class="layui-form-item">
             <div class="layui-inline">
-                <label class="layui-form-label">会员等级:</label>
+                <label class="layui-form-label">角色:</label>
                 <div class="layui-input-inline">
                     <select lay-verify="required" name="director" class="vip-level-set-level" id="levelSet">
                         <option value="">请选择</option>
@@ -67,11 +67,11 @@
         }
 
         //(下拉框)
-        $.get(ctx + 'admin/level/levelAll', function (res) {
+        $.get(ctx + 'admin/level/memberRoleAll', function (res) {
             var data = res.data;
             for (var k in data)
             {
-                $(".vip-level-set-level").append("<option value='" + data[k].code + "'>" + data[k].name + "</option>");
+                $(".vip-level-set-level").append("<option value='" + data[k].id + "'>" + data[k].name + "</option>");
             }
             layui.use('form', function () {
                 var form = layui.form;

--
Gitblit v1.9.1