8 files modified
	
		
		2 files added
	
	
 
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  |     private final IAdminMallMemberService mallMemberService; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 平台账单 | 
 |  |  |      * @param mallMember | 
 |  |  |      * @param request | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @GetMapping("getMallDataList") | 
 |  |  |     public FebsResponse getMallDataList(MallMember mallMember, QueryRequest request) { | 
 |  |  |         Map<String, Object> data = getDataTable(mallMemberService.getMallDataList(mallMember, request)); | 
 |  |  |         return new FebsResponse().success().data(data); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 会员列表 | 
 |  |  |      * @param mallMember | 
 |  |  |      * @param request | 
 
 |  |  | 
 |  |  |     public static long idFromAgentAllMember; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 平台账单 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @GetMapping("mallDataList") | 
 |  |  |     @RequiresPermissions("mallDataList:view") | 
 |  |  |     public String mallDataList() { | 
 |  |  |         return FebsUtil.view("modules/mallMember/mallDataList"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 会员列表 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotation.TableName; | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @author wzy | 
 |  |  |  * @date 2021-09-16 | 
 |  |  | 
 |  |  |  | 
 |  |  |     private String bindPhone; | 
 |  |  |  | 
 |  |  |     @TableField(exist = false) | 
 |  |  |     private String referrerName; | 
 |  |  |  | 
 |  |  |     @TableField(exist = false) | 
 |  |  |     private BigDecimal balance; | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  |     List<MallMember> selectMallMemberByInviteIdAndLevel(@Param("inviteId")String inviteId, @Param("level")String level); | 
 |  |  |  | 
 |  |  |     AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(@Param("id")long id); | 
 |  |  |  | 
 |  |  |     IPage<MallDataVo> getMallDataListInPage(Page<MallDataVo> page,  @Param("record")MallMember mallMember); | 
 |  |  | } | 
 
 |  |  | 
 |  |  |     FebsResponse agentLevelSetUpdate(AgentLevelSetUpdateDto agentLevelSetUpdateDto); | 
 |  |  |  | 
 |  |  |     FebsResponse resetPwd(Long id); | 
 |  |  |  | 
 |  |  |     IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request); | 
 |  |  | } | 
 
 |  |  | 
 |  |  |         this.baseMapper.updateById(mallMember); | 
 |  |  |         return new FebsResponse().success().message("重置成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request) { | 
 |  |  |         Page<MallDataVo> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
 |  |  |         IPage<MallDataVo> mallDataVos = this.baseMapper.getMallDataListInPage(page, mallMember); | 
 |  |  |         return mallDataVos; | 
 |  |  |     } | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | package cc.mrbird.febs.mall.vo; | 
 |  |  |  | 
 |  |  | import io.swagger.annotations.ApiModel; | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  |  | 
 |  |  | @Data | 
 |  |  | @ApiModel(value = "MallDataVo", description = "返回参数类") | 
 |  |  | public class MallDataVo { | 
 |  |  |     private String createdTime; | 
 |  |  |     private BigDecimal payMoney; | 
 |  |  |     private BigDecimal refundMoney; | 
 |  |  |     private BigDecimal rewordMoney; | 
 |  |  |     private BigDecimal surplusMoney; | 
 |  |  | } | 
 
 |  |  | 
 |  |  | <mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberMapper"> | 
 |  |  |  | 
 |  |  |     <select id="selectMallMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> | 
 |  |  |         SELECT * FROM mall_member m | 
 |  |  |         SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance  FROM mall_member m | 
 |  |  |         left join mall_member a on m.referrer_id = a.invite_id | 
 |  |  |         LEFT JOIN mall_member_wallet c on c.member_id = m.id | 
 |  |  |         <where> | 
 |  |  |             <if test="record != null" > | 
 |  |  |                 <if test="record.name!=null and record.name!=''"> | 
 |  |  | 
 |  |  |         where a.id = #{id} and d.type = 'AGENT_LEVEL' | 
 |  |  |         GROUP BY a.id | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="getMallDataListInPage" resultType="cc.mrbird.febs.mall.vo.MallDataVo"> | 
 |  |  |         SELECT | 
 |  |  |             DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') createdTime, | 
 |  |  |             IFNULL(t1.tol, 0) *- 1 AS payMoney, | 
 |  |  |             IFNULL(t2.to2, 0) AS refundMoney, | 
 |  |  |             IFNULL(t3.to3, 0) *- 1 AS rewordMoney, | 
 |  |  |             ( | 
 |  |  |                     (IFNULL(t1.tol, 0)*- 1) - (IFNULL(t2.to2, 0)) + (IFNULL(t3.to3, 0)*- 1) | 
 |  |  |                 ) AS surplusMoney | 
 |  |  |         FROM | 
 |  |  |             mall_money_flow a | 
 |  |  |                 LEFT JOIN ( | 
 |  |  |                 SELECT | 
 |  |  |                     b.CREATED_TIME, | 
 |  |  |                     IFNULL(SUM(b.amount), 0) AS tol | 
 |  |  |                 FROM | 
 |  |  |                     mall_money_flow b | 
 |  |  |                 WHERE | 
 |  |  |                     b.type = 3 | 
 |  |  |                 GROUP BY | 
 |  |  |                     DATE_FORMAT(b.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |             ) t1 ON DATE_FORMAT(t1.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |                 LEFT JOIN ( | 
 |  |  |                 SELECT | 
 |  |  |                     c.CREATED_TIME, | 
 |  |  |                     IFNULL(SUM(c.amount), 0) AS to2 | 
 |  |  |                 FROM | 
 |  |  |                     mall_money_flow c | 
 |  |  |                 WHERE | 
 |  |  |                     c.type = 4 | 
 |  |  |                 GROUP BY | 
 |  |  |                     DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |             ) t2 ON DATE_FORMAT(t2.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |                 LEFT JOIN ( | 
 |  |  |                 SELECT | 
 |  |  |                     d.CREATED_TIME, | 
 |  |  |                     IFNULL(SUM(d.amount), 0) AS to3 | 
 |  |  |                 FROM | 
 |  |  |                     mall_money_flow d | 
 |  |  |                 WHERE | 
 |  |  |                     d.type IN (1, 2) | 
 |  |  |                 GROUP BY | 
 |  |  |                     DATE_FORMAT(d.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |             ) t3 ON DATE_FORMAT(t3.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |         GROUP BY | 
 |  |  |             DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') | 
 |  |  |     </select> | 
 |  |  | </mapper> | 
 
| New file | 
 |  |  | 
 |  |  | <div class="layui-fluid layui-anim febs-anim" id="febs-data" 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> | 
 |  |  |                             </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-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-data'), | 
 |  |  |             $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; | 
 |  |  |  | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         // 刷新按钮 | 
 |  |  |         $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: 'mallDataTable', | 
 |  |  |                 url: ctx + 'admin/mallMember/getMallDataList', | 
 |  |  |                 totalRow: true, | 
 |  |  |                 cols: [[ | 
 |  |  |                     {field: 'createdTime', title: '日期', minWidth: 150, align: 'left',totalRowText: '合计'}, | 
 |  |  |                     {field: 'payMoney', title: '支付金额', minWidth: 150, align: 'left', totalRow: true}, | 
 |  |  |                     {field: 'refundMoney', title: '退款金额', minWidth: 150,align:'left', totalRow: true}, | 
 |  |  |                     {field: 'rewordMoney', title: '奖励支出', minWidth: 100, align: 'left', totalRow: true}, | 
 |  |  |                     {field: 'surplusMoney', title: '每日剩余', minWidth: 100, align: 'left', totalRow: true} | 
 |  |  |                 ]] | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 获取查询参数 | 
 |  |  |         function getQueryParams() { | 
 |  |  |             return { | 
 |  |  |             }; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     }) | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |                     {field: 'bindPhone', title: '手机号', minWidth: 150,align:'left'}, | 
 |  |  |                     // {field: 'email', title: '邮箱', minWidth: 150,align:'left'}, | 
 |  |  |                     {field: 'name', title: '名称', minWidth: 100,align:'left'}, | 
 |  |  |                     {field: 'balance', title: '积分余额', minWidth: 100,align:'left'}, | 
 |  |  |                     {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, | 
 |  |  |                     {field: 'referrerId', title: '推荐人邀请码', minWidth: 100,align:'left'}, | 
 |  |  |                     // {field: 'referrerId', title: '推荐人邀请码', minWidth: 100,align:'left'}, | 
 |  |  |                     {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, | 
 |  |  |                     {field: 'accountType', title: '账号类型', | 
 |  |  |                         templet: function (d) { | 
 |  |  |                             if (d.accountType === 2) { |