1 files deleted
	
		
		12 files modified
	
		
		2 files added
	
	
 
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @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); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         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); | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |      | 
 |  |  | } | 
 
 |  |  | 
 |  |  |      | 
 |  |  |     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"); | 
 |  |  |     } | 
 |  |  |      | 
 
| New file | 
 |  |  | 
 |  |  | package com.xcong.excoin.modules.member.dto;
 | 
 |  |  | 
 | 
 |  |  | public class MemberDataInfoDto {
 | 
 |  |  | 
 | 
 |  |  | }
 | 
 
 |  |  | 
 |  |  |     @NotNull(message = "ID不能为空")
 | 
 |  |  |     private Long id;
 | 
 |  |  |     
 | 
 |  |  |     @NotNull(message = "ID不能为空")
 | 
 |  |  |     private int isok;
 | 
 |  |  | 	 | 
 |  |  | }
 | 
 
 |  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  | 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(); | 
 |  |  |      | 
 |  |  | } | 
 
 |  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  | 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; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |     List<MemberCoinChargeEntity> selectMemberDataInfoById(long id); | 
 |  |  |  | 
 |  |  |     IPage<MemberDataInfoVo> findMemberDataInfoDtoListInPage(MemberEntity memberEntity, QueryRequest request); | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  | 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; | 
 |  |  |  | 
 |  |  | 
 |  |  |         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(); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } | 
 
| New file | 
 |  |  | 
 |  |  | 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;
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | }
 | 
 
 |  |  | 
 |  |  |                     and s.status= #{record.status}
 | 
 |  |  |                 </if>
 | 
 |  |  |             </if>
 | 
 |  |  |         </where>	 | 
 |  |  |         </where>
 | 
 |  |  |         order by s.create_time desc	 | 
 |  |  |     </select>
 | 
 |  |  | 
 | 
 |  |  | </mapper> | 
 
 |  |  | 
 |  |  |     <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> | 
 
 |  |  | 
 |  |  |                                         <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>
 | 
 |  |  | 
 |  |  | <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'},
 | 
 |  |  | 
 |  |  |                     {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"></i>'
 | 
 |  |  |                                 +'<a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>'
 | 
 
 |  |  | 
 |  |  | <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> | 
 
 |  |  | 
 |  |  |                 <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>
 | 
 
 |  |  | 
 |  |  |                                         <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>
 | 
 |  |  | 
 |  |  |         </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">
 | 
 |  |  | 
 |  |  |                     cancelUsers(data.id);
 | 
 |  |  |                 });
 | 
 |  |  |             }
 | 
 |  |  |             if (layEvent === 'see') {
 | 
 |  |  |                 febs.modal.open( '用户详细信息', 'modules/member/memberDataInfo/' + data.id, {
 | 
 |  |  |                     maxmin: true,
 | 
 |  |  |                 });
 | 
 |  |  |             }
 | 
 |  |  |         });
 | 
 |  |  |         
 | 
 |  |  |         function confirmUsers(id) {
 | 
 |  |  | 
 |  |  |                     {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"></i>'
 | 
 |  |  |                                 +'<a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>'
 |