|  |  | 
 |  |  |  | 
 |  |  |         if (CollUtil.isNotEmpty(list)) { | 
 |  |  |             for (ContractHoldOrderEntity holdOrderEntity : list) { | 
 |  |  |                 BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio()); | 
 |  |  |                 MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(holdOrderEntity.getMemberId(), CoinTypeEnum.USDT.name()); | 
 |  |  |                 log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold); | 
 |  |  |  | 
 |  |  |                 BigDecimal holdAmount = holdOrderEntity.getHoldAmount(); | 
 |  |  |                 if (holdAmount == null) { | 
 |  |  |                     holdAmount = BigDecimal.ZERO; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio()); | 
 |  |  |                 log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold); | 
 |  |  |  | 
 |  |  |                 MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); | 
 |  |  |                 BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold); | 
 |  |  |  | 
 |  |  |                 BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity); | 
 |  |  |                 holdAmount = holdAmount.add(thisTimeHold); | 
 |  |  |                 holdOrderEntity.setBondAmount(subBond); | 
 |  |  |                 holdOrderEntity.setHoldAmount(holdAmount); | 
 |  |  |                 holdOrderEntity.setForceClosingPrice(newForcePrice); | 
 |  |  |                 holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1); | 
 |  |  |                 contractHoldOrderDao.updateById(holdOrderEntity); | 
 |  |  |  | 
 |  |  |                 memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, holdOrderEntity.getMemberId()); | 
 |  |  |                 if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) { | 
 |  |  |  | 
 |  |  |                     MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); | 
 |  |  |                     BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold); | 
 |  |  |                     BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity); | 
 |  |  |                     holdOrderEntity.setBondAmount(subBond); | 
 |  |  |                     holdOrderEntity.setHoldAmount(holdAmount); | 
 |  |  |                     holdOrderEntity.setForceClosingPrice(newForcePrice); | 
 |  |  |                     holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1); | 
 |  |  |                     contractHoldOrderDao.updateById(holdOrderEntity); | 
 |  |  |  | 
 |  |  |                     memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, wallet.getId()); | 
 |  |  |                     // 发送爆仓消息 | 
 |  |  |                     sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId()); | 
 |  |  |                 } else { | 
 |  |  |                     holdOrderEntity.setHoldAmount(holdAmount); | 
 |  |  |                     contractHoldOrderDao.updateById(holdOrderEntity); | 
 |  |  |                     memberWalletContractDao.increaseWalletContractBalanceById(thisTimeHold.negate(), thisTimeHold.negate(), null, wallet.getId()); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } |