KKSU
2025-04-08 1764dd21b6bf90b97542acc66c8d2e29d71e37a2
feat(mall): 会员列表增加医生设置功能

- 在会员列表页面添加医生设置开关
- 实现医生状态切换的后端接口和逻辑
- 更新会员列表的前端模板,增加医生设置列和相应操作
4 files modified
53 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html 24 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -17,7 +17,6 @@
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -572,6 +571,15 @@
    }
    /**
     * 会员列表-医生设置
     */
    @GetMapping("doctorStateChange/{id}")
    @ControllerEndpoint(operation = " 会员列表-医生设置", exceptionMessage = "操作失败")
    public FebsResponse doctorStateChange(@NotNull(message = "{required}") @PathVariable Long id) {
        return mallMemberService.doctorStateChange(id);
    }
    /**
     * 会员列表-推销员设置
     */
    @GetMapping("upSale/{id}")
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -127,6 +127,9 @@
    FebsResponse agentVerifyUpdate(AdminAgentVerifyVo adminAgentVerifyVo);
    FebsResponse doctorStateChange(Long id);
    FebsResponse upCoupon(Long id);
    FebsResponse downCoupon(Long id);
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -3,16 +3,12 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.entity.MallNewsInfo;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
@@ -33,7 +29,6 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.xmlbeans.impl.store.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -320,6 +315,17 @@
    }
    @Override
    public FebsResponse doctorStateChange(Long id) {
        MallMember mallMember = this.baseMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallMember)){
            throw new FebsException("请刷新页面");
        }
        mallMember.setDoctorState(mallMember.getDoctorState() == 1 ? 0 : 1);
        this.baseMapper.updateById(mallMember);
        return new FebsResponse().success().message("操作成功");
    }
    @Override
    public FebsResponse upCoupon(Long id) {
        MallMember mallMember = this.baseMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallMember)){
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -97,6 +97,14 @@
    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isSalesmanSwitch">
    {{# } }}
</script>
<script type="text/html" id="isDoctorSwitch">
    {{# if(d.doctorState === 1) { }}
    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch">
    {{# } else { }}
    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isDoctorSwitch">
    {{# } }}
</script>
<style>
    .layui-form-onswitch {
        background-color: #5FB878 !important;
@@ -249,6 +257,21 @@
            }
        })
        form.on('switch(isDoctorSwitch)', function (data) {
            if (data.elem.checked) {
                doctorStateChange(data.value);
            } else {
                doctorStateChange(data.value);
            }
        })
        function doctorStateChange(id) {
            febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () {
                febs.alert.success('操作成功');
                $query.click();
            });
        }
        function upSale(id) {
            febs.get(ctx + 'admin/mallMember/upSale/' + id, null, function () {
                febs.alert.success('操作成功');
@@ -295,6 +318,7 @@
                    {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
                    {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'},
                    // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
                    {field: 'doctorState', title: '医生设置', templet: '#isDoctorSwitch', minWidth: 100,align:'center'},
                    {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'},
                    // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100},
                    // {field: 'accountType', title: '账号类型',