| | |
| | | package com.xcong.excoin.modules.member.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | |
| | | import com.xcong.excoin.modules.member.mapper.MemberMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; |
| | | import com.xcong.excoin.modules.member.service.EthService; |
| | | import com.xcong.excoin.modules.member.service.IMemberService; |
| | | import com.xcong.excoin.modules.member.service.RocService; |
| | | 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 java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.concurrent.ExecutionException; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | |
| | | QueryRequest request) { |
| | | Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MemberCoinChargeVo> findmemberQuickBuySaleListInPage = memberCoinChargeMapper.findMemberApplyCoinListInPage(page, memberCoinChargeEntity); |
| | | List<MemberCoinChargeVo> records = findmemberQuickBuySaleListInPage.getRecords(); |
| | | if(CollUtil.isNotEmpty(records)) { |
| | | for(MemberCoinChargeVo memberCoinChargeVo : records) { |
| | | Long memberId = memberCoinChargeVo.getMemberId(); |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("member_id", memberId); |
| | | List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap ); |
| | | if(selectByMap != null && selectByMap.size() > 0) { |
| | | MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0); |
| | | String firstName = memberAuthenticationEntity.getFirstName(); |
| | | String secondName = memberAuthenticationEntity.getSecondName(); |
| | | String realName = firstName + secondName; |
| | | memberCoinChargeVo.setRealName(realName); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return findmemberQuickBuySaleListInPage; |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) { |
| | | public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) throws ExecutionException, InterruptedException { |
| | | |
| | | MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id); |
| | | Long memberId = selectById.getMemberId(); |
| | | String symbol = selectById.getSymbol(); |
| | | String address = selectById.getAddress(); |
| | | int status = selectById.getStatus(); |
| | | BigDecimal amount = selectById.getAmount(); |
| | | if(status != 1) { |
| | | return new FebsResponse().fail().message("只有等待审核的状态才能确认!"); |
| | | } |
| | |
| | | if(StrUtil.isNotBlank(phone)) { |
| | | Sms106Send.sendWithdrawalCoinMsg(phone, time); |
| | | } |
| | | if("ROC".equals(symbol)){ |
| | | // 如果是ROC 则自动转 |
| | | String transfer = RocService.transfer(amount, address, "ROC"); |
| | | }else if("USDT".equals(symbol) && !"Y".equals(selectById.getIsInside())){ |
| | | EthService ethService = new EthService(); |
| | | // 查询余额是否足够 |
| | | BigDecimal bigDecimal = ethService.tokenGetBalance(EthService.TOTAL_ADDRESS); |
| | | if(bigDecimal==null ||bigDecimal.compareTo(amount)<0 ){ |
| | | FebsResponse fail = new FebsResponse().fail(); |
| | | fail.message("总钱包余额不足"); |
| | | return fail; |
| | | } |
| | | amount = amount.multiply(new BigDecimal("1000000")); |
| | | String usdtStr = amount.toPlainString(); |
| | | if (usdtStr.contains(".")) { |
| | | usdtStr = usdtStr.substring(0, usdtStr.lastIndexOf(".")); |
| | | } |
| | | String s = ethService.tokenSend(address, usdtStr, null); |
| | | } |
| | | |
| | | /** |
| | | //短信提醒 |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicRealData(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicRealData(); |
| | | String agentNum = memberMapper.selectDLZCForBasicRealData(); |
| | | 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)); |
| | |
| | | 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; |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicRealDataAlone(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicRealDataAlone(); |
| | | String agentNum = memberMapper.selectDLZCForBasicRealDataAlone(); |
| | | 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)); |
| | |
| | | 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; |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicData(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicData(); |
| | | String agentNum = memberMapper.selectDLZCForBasicData(); |
| | | 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)); |
| | |
| | | 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; |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicAllDataAlone(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicAllDataAlone(); |
| | | String agentNum = memberMapper.selectDLZCForBasicAllDataAlone(); |
| | | 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)); |
| | |
| | | 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; |
| | |
| | | //USDT充币总额+USDT提币总额 |
| | | String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealTestDataAlone(); |
| | | String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealTestDataAlone(); |
| | | |
| | | //USDT充值总额+USDT提现总额 |
| | | String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealTestDataAlone(); |
| | | String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealTestDataAlone(); |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicRealTestDataAlone(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicRealTestDataAlone(); |
| | | String agentNum = memberMapper.selectDLZCForBasicRealTestDataAlone(); |
| | | 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 - (totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780)); |
| | | 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.setAppealCoin(totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780)); |
| | | memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid); |
| | | memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid); |
| | | memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid); |
| | |
| | | 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; |
| | |
| | | String walletNum = memberMapper.selectBBZCForBasicRealTestAllDataAlone(); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicRealTestAllDataAlone(); |
| | | String agentNum = memberMapper.selectDLZCForBasicRealTestAllDataAlone(); |
| | | 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 - (totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780)); |
| | | 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.setAppealCoin(totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780)); |
| | | memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid); |
| | | memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid); |
| | | memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid); |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public MemberInfoDetailVo selectMemberInfoDetailByInviteId(String inviteId) { |
| | | String id = memberMapper.selectMemberInfoDetailByInviteId(inviteId); |
| | | Long memberId = Long.parseLong(id); |
| | | MemberInfoDetailVo memberInfoDetailVo = new MemberInfoDetailVo(); |
| | | |
| | | //USDT充币总额+USDT提币总额 |
| | | String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB)); |
| | | String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS)); |
| | | //USDT充值总额+USDT提现总额 |
| | | String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ)); |
| | | String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX)); |
| | | //总剩余 |
| | | 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)); |
| | | memberInfoDetailVo.setTotalCoin(platformProfitAndLoss); |
| | | //佣金 |
| | | String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setFee(returnMoneyByMid == null ? 0 : Double.parseDouble(returnMoneyByMid)); |
| | | //开仓手续费总额 |
| | | String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setClosingPrice(closingpriceByMid == null ? 0 : Double.parseDouble(closingpriceByMid)); |
| | | //平仓总手续费 |
| | | String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setSellClosingPrice(sellClosingpriceByMid == null ? 0 : Double.parseDouble(sellClosingpriceByMid)); |
| | | |
| | | //总盈亏 |
| | | String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setPlatformProfitAndLoss(rewardratioByMid == null ? 0 : Double.parseDouble(rewardratioByMid)); |
| | | |
| | | //持仓手续费 |
| | | String doingPrice = memberMapper.selectprepriceForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setDoingPrice(doingPrice == null ? 0 : Double.parseDouble(doingPrice)); |
| | | |
| | | //账户金额 |
| | | String walletNum = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setWalletCoinNum(walletNum == null ? 0 : Double.parseDouble(walletNum)); |
| | | String walletCoinNum = memberMapper.selectHYZCForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setTotalContract(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum)); |
| | | String agentNum = memberMapper.selectDLZCForBasicRealDataBymemberId(memberId); |
| | | memberInfoDetailVo.setAgentNum(agentNum == null ? 0 : Double.parseDouble(agentNum)); |
| | | |
| | | return memberInfoDetailVo; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public IPage<MemberEntity> memberDataInfoListSearchs(MemberEntity member, QueryRequest request) { |
| | | |
| | | Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MemberEntity> selectMemberListInPage = this.baseMapper.selectDataInfoListSearchs(page, member); |
| | | List<MemberEntity> records = selectMemberListInPage.getRecords(); |
| | | Set<MemberEntity> set = new HashSet<>(); |
| | | if(CollUtil.isNotEmpty(records)) { |
| | | if(StrUtil.isNotBlank(member.getAccount())) { |
| | | MemberEntity memberEntity = records.get(0); |
| | | //当前查询下级关系 |
| | | String inviteId = memberEntity.getInviteId(); |
| | | List<MemberEntity> members = memberMapper.selectMemberDataInfoListSearchs(inviteId); |
| | | if(CollUtil.isNotEmpty(members)) { |
| | | for(MemberEntity semberEntity : members) { |
| | | set.add(semberEntity); |
| | | } |
| | | } |
| | | //当前查询上级关系 |
| | | String refererIds = memberEntity.getRefererIds(); |
| | | String[] strs = refererIds.split(","); |
| | | if(ObjectUtil.isNotEmpty(strs)) { |
| | | for(int i=0,len=strs.length;i<len;i++){ |
| | | String string = strs[i].toString(); |
| | | if(StrUtil.isNotEmpty(string)) { |
| | | MemberEntity mem = memberMapper.selectMemberByInviteId(string); |
| | | set.add(mem); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(set.size() > 0) { |
| | | records.addAll(set); |
| | | } |
| | | } |
| | | return selectMemberListInPage; |
| | | } |
| | | |
| | | } |