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