| | |
| | | memberWalletContractInfoVo.setFrozenBalance(memberWalletContractEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | memberWalletContractInfoVo.setAvailableBalance(memberWalletContractEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | memberWalletContractInfoVo.setTotalBalance(memberWalletContractEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | memberWalletContractInfoVo.setTotalRMBBalance(memberWalletContractEntity.getTotalBalance().multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
|
| | | memberWalletContractInfoVo.setTotalRMBBalance(memberWalletContractEntity.getAvailableBalance().multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
|
| | | memberWalletContractInfoVo.setWalletCode(memberWalletContractEntity.getWalletCode()+"/USDT");
|
| | | list.add(memberWalletContractInfoVo);
|
| | | totalCoin = totalCoin.add(memberWalletContractEntity.getTotalBalance());
|
| | |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
| | | MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
|
| | |
|
| | | List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol, 1);
|
| | | List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol+"/USDT", 1);
|
| | | BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
|
| | | if (CollUtil.isNotEmpty(list)) {
|
| | | for (ContractHoldOrderEntity holdOrderEntity : list) {
|
| | |
| | | //获取用户ID
|
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
| | | MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol);
|
| | | BigDecimal availableBalance = walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN);
|
| | | return Result.ok(availableBalance);
|
| | | |
| | | MemberEntity memberEntity = memberDao.selectById(memberId);
|
| | | List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol+"/USDT", 1);
|
| | | BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
|
| | | if (CollUtil.isNotEmpty(list)) {
|
| | | for (ContractHoldOrderEntity holdOrderEntity : list) {
|
| | | // 获取最新价
|
| | | BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
|
| | | BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
|
| | | // 盈亏
|
| | | BigDecimal rewardRatio = BigDecimal.ZERO;
|
| | | // 开多
|
| | | if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
|
| | | // (最新价-开仓价)*规格*张数
|
| | | rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale()));
|
| | | // 开空
|
| | | } else {
|
| | | // (开仓价-最新价)*规格*张数
|
| | | rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale()));
|
| | | }
|
| | |
|
| | | if (memberEntity.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
|
| | | PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
|
| | | if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
|
| | | rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam()));
|
| | | } |
| | | }
|
| | | totalProfitOrLoss = totalProfitOrLoss.add(rewardRatio);
|
| | | }
|
| | | }
|
| | | BigDecimal availableBalance = walletContract.getAvailableBalance();
|
| | | if(totalProfitOrLoss.compareTo(BigDecimal.ZERO) < 0) {
|
| | | availableBalance = availableBalance.add(totalProfitOrLoss);
|
| | | }
|
| | | |
| | | return Result.ok(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
|
| | | }
|
| | |
|
| | | @Override
|