xiaoyong931011
2021-09-27 b2cad85b830a99fd153483bfbc787963a91fd259
20210926
3 files added
11 files modified
256 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java 8 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentLevelOptionTreeVo.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentMemberVo.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentVo.java 2 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/agentAllMember.html 55 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/agentLevelUpdate.html 6 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/agentList.html 66 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -8,6 +8,8 @@
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallOrderRefund;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo;
import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -15,6 +17,7 @@
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
@Slf4j
@@ -152,6 +155,28 @@
        return mallMemberService.agentLevelUpdate(agentLevelUpdateDto);
    }
    /**
     * 代理-等级选择Option
     */
    @GetMapping("getAgentLevelOption/tree")
    @ControllerEndpoint(exceptionMessage = "获取等级失败")
    public List<AdminAgentLevelOptionTreeVo> getAgentLevelOption(){
        return mallMemberService.getAgentLevelOption();
    }
    /**
     * 代理列表-全部成员
     */
    @GetMapping("/agentChild")
    public FebsResponse agentChild(QueryRequest request, MallMember mallMember, Integer parentId) {
        if(parentId==null){
            ViewMallMemberController.idFromAgentAllMember=0;
        }
        mallMember.setId(ViewMallMemberController.idFromAgentAllMember);
        Map<String, Object> dataTable = getDataTable(mallMemberService.agentChild(request, mallMember));
        return new FebsResponse().success().data(dataTable);
    }
}
src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -25,6 +25,8 @@
    public static long idFromMoneyFlow;
    public static long idFromAgentAllMember;
    /**
     * 会员列表
     * @return
@@ -129,6 +131,18 @@
        return FebsUtil.view("modules/mallMember/agentLevelUpdate");
    }
    /**
     * 代理级别-全部成员
     * @param id
     * @param model
     * @return
     */
    @GetMapping("agentAllMember/{id}")
    public String agentAllMember(@PathVariable long id, Model model) {
        idFromAgentAllMember = id;
        return FebsUtil.view("modules/mallMember/agentAllMember");
    }
src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.mall.dto.PayMethodDto;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo;
import cc.mrbird.febs.mall.vo.AdminMallPayMethodEditVo;
import cc.mrbird.febs.mall.vo.AdminPayMethodVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -22,4 +23,6 @@
    DataDictionaryCustom selectNextAgentLevelInfo(@Param("level") String agentLevel);
    DataDictionaryCustom selectDicDataByTypeAndCode(@Param("type") String type, @Param("code") String code);
    List<AdminAgentLevelOptionTreeVo> getAgentLevelOption();
}
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -3,10 +3,7 @@
import cc.mrbird.febs.mall.dto.AgentDto;
import cc.mrbird.febs.mall.dto.AgentLevelDto;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.vo.AdminAgentLevelVo;
import cc.mrbird.febs.mall.vo.AdminAgentVo;
import cc.mrbird.febs.mall.vo.MallMemberVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import cc.mrbird.febs.mall.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -52,5 +49,8 @@
    List<MallMember> selectAllChildAgentListByInviteId(@Param("inviteId")String inviteId);
    List<MallMember> selectMemberParentAgentList(@Param("list") List<String> inviteIds);
    IPage<AdminAgentLevelVo> getAgentLevelListInPage(Page<AdminAgentLevelVo> page, @Param("record")AgentLevelDto agentLevelDto);
    IPage<AdminAgentMemberVo> getAgentChildInPage(Page<AdminAgentMemberVo> page, @Param("record")MallMember mallMember);
}
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import javax.validation.constraints.NotNull;
import java.util.List;
public interface IAdminMallMemberService extends IService<MallMember> {
@@ -39,4 +40,8 @@
    AdminAgentLevelUpdateInfoVo getAgentLevelUpdateInfoById(long id);
    FebsResponse agentLevelUpdate(AgentLevelUpdateDto agentLevelUpdateDto);
    List<AdminAgentLevelOptionTreeVo> getAgentLevelOption();
    IPage<AdminAgentMemberVo> agentChild(QueryRequest request, MallMember mallMember);
}
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -208,4 +208,18 @@
        return new FebsResponse().success();
    }
    @Override
    public List<AdminAgentLevelOptionTreeVo> getAgentLevelOption() {
        return dataDictionaryCustomMapper.getAgentLevelOption();
    }
    @Override
    public IPage<AdminAgentMemberVo> agentChild(QueryRequest request, MallMember mallMember) {
        Long memberId = mallMember.getId();
        mallMember = mallMemberMapper.selectById(memberId);
        Page<AdminAgentMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AdminAgentMemberVo> adminAgentMemberVos = this.baseMapper.getAgentChildInPage(page, mallMember);
        return adminAgentMemberVos;
    }
}
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentLevelOptionTreeVo.java
New file
@@ -0,0 +1,13 @@
package cc.mrbird.febs.mall.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "AdminAgentLevelOptionTreeVo", description = "信息返回类")
public class AdminAgentLevelOptionTreeVo {
    private Long id;
    private String name;
}
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentMemberVo.java
New file
@@ -0,0 +1,29 @@
package cc.mrbird.febs.mall.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "AdminAgentMemberVo", description = "信息返回类")
public class AdminAgentMemberVo {
    private Long id;
    private String name;
    private String phone;
    private String level;
    private String levelName;
    /**
     * 邀请码
     */
    private String inviteId;
    /**
     * 父级邀请码
     */
    private String referrerId;
}
src/main/java/cc/mrbird/febs/mall/vo/AdminAgentVo.java
@@ -15,6 +15,8 @@
    private String level;
    private String levelName;
    /**
     * 邀请码
     */
src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
@@ -28,4 +28,10 @@
        select * from data_dictionary_custom a
        where a.type=#{type} and a.code=#{code}
    </select>
    <select id="getAgentLevelOption" resultType="cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo">
        select a.code id,a.description name from data_dictionary_custom a
        where a.type='AGENT_LEVEL'
    </select>
</mapper>
src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -115,7 +115,8 @@
    </select>
    <select id="getAgentListInPage" resultType="cc.mrbird.febs.mall.vo.AdminAgentVo">
        SELECT * FROM mall_member m
        SELECT m.*,a.description levelName FROM mall_member m
        left join data_dictionary_custom a on a.code = m.level
        <where>
            <if test="record != null" >
                <if test="record.name!=null and record.name!=''">
@@ -129,6 +130,7 @@
                </if>
            </if>
        </where>
        group by m.id
        order by m.CREATED_TIME desc
    </select>
@@ -160,4 +162,10 @@
        ORDER BY
            a.CREATED_TIME DESC
    </select>
    <select id="getAgentChildInPage" resultType="cc.mrbird.febs.mall.vo.AdminAgentMemberVo">
        select m.*,a.description levelName from mall_member m
            left join data_dictionary_custom a on a.code = m.level
        where  find_in_set(#{record.inviteId}, m.referrer_ids)
    </select>
</mapper>
src/main/resources/templates/febs/views/modules/mallMember/agentAllMember.html
New file
@@ -0,0 +1,55 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-agent-child" lay-title="全部成员">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <table lay-filter="agentChild" lay-data="{id: 'agentChild'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect' ,'eleTree'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            treeSelect = layui.treeSelect,
            dropdown = layui.dropdown,
            $view = $('#febs-agent-child'),
            $query = $view.find('#queryChild'),
            $searchForm = $view.find('formChild'),
            sortObject = {field: 'createTime', type: null},
            tableIns,
            createTimeFrom,
            createTimeTo;
        form.render();
        initTable();
        laydate.render({
            elem: '#user-createTime',
            range: true,
            trigger: 'click'
        });
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'agentChild',
                url: ctx + 'admin/mallMember/agentChild?parentId=1',
                cols: [[
                    {field: 'name', title: '姓名', minWidth: 150,align:'center'},
                    {field: 'phone', title: '电话', minWidth: 150,align:'center'},
                    {field: 'inviteId', title: '邀请码', minWidth: 150,align:'center'},
                    {field: 'levelName', title: '等级', minWidth: 150,align:'center'},
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/modules/mallMember/agentLevelUpdate.html
@@ -55,12 +55,18 @@
            </div>
        </div>
        <div class="layui-form-item">
            <div style="text-align:center;color: red">提示:【团队收益】如果选择【比例】,请输入百分比数字,如:80%,请输入80</div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">团队收益:</label>
            <div class="layui-input-block">
                <input type="number" name="teamIncome" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <div style="text-align:center;color: red">提示:【直推收益】请输入百分比数字,如:80%,请输入80</div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">直推收益:</label>
            <div class="layui-input-block">
                <input type="number" name="directIncome" class="layui-input">
src/main/resources/templates/febs/views/modules/mallMember/agentList.html
@@ -22,8 +22,12 @@
                                        <div class="layui-input-inline">
                                            <select name="level">
                                                <option value="">请选择</option>
                                                <option value="FIRST_LEVEL">FIRST_LEVEL</option>
                                                <option value="SECOND_LEVEL">SECOND_LEVEL</option>
                                                <option value="FIRST_LEVEL">普通会员</option>
                                                <option value="SECOND_LEVEL">业务经理</option>
                                                <option value="THIRD_LEVEL">区域代理</option>
                                                <option value="FOUR_LEVEL">代理</option>
                                                <option value="FIFTH_LEVEL">总代</option>
                                                <option value="SIX_LEVEL">董事</option>
                                            </select>
                                        </div>
                                    </div>
@@ -77,40 +81,12 @@
        table.on('tool(userAgentTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
            // if (layEvent === 'close') {
            //     febs.modal.confirm('禁用', '确认禁用该账号?', function () {
            //         closeAccount(data.id);
            //     });
            // }
            // if (layEvent === 'open') {
            //     febs.modal.confirm('开启', '确认开启该账号?', function () {
            //         openAccount(data.id);
            //     });
            // }
            // if (layEvent === 'see') {
            //     febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, {
            //         maxmin: true,
            //     });
            // }
            // if (layEvent === 'moneyFlow') {
            //     febs.modal.open( '用户资金流水', 'modules/mallMember/moneyFlow/' + data.id, {
            //         maxmin: true,
            //     });
            // }
            if (layEvent === 'agentAllMember') {
                febs.modal.open( '全部成员', 'modules/mallMember/agentAllMember/' + data.id, {
                    maxmin: true,
                });
            }
        });
        // function closeAccount(id) {
        //     febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () {
        //         febs.alert.success('禁用成功');
        //         $query.click();
        //     });
        // }
        // function openAccount(id) {
        //     febs.get(ctx + 'admin/mallMember/openAccount/' + id, null, function () {
        //         febs.alert.success('开启成功');
        //         $query.click();
        //     });
        // }
        // 查询按钮
        $query.on('click', function () {
@@ -134,23 +110,13 @@
                    {field: 'phone', title: '手机号', minWidth: 150,align:'left'},
                    {field: 'name', title: '名称', minWidth: 100,align:'left'},
                    {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'},
                    {field: 'level', title: '代理层级', minWidth: 100,align:'left'},
                    {field: 'levelName', title: '代理层级', minWidth: 100,align:'left'},
                    {field: 'memberNum', title: '下级', minWidth: 100,align:'left'},
                    {field: 'allMemberNum', title: '我的团队总数', minWidth: 100,align:'left'},
                    // {title: '操作',
                    //     templet: function (d) {
                    //         if (d.accountStatus === 1) {
                    //             return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>'
                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close" shiro:hasPermission="user:update">禁用</button>'
                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>'
                    //
                    //         }else{
                    //             return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>'
                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="open" shiro:hasPermission="user:update">启用</button>'
                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>'
                    //
                    //         }
                    //     },minWidth: 300,align:'center'}
                    {title: '操作',
                        templet: function (d) {
                                return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentAllMember" shiro:hasPermission="user:update">全部成员</button>'
                        },minWidth: 300,align:'center'}
                ]]
            });
        }