xiaoyong931011
2021-03-02 4348e057d9b2894a533ba116e21216610934eef0
20210321  后台数据查询修改
1 files added
16 files modified
845 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 9 ●●●●● 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/entity/MemberCoinWithdrawEntity.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java 1 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 97 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractHoldOrderEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractOrderEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml 3 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ContractOrderMapper.xml 14 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml 13 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MemberMapper.xml 271 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html 130 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html 184 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/trademanage/contractHoldOrder.html 20 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/trademanage/historyOrder.html 44 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -437,6 +437,15 @@
        Map<String, Object> data = getDataTable(memberService.findMemberApplyCoinListInPage(memberCoinChargeEntity, request));
        return new FebsResponse().success().data(data);
    }
    /**
     * 平台全部信息---列表Test===加查询
     */
    @GetMapping("allDataInfo")
    public FebsResponse allDataInfo(MemberEntity memberEntity, QueryRequest request) {
        Map<String, Object> data = getDataTable(memberService.findAllDataInfoListInPage(memberEntity, request));
        return new FebsResponse().success().data(data);
    }
    
    
}
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
@@ -27,6 +27,16 @@
public class ViewController extends BaseController{
    
    private final IMemberService memberService;
    /**
     * 平台全部信息
     * @return
     */
    @GetMapping("allDataInfoView")
    @RequiresPermissions("allDataInfoView:view")
    public String allDataInfoView() {
        return FebsUtil.view("modules/member/allData/allDataInfo");
    }
    
    @GetMapping("addCoin/{id}")
    @RequiresPermissions("addCoin:update")
src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinWithdrawEntity.java
@@ -68,6 +68,8 @@
     */
    @TableField(exist = false)
    private String isTest;
    @TableField(exist = false)
    private String inviteId;
    
}
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -24,6 +24,11 @@
     */
    private static final long serialVersionUID = 1L;
    /**
     * 系统推荐人id
     */
    public static final String SYSTEM_REFERER = "rxadr3";
    /**
     * 账号状态 - 禁用
     */
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
@@ -380,7 +380,6 @@
    String selectBBZCForDataInfoOneAllReal();
    String selectHYZCForDataInfoOneAllReal();
    String selectDLZCForDataInfoOneAllReal();
    IPage<MemberDataInfoVo> findMemberDataInfoOneAllRealInPage(Page<MemberEntity> page, @Param("record")MemberEntity memberEntity);
    String selectWalletAvailableBalanceBymemberId(@Param("memberId")Long memberId);
@@ -390,5 +389,36 @@
    IPage<MemberAccountMoneyChangeEntity> memberBoBiList(Page<MemberAccountMoneyChangeEntity> page,
            @Param("record")MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity);
    MemberEntity selectMemberByAccount(@Param("account")String account);
    IPage<MemberDataInfoVo> findMemberDataInfoOneAllRealInPage(Page<MemberEntity> page, @Param("record")MemberEntity memberEntity);
    String selectClosingpriceForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectTotalAmountUsdtBForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectTotalAmountUsdtSForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectTotalAmountUsdtCZForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectTotalAmountUsdtTXForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectReturnMoneyForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectRewardratioForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectSFCCForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectBBZHForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectHYZHForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectprepriceForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectBBZCForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectHYZCForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectDLZCForAllDataInfo(@Param("record")MemberEntity memberEntity);
    String selectSellClosingpriceForForAllDataInfo(@Param("record")MemberEntity memberEntity);
    
}
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
@@ -133,4 +133,5 @@
    IPage<MemberAccountMoneyChangeEntity> memberBoBiList(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request);
    IPage<MemberDataInfoVo> findAllDataInfoListInPage(MemberEntity memberEntity, QueryRequest request);
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -3,10 +3,14 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.configure.FebsConfigure;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.Sms106Send;
@@ -421,8 +425,24 @@
    @Override
    public IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage(
            MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) {
        Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        //查询条件 查询某条线下的所有数据
        String account = memberCoinWithdrawEntity.getAccount();
        //如果account为空,查询全部,account不为空查询对应的memberEntity
        if(StrUtil.isNotEmpty(account)) {
            MemberEntity selectMemberByAccount = memberMapper.selectMemberByAccount(account);
            String inviteId = selectMemberByAccount.getInviteId();
            Long id = selectMemberByAccount.getId();
            memberCoinWithdrawEntity.setMemberId(id);
            memberCoinWithdrawEntity.setInviteId(inviteId);
        }else {
            MemberEntity memberEntity = memberMapper.selectMemberByAccount(MemberEntity.SYSTEM_REFERER);
            String inviteId = memberEntity.getInviteId();
            Long id = memberEntity.getId();
            memberCoinWithdrawEntity.setMemberId(id);
            memberCoinWithdrawEntity.setInviteId(inviteId);
        }
        
        Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberCoinWithdrawVo> findmemberQuickBuySaleListInPage = memberCoinWithdrawMapper.findmemberWithdrawCoinListInPage(page, memberCoinWithdrawEntity);
        List<MemberCoinWithdrawVo> records = findmemberQuickBuySaleListInPage.getRecords();
        if(records != null && records.size() > 0) {
@@ -2182,4 +2202,79 @@
        return findmemberQuickBuySaleListInPage;
    }
    @Override
    public IPage<MemberDataInfoVo> findAllDataInfoListInPage(MemberEntity memberEntity, QueryRequest request) {
        String account = memberEntity.getAccount();
        String isTest = memberEntity.getIsTest();
        //如果account为空,查询全部,account不为空查询对应的memberEntity
        if(StrUtil.isNotEmpty(account)) {
            memberEntity = memberMapper.selectMemberByAccount(account);
        }else {
            memberEntity = memberMapper.selectMemberByAccount(MemberEntity.SYSTEM_REFERER);
        }
        memberEntity.setIsTest(isTest);
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.findMemberDataInfoOneAllRealInPage(page, memberEntity);
        //USDT充币总额+USDT提币总额
        String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForAllDataInfo(memberEntity);
        String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForAllDataInfo(memberEntity);
        String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForAllDataInfo(memberEntity);
        String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForAllDataInfo(memberEntity);
        //佣金
        String returnMoneyByMid = memberMapper.selectReturnMoneyForAllDataInfo(memberEntity);
        //开仓手续费
        String closingpriceByMid = memberMapper.selectClosingpriceForAllDataInfo(memberEntity);
        //平仓总手续费
        String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForForAllDataInfo(memberEntity);
        //总盈亏
        String rewardratioByMid = memberMapper.selectRewardratioForAllDataInfo(memberEntity);
        //持仓人数
        String notNullNumber = memberMapper.selectSFCCForAllDataInfo(memberEntity);
        //币币账户不为空的人数
        String walletNumber = memberMapper.selectBBZHForAllDataInfo(memberEntity);
        //合约账户不为空的人数
        String walletCoinNumber = memberMapper.selectHYZHForAllDataInfo(memberEntity);
        //持仓手续费
        String doingPrice = memberMapper.selectprepriceForAllDataInfo(memberEntity);
        //账户金额
        String walletNum = memberMapper.selectBBZCForAllDataInfo(memberEntity);
        String walletCoinNum = memberMapper.selectHYZCForAllDataInfo(memberEntity);
        String agentNum = memberMapper.selectDLZCForAllDataInfo(memberEntity);
        double allCoin = 0 ;
        allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
                +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
                +(agentNum == null ? 0 : Double.parseDouble(agentNum));
        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);
            memberDataInfoVo.setAllCoin(allCoin);
        }
        selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
    }
}
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractHoldOrderEntity.java
@@ -102,6 +102,11 @@
    private int openingType;
    /**
     * 1普通合约2跟单合约
     */
    private int contractType;
    /**
     * 开仓手续费
     */
    private BigDecimal openingFeeAmount;
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractOrderEntity.java
@@ -132,6 +132,11 @@
    private int closingType;
    /**
     * 1普通合约2跟单合约
     */
    private int contractType;
    /**
     * 杠杆倍率
     */
    private int leverRatio;
src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml
@@ -13,6 +13,9 @@
                <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.contractType!=null and record.contractType!=''">
                    and m.contract_type= #{record.contractType}
                </if>
                 <if test="record.isTest!=null and record.isTest!=''">
                    and m.account_type= #{record.isTest}
                </if>
src/main/resources/mapper/modules/ContractOrderMapper.xml
@@ -103,14 +103,6 @@
        LEFT JOIN member m ON m.id = s.member_id
        <where>
        s.closing_type in (2,3,4,5,6,7,8,9)
        AND s.member_id IN (
            SELECT
                id
            FROM
                member
            WHERE
                account_type = '1'
        )
            <if test="record != null" >
                <if test="record.account!=null and record.account!=''">
                    and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
@@ -118,6 +110,12 @@
                <if test="record.closingType!=null and record.closingType!=''">
                    and s.closing_type = #{record.closingType}
                </if>
                <if test="record.accountType!=null and record.accountType!=''">
                    and m.account_type = #{record.accountType}
                </if>
                <if test="record.contractType!=null and record.contractType!=''">
                    and s.contract_type = #{record.contractType}
                </if>
            </if>
        </where>
            order by s.opening_time desc
src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml
@@ -108,16 +108,15 @@
        FROM
            member_coin_withdraw s left join member m on m.id = s.member_id
         <where>
             s.member_id not in (26,187,454)
             s.member_id in (select id from member a where
                 ( FIND_IN_SET(#{record.inviteId}, a.referer_ids) or a.id = #{record.memberId} )
                 <if test="record.isTest != null and record.isTest != '' ">
                     and a.account_type = #{record.isTest}
                 </if>
             )
            <if test="record != null" >
                <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.isInside!=null and record.isInside!=''">
                    and s.is_inside= #{record.isInside}
                </if>
                <if test="record.isTest!=null and record.isTest!=''">
                    and m.account_type= #{record.isTest}
                </if>
                <if test="record.status!=null and record.status!=''">
                    and s.status= #{record.status}
src/main/resources/mapper/modules/MemberMapper.xml
@@ -2,6 +2,249 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.member.mapper.MemberMapper">
    <select id="selectSellClosingpriceForForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.closing_fee_amount),'0')
        FROM
            contract_order a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.closing_type IN (2,3,4, 5, 6, 7, 8, 9)
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectDLZCForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(total_balance),'0')
        FROM
            member_wallet_agent a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectHYZCForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(total_balance),'0')
        FROM
            member_wallet_contract a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectBBZCForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(available_balance),'0')
        FROM
            member_wallet_coin a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.wallet_code = 'USDT'
            AND ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectprepriceForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.hold_amount),'0')
        FROM
            contract_order a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectHYZHForAllDataInfo" resultType="java.lang.String">
        SELECT
            COUNT(a.id)
        FROM
            member_wallet_contract a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.wallet_code = 'USDT'
            AND a.total_balance > 1
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectBBZHForAllDataInfo" resultType="java.lang.String">
        SELECT
            COUNT(a.id)
        FROM
            member_wallet_coin a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.wallet_code = 'USDT'
            AND a.available_balance > 1
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectSFCCForAllDataInfo" resultType="java.lang.String">
        SELECT
            COUNT(b.id)
        FROM
            (
                SELECT
                    s.id
                FROM
                    contract_hold_order s
                WHERE
                        s.member_id IN (
                        SELECT
                            id
                        FROM
                            member m
                        <where>
                            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
                            <if test="record.isTest != null and record.isTest != '' ">
                                and m.account_type = #{record.isTest}
                            </if>
                        </where>
                    )
                GROUP BY
                    s.member_id
            ) b
    </select>
    <select id="selectRewardratioForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.reward_amount), '0')
        FROM
            contract_order a
                LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.closing_type IN (2,3,4, 5, 6, 7, 8, 9)
            AND a.order_status = '1'
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectReturnMoneyForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(s.amount), '0')
        FROM
            member_account_money_change s
                LEFT JOIN member m ON m.id = s.member_id
        <where>
            s.type = 3
            AND s.content LIKE '%佣金到账%'
            AND s. STATUS = '1'
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectTotalAmountUsdtTXForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(amount_usdt),'0')
        FROM
            member_quick_buy_sale a
                LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.order_type = 'S'
            AND a.order_status = 2
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectTotalAmountUsdtCZForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(amount_usdt),'0')
        FROM
            member_quick_buy_sale a
                LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.order_type = 'B'
            AND a.order_status = 3
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectTotalAmountUsdtSForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(a.amount),'0') as amount
        FROM
            member_coin_withdraw a
                LEFT JOIN member m ON m.id = a.member_id
        <where>
            a. STATUS = 2
            AND a.is_inside = 'N'
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectTotalAmountUsdtBForAllDataInfo" resultType="java.lang.String">
        SELECT
            IFNULL(SUM(s.amount),'0')  as amount
        FROM
            member_coin_charge s
                LEFT JOIN member m ON m.id = s.member_id
        <where>
            s.symbol = 'USDT'
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectMemberByAccount" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
        SELECT
            *
        FROM
            member m where m.invite_id = #{account} or m.phone = #{account} or m.email = #{account}
    </select>
    <select id="selectClosingpriceForAllDataInfo" resultType="java.lang.String">
        SELECT
        IFNULL(SUM(a.opening_fee_amount),'0')
        FROM
        contract_order a
        LEFT JOIN member m ON m.id = a.member_id
        <where>
            a.closing_type = '0'
            and a.order_status = '1'
            and ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="memberBoBiList" resultType="com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity">
        SELECT
            *
@@ -51,9 +294,13 @@
    </select>
    
    <select id="findMemberDataInfoOneAllRealInPage" resultType="com.xcong.excoin.modules.member.vo.MemberDataInfoVo">
        select COUNT(m.id) as memberCount  from member m
        WHERE ( FIND_IN_SET('56086758', m.referer_ids) or m.id = 41)
        and m.account_type = 1
        select COUNT(m.id) as memberCount  from member m
        <where>
            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
                <if test="record.isTest != null and record.isTest != '' ">
                    and m.account_type = #{record.isTest}
                </if>
        </where>
    </select>
    <select id="selectDLZCForDataInfoOneAllReal" resultType="java.lang.String">
        SELECT
@@ -175,11 +422,14 @@
            contract_order a
        LEFT JOIN member m ON m.id = a.member_id
        WHERE
        a.closing_type = '0'
        and a.order_status = '1'
        AND ( FIND_IN_SET('56086758', m.referer_ids) or m.id = 41)
        and m.account_type = 1
        <where>
            a.closing_type = '0'
            and a.order_status = '1'
            ( FIND_IN_SET(#{record.inviteId}, m.referer_ids) or m.id = #{record.id} )
            <if test="record.isTest != null and record.isTest != '' ">
                and m.account_type = #{record.isTest}
            </if>
        </where>
    </select>
    <select id="selectReturnMoneyForDataInfoOneAllReal" resultType="java.lang.String">
        SELECT
@@ -2323,12 +2573,15 @@
        WHERE
        a.closing_type = '0'
            and a.order_status = '1'
        AND a.member_id NOT IN (
        AND a.member_id IN (
            SELECT
                id
            FROM
                member
            WHERE
                <if test="record.refererId!=null and record.refererId!=''">
                    and a.referer_id=#{record.refererId}
                </if>
                account_type = '2'
            AND account_status = '1'
        )
src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html
New file
@@ -0,0 +1,130 @@
<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">&#xe848;</i>
                                </div>
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>
                    <table lay-filter="allDataInfo" lay-data="{id: 'allDataInfo'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
    // 引入组件并初始化
    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'),
            $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();
            sortObject.type = 'null';
            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
        });
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'allDataInfo',
                url: ctx + 'member/allDataInfo',
                totalRow: true,
                cols: [[
                    {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: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'},
                    {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'},
                    {field: 'allCoin', 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: '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'},
                    {field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'},
                    {field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'},
                ]]
            });
        }
        // 获取查询参数
        function getQueryParams() {
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                isTest: $searchForm.find("select[name='isTest']").val(),
            };
        }
    })
</script>
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html
@@ -3,6 +3,58 @@
        <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="statusOption">
                                                <option value="0"></option>
                                                <option value="1">等待审核</option>
                                                <option value="2">同意</option>
                                                <option value="3">拒绝</option>
                                            </select>
                                        </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 class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">内部转账</label>
                                        <div class="layui-input-inline">
                                            <select name="isInsideOption">
                                                <option value=""></option>
                                                <option value="Y">是</option>
                                                <option value="N">否</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">&#xe848;</i>
                                </div>
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>
                     <table id=usersTable></table>
                </div>
            </div>
@@ -17,60 +69,84 @@
</script>
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
// 引入组件并初始化
layui.use([ 'jquery',  'form', 'table', 'febs'], function () {
    var $ = layui.jquery,
        laydate = layui.laydate,
        febs = layui.febs,
        form = layui.form,
        table = layui.table,
        $view = $('#febs-user'),
        tableIns;
    // 引入组件并初始化
    layui.use(['jquery', 'laydate', 'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            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();
    form.render();
    // 表格初始化
    initTable();
    function initTable() {
        tableInss = febs.table.init({
            elem: $('#usersTable'),
            url: ctx + 'member/memberDataInfo',
            cols: [[
                {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: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'},
                {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'},
                {field: 'allCoin', 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: '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'},
                {field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'},
                {field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'},
            ]]
        // 查询按钮
        $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 getQueryParams() {
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                status: $searchForm.find("select[name='statusOption']").val(),
                isTest: $searchForm.find("select[name='isTest']").val(),
                isInside: $searchForm.find("select[name='isInsideOption']").val()
            };
        }
        function initTable() {
            tableInss = febs.table.init({
                elem: $('#usersTable'),
                url: ctx + 'member/memberDataInfo',
                cols: [[
                    {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: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'},
                    {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'},
                    {field: 'allCoin', 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: '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'},
                    {field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'},
                    {field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'},
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/modules/trademanage/contractHoldOrder.html
@@ -13,6 +13,16 @@
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">合约类型</label>
                                        <div class="layui-input-inline">
                                            <select name="contractType">
                                                <option value="0">请选择</option>
                                                <option value="1">普通合约</option>
                                                <option value="2">跟单合约</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">账号类型</label>
                                        <div class="layui-input-inline">
                                            <select name="isTest">
@@ -82,6 +92,14 @@
                    {field: 'phone', title: '手机号', minWidth: 100,align:'left',totalRowText: '合计'},
                    {field: 'realName', title: '姓名', minWidth: 120,align:'left'},
                    {field: 'createTime', title: '时间', minWidth: 120,align:'center'},
                    {field: 'contractType', title: '合约类型',
                        templet: function (d) {
                            if (d.contractType === 1) {
                                return '<span style="color:green;">普通合约</span>'
                            }else {
                                return '<span style="color:red;">跟单合约</span>'
                            }
                        }, minWidth: 100,align:'center'},
                    {field: 'forceClosingPrice', title: '预估强平价', minWidth: 120,align:'center'},
                    {field: 'openingType', title: '开仓类型', 
                        templet: function (d) {
@@ -139,6 +157,8 @@
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                isTest: $searchForm.find("select[name='isTest']").val(),
                contractType: $searchForm.find("select[name='contractType']").val(),
                accountType: $searchForm.find("select[name='accountType']").val(),
            };
        }
        
src/main/resources/templates/febs/views/modules/trademanage/historyOrder.html
@@ -28,6 +28,26 @@
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">合约类型</label>
                                        <div class="layui-input-inline">
                                            <select name="contractType">
                                                <option value="0">请选择</option>
                                                <option value="1">普通合约</option>
                                                <option value="2">跟单合约</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">账号类型</label>
                                        <div class="layui-input-inline">
                                            <select name="accountType">
                                                <option value="0">请选择</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">
@@ -90,7 +110,15 @@
                cols: [[
                    {field: 'phone', title: '手机号', minWidth: 120,align:'left',totalRowText: '合计'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 120,align:'center'},
                    {field: 'tradeType', title: '交易类型',
                    {field: 'contractType', title: '合约类型',
                        templet: function (d) {
                            if (d.contractType === 1) {
                                return '<span style="color:green;">普通合约</span>'
                            }else {
                                return '<span style="color:red;">跟单合约</span>'
                            }
                        }, minWidth: 100,align:'center'},
                    {field: 'tradeType', title: '交易类型',
                        templet: function (d) {
                            if (d.tradeType === 1) {
                                return '<span style="color:green;">市价</span>'
@@ -98,8 +126,6 @@
                                return '<span style="color:red;">限价</span>'
                            }
                        }, minWidth: 100,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 120,align:'center'},
                    {field: 'symbolCnt', title: '手数', minWidth: 80,align:'center'},
                    {field: 'orderType', title: '订单类型', 
@@ -177,6 +203,16 @@
                                return ''
                            }
                        }, minWidth: 120,align:'center'},
                    {field: 'accountType', title: '账号类型',
                        templet: function (d) {
                            if (d.accountType === 1) {
                                return '<span style="color:green;">正常账号</span>'
                            }else if (d.accountType === 2) {
                                return '<span style="color:red;">测试账号</span>'
                            }else{
                                return ''
                            }
                        }, minWidth: 120,align:'center'},
                    {field: 'orderNo', title: '订单编号', minWidth: 200,align:'center'},
                    {field: 'symbolSku', title: '币种规格', minWidth: 100,align:'center'},
                    {field: 'leverRatio', title: '杠杆倍率', minWidth: 120,align:'center'},
@@ -190,6 +226,8 @@
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                closingType: $searchForm.find("select[name='closingType']").val(),
                contractType: $searchForm.find("select[name='contractType']").val(),
                accountType: $searchForm.find("select[name='accountType']").val(),
            };
        }