Helius
2020-09-29 6b3d92a95500f650beefa1e21423846e7a42a00f
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -99,6 +99,7 @@
    public Result submitOrder(SubmitOrderDto submitOrderDto) {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        log.info("订单类型:{}", memberEntity.getContractPositionType());
        // 判断当前对应的持仓/委托
        if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) {
            List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ALL, memberEntity.getId());
@@ -474,6 +475,11 @@
//                    canAddMaxBond = BigDecimal.ZERO;
//                }
                BigDecimal canReduceMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getPrePaymentAmount());
                if (rewardRatio.compareTo(BigDecimal.ZERO) < 0) {
                    canReduceMaxBond = canReduceMaxBond.add(rewardRatio);
                }
                if (canReduceMaxBond.compareTo(BigDecimal.ZERO) < 0) {
                    canReduceMaxBond = BigDecimal.ZERO;
                }
@@ -791,17 +797,18 @@
        // 权益
        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);
        }
//        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.setAvailableBalance(walletContractEntity.getAvailableBalance());
        contractMoneyInfoVo.setEquity(equity);
        contractMoneyInfoVo.setFeeRatio(tradeSetting.getFeeRatio());
        contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio());