src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -63,7 +63,7 @@ log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ "); log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ "); log.info(" "); log.info("RABBIT商城 权限系统启动完毕,地址:{}", url); log.info("MashiMaro 权限系统启动完毕,地址:{}", url); boolean auto = febsProperties.isAutoOpenBrowser(); if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) { src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -372,4 +372,14 @@ return new FebsResponse().success(); } /** * 充值列表 * */ @GetMapping("getChargeList") public FebsResponse getChargeList(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) { Map<String, Object> data = getDataTable(mallMemberService.getChargeList(memberCoinChargeEntity, request)); return new FebsResponse().success().data(data); } } src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -300,6 +300,16 @@ return FebsUtil.view("modules/mallMember/addMember"); } /** * 充值列表 * @return */ @GetMapping("memberCharge") @RequiresPermissions("memberCharge:view") public String memberCharge() { return FebsUtil.view("modules/mallMember/memberCharge"); } src/main/java/cc/mrbird/febs/mall/entity/MemberCoinChargeEntity.java
@@ -39,7 +39,7 @@ * 充值用户名 */ @TableField(exist = false) private String username; private String name; @TableField(exist = false) private String createTimeStr; src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -6,6 +6,7 @@ import cc.mrbird.febs.mall.dto.RankListDto; import cc.mrbird.febs.mall.entity.AppVersion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MemberCoinChargeEntity; import cc.mrbird.febs.mall.vo.*; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -99,4 +100,6 @@ void updateAccountLevelById(@Param("accountLevel")String accountLevel, @Param("id")Long id); void updateLevelStatusById(@Param("levelStatus")int i, @Param("id")Long memberId); IPage<MemberCoinChargeEntity> selectMemberChargeListInPage(Page<MemberCoinChargeEntity> page, @Param("record")MemberCoinChargeEntity memberCoinChargeEntity); } src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -3,10 +3,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.AppVersion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.entity.MallShopApply; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.vo.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -97,4 +94,6 @@ void updateShopApply(MallShopApply apply); AdminMallMemberPaymentVo getMallBankInfoById(long id); IPage<MemberCoinChargeEntity> getChargeList(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request); } src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -638,6 +638,14 @@ return adminMallMemberPaymentVo; } @Override public IPage<MemberCoinChargeEntity> getChargeList(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) { Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<MemberCoinChargeEntity> memberCoinChargeEntityIPage = this.baseMapper.selectMemberChargeListInPage(page, memberCoinChargeEntity); return memberCoinChargeEntityIPage; } private String refererIds(String parentId) { boolean flag = false; if (StrUtil.isBlank(parentId)) { src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -445,4 +445,22 @@ where id = #{id} </update> <select id="selectMemberChargeListInPage" resultType="cc.mrbird.febs.mall.entity.MemberCoinChargeEntity"> SELECT a.*, b.name name FROM member_coin_charge a inner join mall_member b on a.member_id = b.id <where> <if test="record != null" > <if test="record.name!=null and record.name!=''"> and b.name like concat('%', #{record.name},'%') </if> <if test="record.address!=null and record.address!=''"> and a.address like concat('%', #{record.address},'%') </if> </if> </where> order by a.CREATED_TIME desc </select> </mapper> src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>RABBIT商城 权限系统</title> <title>MashiMaro 权限系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>RABBIT商城 权限系统</title> <title>MashiMaro 权限系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> src/main/resources/templates/febs/views/layout.html
@@ -64,7 +64,7 @@ <div class="layui-side-scroll"> <div class="layui-logo" style="cursor: pointer"> <img data-th-src="@{febs/images/logo.png}"> <span>RABBIT商城 权限系统</span> <span>MashiMaro 权限系统</span> </div> <script type="text/html" src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>RABBIT商城 权限系统</title> <title>MashiMaro 权限系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> @@ -19,7 +19,7 @@ <div class="layui-container"> <div class="layui-row"> <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc"> <div class="layui-logo"><span><b>RABBIT商城</b> 权限系统</span></div> <div class="layui-logo"><span><b>MashiMaro</b> 权限系统</span></div> </div> <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div"> <div class="layui-form" lay-filter="login-form"> src/main/resources/templates/febs/views/modules/mallMember/memberCharge.html
New file @@ -0,0 +1,93 @@ <div class="layui-fluid layui-anim febs-anim" id="febs-charge" 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="withdraw-table-form"> <div class="layui-row"> <div class="layui-col-md10"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label layui-form-label-sm">用户名</label> <div class="layui-input-inline"> <input type="text" name="name" 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"> <input type="text" name="address" autocomplete="off" class="layui-input"> </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="chargeTable" lay-data="{id: 'chargeTable'}"></table> </div> </div> </div> </div> </div> <script data-th-inline="none" type="text/javascript"> layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () { var $ = layui.jquery, laydate = layui.laydate, febs = layui.febs, form = layui.form, table = layui.table, dropdown = layui.dropdown, $view = $('#febs-charge'), $query = $view.find('#query'), $reset = $view.find('#reset'), $searchForm = $view.find('form'), sortObject = {field: 'createTime', type: null}, tableIns; form.render(); initTable(); $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(); tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); }); function initTable() { tableIns = febs.table.init({ elem: $view.find('table'), id: 'chargeTable', url: ctx + 'admin/mallMember/getChargeList', cols: [[ {field: 'name', title: '用户名', minWidth: 100,align:'center'}, {field: 'address', title: '地址', minWidth: 300,align:'center'}, {field: 'amount', title: '充值金额', minWidth: 100,align:'center'}, {field: 'symbol', title: '币种', minWidth: 100,align:'center'}, {field: 'hash', title: '交易hash', minWidth: 130,align:'center'}, {field: 'createdTime', title: '创建时间', minWidth: 130,align:'center'}, ]] }); } function getQueryParams() { return { name: $searchForm.find('input[name="name"]').val().trim(), address: $searchForm.find('input[name="address"]').val().trim(), }; } }) </script> src/main/resources/templates/index.html
@@ -3,7 +3,7 @@ xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <head> <meta charset="utf-8"> <title>RABBIT商城 权限系统</title> <title>MashiMaro 权限系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">