src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
@@ -181,5 +181,7 @@ String selectHYZCForBasicAllDataAlone(); String selectDLZCForBasicAllDataAlone(); IPage<MemberAccountInfoVo> findMemberAccountInfoAloneListInPage(Page<MemberEntity> page, @Param("record")MemberEntity memberEntity); } src/main/java/com/xcong/excoin/modules/trademanage/controller/TradeManageController.java
@@ -54,6 +54,15 @@ } /** * 账户信息---列表alone */ @GetMapping("memberAccountInfoAlone") public FebsResponse memberAccountInfoAlone(MemberEntity memberEntity, QueryRequest request) { Map<String, Object> data = getDataTable(tradeManageService.findmemberAccountInfoAloneListInPage(memberEntity, request)); return new FebsResponse().success().data(data); } /** * 返佣明细---列表 */ @GetMapping("memberAgentReturnInfo") src/main/java/com/xcong/excoin/modules/trademanage/controller/ViewController.java
@@ -42,6 +42,15 @@ public String accountInfo() { return FebsUtil.view("modules/trademanage/accountInfo"); } /** * 账户信息---alone * @return */ @GetMapping("accountInfoAlone") @RequiresPermissions("accountInfoAlone:view") public String accountInfoAlone() { return FebsUtil.view("modules/trademanage/accountInfoAlone"); } /** * 返佣明细 src/main/java/com/xcong/excoin/modules/trademanage/service/TradeManageService.java
@@ -35,4 +35,6 @@ IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneInPage(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request); IPage<MemberAccountInfoVo> findmemberAccountInfoAloneListInPage(MemberEntity memberEntity, QueryRequest request); } src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -267,6 +267,46 @@ } return findMemberAccountInfoListInPage; } @Override public IPage<MemberAccountInfoVo> findmemberAccountInfoAloneListInPage(MemberEntity memberEntity, QueryRequest request) { Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneListInPage(page, memberEntity); List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords(); if(records.size() > 0) { for(MemberAccountInfoVo memberAccountInfoVo : records) { Long memberId = memberAccountInfoVo.getId(); Map<String, Object> columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap ); if(selectByMap != null && selectByMap.size() > 0) { MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0); String firstName = memberAuthenticationEntity.getFirstName(); String secondName = memberAuthenticationEntity.getSecondName(); String realName = firstName + secondName; memberAccountInfoVo.setRealName(realName); } //总盈亏 String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId); BigDecimal bd=new BigDecimal(rewardratioByMid); memberAccountInfoVo.setRewardratioByMid(bd); String inviteId = memberMapper.selectAgentForAccount(memberId); if("".equals(inviteId) || inviteId == null) { memberAccountInfoVo.setIsSuAccount(0); }else { memberAccountInfoVo.setIsSuAccount(1); } List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } src/main/java/com/xcong/excoin/modules/trademanage/vo/MemberAccountInfoVo.java
@@ -59,5 +59,10 @@ * 代理可用金额 */ private BigDecimal agentAvailableBalance; /** * 姓名 */ private String realName; } src/main/resources/mapper/modules/MemberMapper.xml
@@ -81,6 +81,38 @@ order by m.create_time desc </select> <select id="findMemberAccountInfoAloneListInPage" resultType="com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo"> SELECT m.id, m.phone, m.email, m.invite_id inviteId, a.available_balance walletCoinAvailableBalance, a.total_balance walletCoinTotalBalance, a.frozen_balance walletCoinFrozenBalance, b.available_balance walletAvailableBalance, b.total_balance walletTotalBalance, b.frozen_balance walletFrozenBalance FROM member m LEFT JOIN member_wallet_coin b ON m.id = b.member_id LEFT JOIN member_wallet_contract a ON a.member_id = m.id <where> b.wallet_code = 'USDT' and ( FIND_IN_SET('22015141', m.referer_ids) OR m.id = 10 ) <if test="record.account!=null and record.account!=''"> and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account}) </if> <if test="record.isTest!=null and record.isTest!=''"> and m.account_type= #{record.isTest} </if> </where> order by m.create_time desc </select> <select id="selectAgentForAccount" resultType="java.lang.String"> select invite_id from agent_friend_relation where member_id = #{memberId} </select> src/main/resources/templates/febs/views/modules/trademanage/accountInfoAlone.html
New file @@ -0,0 +1,131 @@ <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="isTest"> <option value=""></option> <option value="1">正常账号</option> <option value="2">测试账号</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> <!-- 表格操作栏 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: '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}}); }); function initTable() { tableIns = febs.table.init({ elem: $view.find('table'), id: 'userTable', url: ctx + 'tradeManage/memberAccountInfoAlone', totalRow: true, cols: [[ {field: 'phone', title: '手机号', minWidth: 100,align:'left'}, {field: 'realName', title: '姓名', minWidth: 100,align:'left'}, {field: 'email', title: '邮箱', minWidth: 200,align:'left'}, {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'}, {field: 'rewardratioByMid', title: '盈亏', templet: function (d) { if (d.rewardratioByMid > 0) { return '<span style="color:green;">'+d.rewardratioByMid+'</span>' } else { return '<span style="color:red;">'+d.rewardratioByMid+'</span>' } }, minWidth: 80,align:'center',totalRow: true}, {field: 'accountType', title: '账号类型', templet: function (d) { if (d.accountType === 2) { return '<span style="color:red;">测试账号</span>' } else { return '<span style="color:green;">正常账号</span>' } },minWidth: 100,align:'center'}, {field: 'walletAvailableBalance', title: '币币可用', minWidth: 80,align:'center',totalRow: true}, {field: 'walletFrozenBalance', title: '币币冻结', minWidth: 80,align:'center',totalRow: true}, {field: 'walletCoinAvailableBalance', title: '合约可用', minWidth: 80,align:'center',totalRow: true}, {field: 'walletCoinFrozenBalance', title: '合约冻结', minWidth: 80,align:'center',totalRow: true}, {field: 'walletCoinTotalBalance', title: '合约总金额', minWidth: 80,align:'center',totalRow: true}, {field: 'isSuAccount', title: '是否是代理', templet: function (d) { if (d.isSuAccount === 1) { return '<span style="color:green;">是</span>' } else if (d.isSuAccount === 0) { return '<span style="color:red;">否</span>' } else { return '' } }, minWidth: 80,align:'center',totalRow: true}, {field: 'agentAvailableBalance', title: '代理账户', minWidth: 80,align:'center',totalRow: true} ]] }); } // 获取查询参数 function getQueryParams() { return { account: $searchForm.find('input[name="account"]').val().trim(), isTest: $searchForm.find("select[name='isTest']").val() }; } }) </script>