From 1b6f7f2b20c45a65e87e0a3c3089079cc237cd73 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 16 Sep 2021 15:43:28 +0800 Subject: [PATCH] 20210916 --- /dev/null | 8 - src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java | 27 +++ src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 11 + src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 38 +++++ src/main/resources/mapper/modules/MallMemberMapper.xml | 26 +++ src/main/java/cc/mrbird/febs/mall/service/IMallMemberService.java | 10 + src/main/java/cc/mrbird/febs/mall/service/Impl/MallMemberService.java | 32 ++++ src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 249 +++++++++++++++++++++++++++++++++++ 8 files changed, 392 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java new file mode 100644 index 0000000..4a3ea04 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java @@ -0,0 +1,38 @@ +package cc.mrbird.febs.mall.controller; + +import cc.mrbird.febs.common.controller.BaseController; +import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.service.IMallMemberService; +import cc.mrbird.febs.mall.service.Impl.MallMemberService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Slf4j +@Validated +@RestController +@RequiredArgsConstructor +@RequestMapping(value = "/admin/mallMember") +public class AdminMallMemberController extends BaseController { + + private final IMallMemberService mallMemberService; + + /** + * 会员列表 + * @param mallMember + * @param request + * @return + */ + @GetMapping("getMallMemberList") + public FebsResponse getMallMemberList(MallMember mallMember, QueryRequest request) { + Map<String, Object> data = getDataTable(mallMemberService.getMallMemberList(mallMember, request)); + return new FebsResponse().success().data(data); + } +} diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java new file mode 100644 index 0000000..c0e4c32 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java @@ -0,0 +1,27 @@ +package cc.mrbird.febs.mall.controller; + +import cc.mrbird.febs.common.controller.BaseController; +import cc.mrbird.febs.common.entity.FebsConstant; +import cc.mrbird.febs.common.utils.FebsUtil; +import lombok.RequiredArgsConstructor; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller("mallMemberView") +@RequestMapping(FebsConstant.VIEW_PREFIX + "modules/mallMember") +@RequiredArgsConstructor +public class ViewMallMemberController extends BaseController { + + /** + * 会员列表 + * @return + */ + @GetMapping("mallMember") + @RequiresPermissions("mallMember:view") + public String mallMember() { + return FebsUtil.view("modules/mallMember/mallMemberList"); + } + +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java index da00ab7..4245646 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java @@ -1,8 +1,17 @@ package cc.mrbird.febs.mall.mapper; +import cc.mrbird.febs.mall.entity.MallMember; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + /** * @author wzy * @date 2021-09-16 **/ -public class MallMemberMapper { +public interface MallMemberMapper extends BaseMapper<MallMember> { + + IPage<MallMember> selectMallMemberListInPage(Page<MallMember> page, @Param("record")MallMember mallMember); + } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberService.java new file mode 100644 index 0000000..a657249 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberService.java @@ -0,0 +1,10 @@ +package cc.mrbird.febs.mall.service; + +import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.mall.entity.MallMember; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface IMallMemberService extends IService<MallMember> { + IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request); +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/Impl/MallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/Impl/MallMemberService.java new file mode 100644 index 0000000..64495d3 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/Impl/MallMemberService.java @@ -0,0 +1,32 @@ +package cc.mrbird.febs.mall.service.Impl; + +import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cc.mrbird.febs.mall.service.IMallMemberService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author wzy + * @date 2021-09-16 + **/ +@Slf4j +@Service +@RequiredArgsConstructor +public class MallMemberService extends ServiceImpl<MallMemberMapper, MallMember> implements IMallMemberService { + + @Override + public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { + Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); + return mallMembers; + } + +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/MallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/MallMemberService.java deleted file mode 100644 index b6dca1c..0000000 --- a/src/main/java/cc/mrbird/febs/mall/service/MallMemberService.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.mrbird.febs.mall.service; - -/** - * @author wzy - * @date 2021-09-16 - **/ -public class MallMemberService { -} diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml new file mode 100644 index 0000000..3d724fb --- /dev/null +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberMapper"> + + <select id="selectMallMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> + SELECT * FROM mall_member m + <where> + <if test="record != null" > + <if test="record.name!=null and record.name!=''"> + and (m.name like concat('%', #{record.name},'%') + </if> + <if test="record.phone!=null and record.phone!=''"> + and (m.phone like concat('%', #{record.phone},'%') or m.email like concat('%', #{record.phone},'%')) + </if> + <if test="record.accountStatus!=null"> + and m.account_status = #{record.accountStatus} + </if> + <if test="record.accountType != null" > + and m.account_type = #{record.accountType} + </if> + </if> + </where> + order by m.CREATED_TIME desc + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html new file mode 100644 index 0000000..79838e4 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -0,0 +1,249 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-user" 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"> + <form class="layui-form layui-table-form" lay-filter="user-table-form"> + <div class="layui-row"> + <div class="layui-col-md10"> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label layui-form-label-sm">审核状态</label> + <div class="layui-input-inline"> + <select name="certifyStatus"> + <option value="">请选择</option> + <option value="1">待审核</option> + <option value="2">审核通过</option> + <option value="3">未实名</option> + </select> + </div> + </div> + </div> + </div> + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> + <i class="layui-icon"></i> + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table> + </div> + </div> + </div> + </div> +</div> +<!-- 表格操作栏 start --> +<script type="text/html" id="user-option"> + <span shiro:lacksPermission="user:view,user:update,user:delete"> + <span class="layui-badge-dot febs-bg-orange"></span> 无权限 + </span> + <a lay-event="edit" shiro:hasPermission="user:update"><i + class="layui-icon febs-edit-area febs-blue"></i></a> +</script> +<!-- 表格操作栏 end --> +<script data-th-inline="none" type="text/javascript"> + // 引入组件并初始化 + layui.use([ 'jquery', 'form', 'table', 'febs'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + table = layui.table, + $view = $('#febs-user'), + $query = $view.find('#query'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'phone', type: null}, + tableIns; + + form.render(); + + // 表格初始化 + initTable(); + + // 初始化表格操作栏各个按钮功能 + table.on('tool(userTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + if (layEvent === 'disagree') { + febs.modal.confirm('禁止', '确认禁止平仓功能?', function () { + disagree(data.id); + }); + } + if (layEvent === 'agree') { + febs.modal.confirm('开启', '确认开启平仓功能?', function () { + agree(data.id); + }); + } + + if (layEvent === 'edit') { + febs.modal.open('身份认证', 'modules/member/memberDetail/' + data.id, { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#user-update').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + if (layEvent === 'see') { + febs.modal.open( '身份认证', 'modules/member/memberDetail/' + data.id, { + maxmin: true, + }); + } + if (layEvent === 'addCoin') { + febs.modal.open( '拨币', 'modules/member/addCoin/' + data.id, { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#user-update').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + if (layEvent === 'examine') { + febs.modal.open( '个人数据详情', 'modules/member/memberDetailInfo/' + data.inviteId, { + maxmin: true, + }); + } + }); + function disagree(id) { + febs.get(ctx + 'tradeManage/disagreePositionSetting/' + id, null, function () { + febs.alert.success('禁止成功'); + $query.click(); + }); + } + function agree(id) { + febs.get(ctx + 'tradeManage/agreePositionSetting/' + id, null, function () { + febs.alert.success('开启成功'); + $query.click(); + }); + } + + + // 查询按钮 + $query.on('click', function () { + var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); + tableIns.reload({where: params, page: {curr: 1}}); + }); + + // 刷新按钮 + $reset.on('click', function () { + $searchForm[0].reset(); + sortObject.type = 'null'; + tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); + }); + + function initTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'userTable', + url: ctx + 'admin/mallMember/getMallMemberList', + cols: [[ + {field: 'phone', title: '手机号', minWidth: 150,align:'left'} + // {field: 'email', title: '邮箱', minWidth: 150,align:'left'}, + // {field: 'realName', title: '姓名', minWidth: 100,align:'left'}, + // {field: 'inviteId', title: '邀请码UID', + // templet: function (d) { + // return '<a lay-event="examine" shiro:hasPermission="user:update">'+d.inviteId+'</a>' + // }, minWidth: 80,align:'center'}, + // {field: 'refererId', title: '上级邀请码UID', minWidth: 80,align:'center'}, + // {field: 'accountType', title: '账号类型', + // templet: function (d) { + // if (d.accountType === 2) { + // return '<span style="color:green;">测试账号</span>' + // } else if (d.accountType === 1) { + // return '<span style="color:red;">正常账号</span>' + // }else{ + // return '' + // } + // }, minWidth: 80,align:'center'}, + // {field: 'accountStatus', title: '账号状态', + // templet: function (d) { + // if (d.accountStatus === 1) { + // return '<span style="color:green;">正常</span>' + // } else if (d.accountStatus === 0) { + // return '<span style="color:red;">禁用</span>' + // }else{ + // return '' + // } + // }, minWidth: 80,align:'center'}, + // {field: 'certifyStatus', title: '审核状态', + // templet: function (d) { + // if (d.certifyStatus === 0) { + // return '<span style="color:red;">未通过</span>' + // } else if (d.certifyStatus === 1) { + // return '<span style="color:blue;">待审核</span>' + // } else if (d.certifyStatus === 2) { + // return '<span style="color:green;">审核通过</span>' + // } else if (d.certifyStatus === 3) { + // return '<span>未实名</span>' + // }else{ + // return '' + // } + // }, minWidth: 80,align:'center'}, + // {field: 'pcState', title: '是否可平仓', + // templet: function (d) { + // if (d.pcState === 1) { + // return '<span style="color:#ff0000;">否</span>' + // } else { + // return '<span style="color:green;">是</span>' + // } + // },minWidth: 100,align:'center'}, + // {field: 'createTime', title: '注册时间', minWidth: 180,align:'center'}, + // {title: '操作', + // templet: function (d) { + // if (d.certifyStatus === 1) { + // if(d.pcState === 1){ + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit" shiro:hasPermission="user:update">审核认证</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">开启</button>' + // }else{ + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit" shiro:hasPermission="user:update">审核认证</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">禁止</button>' + // } + // }else if(d.certifyStatus === 2){ + // if(d.pcState === 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="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" 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="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">禁止</button>' + // } + // }else { + // if(d.pcState === 1){ + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">开启</button>' + // }else{ + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>' + // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">禁止</button>' + // } + // } + // },minWidth: 300,align:'center'} + ]] + }); + } + + // 获取查询参数 + function getQueryParams() { + return { + account: $searchForm.find('input[name="account"]').val().trim(), + certifyStatus: $searchForm.find("select[name='certifyStatus']").val(), + }; + } + + }) +</script> \ No newline at end of file -- Gitblit v1.9.1