| | |
| | | log.info("全仓逻辑"); |
| | | // 获取最新价 |
| | | BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitOrderDto.getSymbol()))); |
| | | MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeConvert.convertContractTypeToCoin(submitOrderDto.getSymbol())); |
| | | MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); |
| | | PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); |
| | | |
| | | MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId()); |
| | |
| | | holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance()); |
| | | holdOrderListVo.setReturnRate(returnRate); |
| | | holdOrderListVo.setProfitOrLoss(rewardRatio); |
| | | if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) { |
| | | BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(symbol, memberEntity); |
| | | holdOrderListVo.setForceClosingPrice(forcePrice); |
| | | } |
| | | resultList.add(holdOrderListVo); |
| | | totalProfitOrLoss = totalProfitOrLoss.add(rewardRatio); |
| | | } |
| | |
| | | PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); |
| | | BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol))); |
| | | |
| | | List<ContractEntrustOrderEntity> entrustOrderEntities; |
| | | List<ContractHoldOrderEntity> holdOrderEntities; |
| | | MemberWalletContractEntity walletContractEntity; |
| | | if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) { |
| | | // 当前合约委托单 |
| | | entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId()); |
| | | // 当前持仓列表 |
| | | holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId()); |
| | | walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); |
| | | } else { |
| | | entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol); |
| | | holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), symbol); |
| | | walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeConvert.convertContractTypeToCoin(symbol)); |
| | | } |
| | | List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId()); |
| | | List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId()); |
| | | MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); |
| | | // if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) { |
| | | // // 当前合约委托单 |
| | | // entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId()); |
| | | // // 当前持仓列表 |
| | | // holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId()); |
| | | // } else { |
| | | // entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol); |
| | | // holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), symbol); |
| | | // } |
| | | |
| | | // 冻结保证金 -- 即委托单中的保证金之和 |
| | | BigDecimal frozenBondAmount = BigDecimal.ZERO; |
| | |
| | | ContractMoneyInfoVo contractMoneyInfoVo = new ContractMoneyInfoVo(); |
| | | // 权益 |
| | | BigDecimal equity = walletContractEntity.getTotalBalance().add(totalProfitOrLess); |
| | | // 全仓模式,可用余额需随着盈亏变动 |
| | | if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ALL) { |
| | | BigDecimal available = walletContractEntity.getAvailableBalance().add(totalProfitOrLess); |
| | | if (available.compareTo(BigDecimal.ZERO) < 0) { |
| | | available = BigDecimal.ZERO; |
| | | } |
| | | contractMoneyInfoVo.setAvailableBalance(available); |
| | | } |
| | | |
| | | |
| | | contractMoneyInfoVo.setBeUsedBondAmount(beUsedBondAmount); |
| | | contractMoneyInfoVo.setFrozenBondAmount(frozenBondAmount); |
| | | contractMoneyInfoVo.setEquity(equity); |
| | | contractMoneyInfoVo.setAvailableBalance(walletContractEntity.getAvailableBalance()); |
| | | contractMoneyInfoVo.setFeeRatio(tradeSetting.getFeeRatio()); |
| | | contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio()); |
| | | contractMoneyInfoVo.setNewPrice(newPriceSymbol); |