Helius
2020-08-29 5677479567a47c14ee091770170e4c7e01bbf31c
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -184,7 +184,7 @@
            wholeHoldOrder.setSymbolCnt(wholeHoldOrder.getSymbolCnt() + submitOrderDto.getSymbolCnt());
            wholeHoldOrder.setSymbolCntSale(wholeHoldOrder.getSymbolCntSale() + submitOrderDto.getSymbolCnt());
            wholeHoldOrder.setPrePaymentAmount(prePaymentAmount.add(wholeHoldOrder.getPrePaymentAmount()));
            wholeHoldOrder.setOperateNo(wholeHoldOrder.getOperateNo() + 1);
            wholeHoldOrder.setOperateNo(wholeHoldOrder.getOperateNo());
            int i = contractHoldOrderDao.updateById(wholeHoldOrder);
            if (i > 0) {
                memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
@@ -443,11 +443,11 @@
                // 开多
                if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
                    // (最新价-开仓价)*规格*张数
                    rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
                    rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale()));
                    // 开空
                } else {
                    // (开仓价-最新价)*规格*张数
                    rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
                    rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale()));
                }
                if (memberEntity.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
@@ -546,7 +546,6 @@
        // 更新可平张数
        holdOrderEntity.setSymbolCntSale(sub);
        holdOrderEntity.setSymbolCnt(sub);
        contractHoldOrderDao.updateById(holdOrderEntity);
        // 将待平张数放入缓存
@@ -807,6 +806,11 @@
    @Override
    public Result changeLeverRate(ChangeLeverRateDto changeLeverRateDto) {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), changeLeverRateDto.getSymbol());
        if (CollUtil.isNotEmpty(holdOrders)) {
            return Result.fail("存在持仓, 无法调整杠杆");
        }
        MemberLevelRateEntity levelRateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), changeLeverRateDto.getSymbol());
        levelRateEntity.setLevelRateUp(changeLeverRateDto.getLeverRate());
        levelRateEntity.setLevelRateDown(changeLeverRateDto.getLeverRate());