xiaoyong931011
2020-06-29 62caaece670b9ca7b61fd8bc8e2aaef2b1707417
20200629  代码提交
1 files deleted
12 files modified
2 files added
668 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/DataInfoController.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/dto/MemberDataInfoDto.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/dto/MemberDetailConfirmDto.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java 37 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 74 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/vo/MemberDataInfoVo.java 45 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml 3 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MemberMapper.xml 286 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/extractUsdt.html 6 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html 89 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/memberDetail.html 7 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/withdrawCoin.html 56 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/DataInfoController.java
File was deleted
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -4,6 +4,7 @@
import com.xcong.excoin.common.controller.BaseController;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDataInfoDto;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
@@ -126,14 +127,6 @@
     */
    @GetMapping("memberWithdrawCoin")
    public FebsResponse memberWithdrawCoin(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) {
        String isInside = memberCoinWithdrawEntity.getIsInside();
        if(!"".equals(isInside) && isInside != null) {
            if("1".equals(isInside)) {
                memberCoinWithdrawEntity.setIsInside("Y");
            }else {
                memberCoinWithdrawEntity.setIsInside("N");
            }
        }
        Map<String, Object> data = getDataTable(memberService.findmemberWithdrawCoinListInPage(memberCoinWithdrawEntity, request));
        return new FebsResponse().success().data(data);
    }
@@ -158,4 +151,14 @@
        return memberService.memberWithdrawCoinCancel(id);
    }
    
    /**
     * 用户详细信息---列表
     */
    @GetMapping("memberDataInfo")
    public FebsResponse memberDataInfo(MemberEntity memberEntity, QueryRequest request) {
        Map<String, Object> data = getDataTable(memberService.findMemberDataInfoDtoListInPage(memberEntity, request));
        return new FebsResponse().success().data(data);
    }
}
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
@@ -29,11 +29,13 @@
    
    private final IMemberService memberService;
    
    @GetMapping("memberDataInfo/{id}")
    /**
     * 基础数据
     * @return
     */
    @GetMapping("memberDataInfo")
    @RequiresPermissions("memberDataInfo:view")
    public String memberDataInfo(@PathVariable long id, Model model) {
        List<MemberCoinChargeEntity> data = memberService.selectMemberDataInfoById(id);
        model.addAttribute("memberCoinChargeEntity", data);
    public String memberDataInfo() {
        return FebsUtil.view("modules/member/memberDataInfo");
    }
    
src/main/java/com/xcong/excoin/modules/member/dto/MemberDataInfoDto.java
New file
@@ -0,0 +1,5 @@
package com.xcong.excoin.modules.member.dto;
public class MemberDataInfoDto {
}
src/main/java/com/xcong/excoin/modules/member/dto/MemberDetailConfirmDto.java
@@ -10,4 +10,7 @@
    @NotNull(message = "ID不能为空")
    private Long id;
    
    @NotNull(message = "ID不能为空")
    private int isok;
}
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.vo.MemberDataInfoVo;
import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo;
import org.apache.ibatis.annotations.Param;
@@ -15,11 +16,47 @@
public interface MemberMapper extends BaseMapper<MemberEntity> {
    IPage<MemberEntity> selectMemberListInPage(Page<MemberEntity> page, @Param("record") MemberEntity memberEntity);
    IPage<MemberDataInfoVo> selectMemberDataInfoDtoListInPage(Page<MemberEntity> page, @Param("record") MemberEntity memberEntity);
    IPage<MemberAccountInfoVo> findMemberAccountInfoListInPage(Page<MemberEntity> page, @Param("record")MemberEntity memberEntity);
    
    String selectAgentForAccount(long memberId);
    
    String selectTradeSetting();
    String selectMemberDataInfoCount();
    String selectTotalAmountUsdtBForBasicRealData();
    String selectTotalAmountUsdtSForBasicRealData();
    String selectTotalAmountUsdtCZForBasicRealData();
    String selectTotalAmountUsdtTXForBasicRealData();
    String selectReturnMoneyForBasicRealData();
    String selectClosingpriceForBasicRealData();
    String selectSellClosingpriceForBasicRealData();
    String selectRewardratioForBasicRealData();
    String selectZCYHForBasicRealData();
    String selectSFCCForBasicRealData();
    String selectBBZHForBasicRealData();
    String selectHYZHForBasicRealData();
    String selectprepriceForBasicRealData();
    String selectBBZCForBasicRealData();
    String selectHYZCForBasicRealData();
    String selectDLZCForBasicRealData();
    
}
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDataInfoDto;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
@@ -17,6 +18,7 @@
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo;
import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo;
import com.xcong.excoin.modules.member.vo.MemberDataInfoVo;
import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo;
import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo;
@@ -53,4 +55,6 @@
    List<MemberCoinChargeEntity> selectMemberDataInfoById(long id);
    IPage<MemberDataInfoVo> findMemberDataInfoDtoListInPage(MemberEntity memberEntity, QueryRequest request);
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -26,6 +26,7 @@
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo;
import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo;
import com.xcong.excoin.modules.member.vo.MemberDataInfoVo;
import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo;
import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo;
@@ -419,11 +420,14 @@
        if(!MemberEntity.CERTIFY_STATUS_ING.equals(certifyStatus)) {
            return new FebsResponse().fail().message("只有【待审核】状态才能提交!");
        }
        MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id);
        selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y);
        selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo());
        
        if(memberDetailConfirmDto.getIsok() == 1) {
            selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y);
        }else {
            selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_N);
        }
        selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo());
        memberMapper.updateById(selectById);
        return new FebsResponse().success();
    }
@@ -433,8 +437,68 @@
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("member_id", id);
        List<MemberCoinChargeEntity> selectByMap = memberCoinChargeMapper.selectByMap(columnMap);
        // TODO Auto-generated method stub
        return null;
        return selectByMap;
    }
    @Override
    public IPage<MemberDataInfoVo> findMemberDataInfoDtoListInPage(MemberEntity memberEntity,
            QueryRequest request) {
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.selectMemberDataInfoDtoListInPage(page, memberEntity);
        //USDT充币总额+USDT提币总额
        String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealData();
        String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealData();
        //USDT充值总额+USDT提现总额
        String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealData();
        String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealData();
        //佣金
        String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealData();
        //开仓手续费总额
        String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealData();
        //平仓总手续费
        String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealData();
        //总盈亏
        String rewardratioByMid = memberMapper.selectRewardratioForBasicRealData();
        //持仓人数
        String notNullNumber = memberMapper.selectSFCCForBasicRealData();
        //币币账户不为空的人数
        String walletNumber = memberMapper.selectBBZHForBasicRealData();
        //合约账户不为空的人数
        String walletCoinNumber = memberMapper.selectHYZHForBasicRealData();
        //持仓手续费
        String doingPrice = memberMapper.selectprepriceForBasicRealData();
        //账户金额
        String walletNum = memberMapper.selectBBZCForBasicRealData();
        String walletCoinNum = memberMapper.selectHYZCForBasicRealData();
        String agentNum = memberMapper.selectDLZCForBasicRealData();
        double platformProfitAndLoss = 0 ;
        platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
        platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
        platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
        platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
        List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
        for(MemberDataInfoVo memberDataInfoVo : records) {
            memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
            memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
            memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
            memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
            memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
            memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
            memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
            memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
            memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
            memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
            memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
            memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
            memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
            memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
            memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
            memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
        }
        selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
    }
}
src/main/java/com/xcong/excoin/modules/member/vo/MemberDataInfoVo.java
New file
@@ -0,0 +1,45 @@
package com.xcong.excoin.modules.member.vo;
import lombok.Data;
@Data
public class MemberDataInfoVo {
    private int memberCount;//注册人数
    private String notNullNumber;//持仓人数
    private String walletNumber;//币币账户不为空的人数
    private String walletCoinNumber;//合约账户不为空的人数
    private String platformProfitAndLoss;//平台总盈亏
    private String walletNum;//币币余额
    private String walletCoinNum;//合约余额
    private String agentNum;//代理账户余额
    private double avalableCoin;//币币可用
    private double totalCoin;//总资产
    private double avalableContract;//合约可用
    private double totalContract;//合约总
    private double chargeUsdt;//充值USDT
    private double appealUsdt;//提现USDT
    private double chargeCoin;//充币
    private double appealCoin;//提币
    private String fee;//佣金
    private String closingPrice;//开仓费
    private String sellClosingPrice;//平仓费
    private String doingPrice;//持仓费
    private String yingkui;
}
src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml
@@ -19,7 +19,8 @@
                    and s.status= #{record.status}
                </if>
            </if>
        </where>
        </where>
        order by s.create_time desc
    </select>
</mapper>
src/main/resources/mapper/modules/MemberMapper.xml
@@ -61,5 +61,289 @@
    <select id="selectTradeSetting" resultType="java.lang.String">
        select profit_param from platform_trade_setting 
    </select>
    <select id="selectMemberDataInfoDtoListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberDataInfoVo">
        select COUNT(m.id) as memberCount  from member m
    </select>
    <select id="selectTotalAmountUsdtBForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.amount),'0')  as amount
        FROM
            member_coin_charge a
        WHERE
            a.symbol = 'USDT'
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectTotalAmountUsdtSForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.amount),'0') as amount
        FROM
            member_coin_withdraw a
        WHERE
            a. STATUS = 2
        AND a.is_inside = 'N'
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectTotalAmountUsdtCZForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(amount_usdt),'0')
        FROM
            member_quick_buy_sale
        WHERE
            order_type = 'B'
        AND order_status = 3
        AND member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectTotalAmountUsdtTXForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(amount_usdt),'0')
        FROM
            member_quick_buy_sale
        WHERE
            order_type = 'S'
        AND order_status = 2
        AND member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectReturnMoneyForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(s.amount),'0')
        FROM
            member_account_money_change s
        WHERE
            s.type = 3
        AND s.content LIKE '%佣金入账%'
        AND s. STATUS = '1'
        AND s.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectClosingpriceForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.opening_fee_amount),'0')
        FROM
            contract_order a
        WHERE
            a.closing_type IN (2, 3)
            and a.order_status = '1'
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectSellClosingpriceForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.closing_fee_amount),'0')
        FROM
            contract_order a
        WHERE
            a.closing_type IN (4, 5, 6, 7, 8, 9)
            and a.order_status = '1'
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectRewardratioForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.reward_amount),'0')
        FROM
            contract_order a
        WHERE
            a.closing_type IN (4, 5, 6, 7, 8, 9)
            and a.order_status = '1'
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
            AND a.member_id NOT IN (
                SELECT
                    id
                FROM
                    member
                WHERE
                    account_type = '1'
                AND account_status = '1'
            )
        )
    </select>
    <select id="selectSFCCForBasicRealData" resultType="java.lang.String">
        SELECT
            COUNT(b.id)
        FROM
            (
                SELECT
                    a.id
                FROM
                    contract_order a
                WHERE
                    a. closing_type IN (2, 3)
                    AND a.member_id NOT IN (
                        SELECT
                            id
                        FROM
                            member
                        WHERE
                            account_type = '1'
                        AND account_status = '1'
                    )
                GROUP BY
                    a.member_id
            ) b
    </select>
    <select id="selectBBZHForBasicRealData" resultType="java.lang.String">
        SELECT
            COUNT(a.id)
        FROM
            member_wallet_coin a
        WHERE
            a.wallet_code = 'USDT'
        AND a.available_balance > 1
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectHYZHForBasicRealData" resultType="java.lang.String">
        SELECT
            COUNT(a.id)
        FROM
            member_wallet_contract a
        WHERE
            a.wallet_code = 'USDT'
        AND a.total_balance > 1
        AND a.member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectprepriceForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.hold_amount),'0')
        FROM
            contract_order a
        WHERE
            a.member_id NOT IN (
                SELECT
                    id
                FROM
                    member
                WHERE
                    account_type = '1'
                AND account_status = '1'
            )
    </select>
    <select id="selectBBZCForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(available_balance),'0')
        FROM
            member_wallet_coin
        WHERE
            wallet_code = 'USDT'
        AND member_id NOT IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
            AND account_status = '1'
        )
    </select>
    <select id="selectHYZCForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(total_balance),'0')
        FROM
            member_wallet_contract
        WHERE
            member_id NOT IN (
                SELECT
                    id
                FROM
                    member
                WHERE
                    account_type = '1'
                AND account_status = '1'
            )
    </select>
    <select id="selectDLZCForBasicRealData" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(total_balance),'0')
        FROM
            member_wallet_agent
        WHERE
            member_id NOT IN (
                SELECT
                    id
                FROM
                    member
                WHERE
                    account_type = '1'
                AND account_status = '1'
            )
    </select>
</mapper>
src/main/resources/templates/febs/views/modules/member/extractUsdt.html
@@ -17,7 +17,7 @@
                                        <div class="layui-input-inline">
                                            <select name="orderStatus">
                                                <option value="0"></option>
                                                <option value="1">待审核</option>
                                                <option value="1">待付款</option>
                                                <option value="2">已付款</option>
                                                <option value="3">已审核</option>
                                                <option value="4">撤单</option>
@@ -51,7 +51,7 @@
<script type="text/html" id="order-Status">
    {{#
    var orderStatus = {
    1: {title: '待审核' , color: 'gray'},
    1: {title: '待付款' , color: 'gray'},
    2: {title: '已付款' , color: 'red'},
    3: {title: '已审核' , color: 'green'},
    4: {title: '撤单' , color: 'gray'},
@@ -183,7 +183,7 @@
                    {field: 'bank', title: '所属银行', minWidth: 150,align:'center'},
                    {title: '操作', 
                        templet: function (d) {
                            if (d.orderStatus === 2) {
                            if (d.orderStatus === 1) {
                                return '<a lay-event="confirm" shiro:hasPermission="user:delete">付款</a>'
                                +'<i class="layui-icon febs-edit-area febs-blue">&#xe7a4;</i>'
                                +'<a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>'
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html
@@ -1,65 +1,90 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="用户详细信息">
<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">
                        </form>
                    <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- 表格字段状态格式化 start -->
<script type="text/html" id="status">
    {{#
    var status = {
    1: {title: '已到账' , color: 'green'},
    0: {title: '已到账' },
    2: {title: '已到账' },
    3: {title: '已到账' },
    4: {title: '已到账' }
    }[d.status];
    }}
    <span class="layui-badge febs-tag-{{status.color}}">{{ status.title }}</span>
<!-- 表格操作栏 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>
</script>
<!-- 表格字段状态格式化 start -->
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
    // 引入组件并初始化
    layui.use(['jquery', 'form', 'table', 'febs'], function () {
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            dropdown = layui.dropdown,
            $view = $('#febs-user'),
            tableIns;
            $reset = $view.find('#reset'),
            $add = $view.find('#add'),
            $searchForm = $view.find('form'),
            sortObject = {field: 'title', type: null},
            tableIns
            ;
        form.render();
        // 表格初始化
        initTable();
         // 刷新按钮
        $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 + 'member/memberApplyCoin',
                totalRow: true,
                url: ctx + 'member/memberDataInfo',
                cols: [[
                    {field: 'phone', title: '手机号码111111', minWidth: 120,align:'left',totalRowText: '合计'},
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 60,align:'center'},
                    {field: 'tag', title: 'USDT类型', minWidth: 60,align:'center'},
                    {field: 'amount', title: '充币数量', minWidth: 100,align:'center',totalRow: true},
                    {field: 'lastAmount', title: '本次余额', minWidth: 100,align:'center'},
                    {field: 'address', title: '平台钱包地址', minWidth: 280,align:'center'},
                    {field: 'createTime', title: '创建时间', minWidth: 200,align:'center'},
                    {title: '状态', templet: '#status', minWidth: 100,align:'center'}
                    {field: 'memberCount', title: '注册用户数', minWidth: 120,align:'center'},
                    {field: 'notNullNumber', title: '持仓用户数', minWidth: 120,align:'center'},
                    {field: 'walletNumber', title: '币币账户有余额个数', minWidth: 200,align:'center'},
                    {field: 'walletNum', title: '币币账户余额', minWidth: 200,align:'center'},
                    {field: 'walletCoinNumber', title: '合约账户有余额个数', minWidth: 200,align:'center'},
                    {field: 'agentNum', title: '合约账户余额', minWidth: 200,align:'center'},
                    {field: 'platformProfitAndLoss', title: '平台剩余USDT',
                        templet: function (d) {
                            if (d.platformProfitAndLoss > '0') {
                                return '<span style="color:green;">'+d.platformProfitAndLoss+'</span>'
                            } else {
                                return '<span style="color:red;">'+d.platformProfitAndLoss+'</span>'
                            }
                        }, minWidth: 200,align:'center'},
                    {field: 'chargeCoin', title: '充币', minWidth: 200,align:'center'},
                    {field: 'appealCoin', title: '提币', minWidth: 200,align:'center'},
                    {field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'},
                    {field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'},
                    {field: 'fee', title: '佣金', minWidth: 200,align:'center'},
                    {field: 'closingPrice', title: '开仓手续费', minWidth: 200,align:'center'},
                    {field: 'sellClosingPrice', title: '平仓手续费', minWidth: 200,align:'center'},
                    {field: 'doingPrice', title: '持仓手续费', minWidth: 200,align:'center'},
                    {field: 'yingkui', title: '订单盈亏',
                        templet: function (d) {
                            if (d.yingkui > '0') {
                                return '<span style="color:green;">'+d.yingkui+'</span>'
                            } else {
                                return '<span style="color:red;">'+d.yingkui+'</span>'
                            }
                        }, minWidth: 200,align:'center'}
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/modules/member/memberDetail.html
@@ -78,6 +78,13 @@
                <img alt="头像" data-th-src="${member.idcardImageInHand}">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">是否同意:</label>
            <div class="layui-input-block">
                <input type="radio" name="isok" value="1" title="同意">
                <input type="radio" name="isok" value="0" title="拒绝" checked="">
            </div>
        </div>
        <div class="layui-form-item febs-hide">
            <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button>
        </div>
src/main/resources/templates/febs/views/modules/member/withdrawCoin.html
@@ -28,8 +28,8 @@
                                        <div class="layui-input-inline">
                                            <select name="isInsideOption">
                                                <option value=""></option>
                                                <option value="1">是</option>
                                                 <option value="0">否</option>
                                                <option value="Y">是</option>
                                                 <option value="N">否</option>
                                            </select>
                                        </div>
                                    </div>
@@ -51,29 +51,6 @@
        </div>
    </div>
</div>
<!-- 表格字段状态格式化 start -->
<script type="text/html" id="isInside">
    {{#
    var isInside = {
    Y: {title: '是' , color: 'red'},
    N: {title: '否' , color: 'green'},
    }[d.isInside];
    }}
    <span class="layui-badge febs-tag-{{isInside.color}}">{{ isInside.title }}</span>
</script>
<script type="text/html" id="status">
    {{#
    var status = {
    1: {title: '等待审核' , color: 'blue'},
    2: {title: '同意', color: 'green'},
    3: {title: '拒绝' , color: 'red'}
    }[d.status];
    }}
    <span class="layui-badge febs-tag-{{status.color}}">{{ status.title }}</span>
</script>
<!-- 表格字段状态格式化 start -->
<!-- 表格操作栏 start -->
<script type="text/html" id="user-option">
    <span shiro:lacksPermission="user:view,user:update,user:delete">
@@ -129,11 +106,6 @@
                    cancelUsers(data.id);
                });
            }
            if (layEvent === 'see') {
                febs.modal.open( '用户详细信息', 'modules/member/memberDataInfo/' + data.id, {
                    maxmin: true,
                });
            }
        });
        
        function confirmUsers(id) {
@@ -174,18 +146,34 @@
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                    {field: 'inviteId', title: '邀请码UID',
                        templet: function (d) {
                            return '<a lay-event="see" shiro:hasPermission="user:delete">'+d.inviteId+'</a>'
                            return '<a lay-event="see">'+d.inviteId+'</a>'
                        }, minWidth: 80,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 100,align:'center'},
                    {field: 'amount', title: '提币数量', minWidth: 120,align:'center' ,totalRow: true},
                    {field: 'address', title: '提币地址', minWidth: 300,align:'center'},
                    {field: 'feeAmount', title: '提币手续费', minWidth: 100,align:'center', totalRow: true},
                    {field: 'createTime', title: '提币时间', minWidth: 180,align:'center'},
                    {title: '内部转账', templet: '#isInside', minWidth: 100,align:'center'},
                    {title: '状态', templet: '#status', minWidth: 100,align:'center'},
                    {field: 'isInside', title: '内部转账',
                        templet: function (d) {
                            if (d.isInside === 'Y') {
                                return '<span style="color:red;">是</span>'
                            } else {
                                return '<span style="color:green;">否</span>'
                            }
                        },minWidth: 100,align:'center'},
                    {field: 'status', title: '状态',
                        templet: function (d) {
                            if (d.status === 1) {
                                return '<span style="color:blue;"> 等待审核 </span>'
                            } else if (d.status === 2) {
                                return '<span style="color:green;">同意 </span>'
                            } else {
                                return '<span style="color:red;">拒绝</span>'
                            }
                        },minWidth: 100,align:'center'},
                    {title: '操作', 
                        templet: function (d) {
                            if (d.orderStatus === 1) {
                            if (d.status === 1) {
                                return '<a lay-event="confirm" shiro:hasPermission="user:delete">确认</a>'
                                +'<i class="layui-icon febs-edit-area febs-blue">&#xe7a4;</i>'
                                +'<a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>'