Helius
2020-09-11 afc924b0d88ef320ad09060ae49804556efd8eb6
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -482,13 +482,10 @@
                holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
                holdOrderListVo.setReturnRate(returnRate);
                holdOrderListVo.setProfitOrLoss(rewardRatio);
                long start = System.currentTimeMillis();
//                log.info("开始时间 -- {}", start);
                BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(symbol, memberEntity);
                long end = System.currentTimeMillis();
//                log.info("结束时间 -- {}", end);
//                log.info("时间差 -- {}", end - start);
                holdOrderListVo.setForceClosingPrice(forcePrice);
                if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) {
                    BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(holdOrderEntity.getSymbol(), memberEntity);
                    holdOrderListVo.setForceClosingPrice(forcePrice);
                }
                resultList.add(holdOrderListVo);
                totalProfitOrLoss = totalProfitOrLoss.add(rewardRatio);
            }
@@ -772,10 +769,10 @@
                BigDecimal profitOrLess = BigDecimal.ZERO;
                // 开多
                if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
                    profitOrLess = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())).multiply(lotNumber);
                    profitOrLess = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
                    // 开空
                } else {
                    profitOrLess = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())).multiply(lotNumber);
                    profitOrLess = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
                }
                if (MemberEntity.IS_PROFIT_Y == memberEntity.getIsProfit()) {
@@ -795,6 +792,9 @@
        ContractMoneyInfoVo contractMoneyInfoVo = new ContractMoneyInfoVo();
        // 权益
        BigDecimal equity = walletContractEntity.getTotalBalance().add(totalProfitOrLess);
        if (equity.compareTo(BigDecimal.ZERO) <= 0) {
            equity = BigDecimal.ZERO;
        }
        contractMoneyInfoVo.setBeUsedBondAmount(beUsedBondAmount);
        contractMoneyInfoVo.setFrozenBondAmount(frozenBondAmount);
@@ -896,7 +896,7 @@
                } else {
                    BigDecimal available = walletContractEntity.getAvailableBalance();
                    BigDecimal lessAmount = thisTimeHold.subtract(available);
                    MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getId());
                    MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
                    memberWalletContractDao.increaseWalletContractBalanceById(available.negate(), available.negate(), null, walletContractEntity.getId());
                    BigDecimal newBondAmount = holdOrderEntity.getBondAmount().subtract(lessAmount);