|  |  | 
 |  |  |                     contractHoldOrderService.updateOrderIsCanClosingAndBatchNoById(orderId); | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == coinsOrder.getPositionType()) { | 
 |  |  |                     bombOrder(coinsOrder); | 
 |  |  |                 } else { | 
 |  |  |                     List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(coinsOrder.getMemberId(), coinsOrder.getSymbol()); | 
 |  |  |                     if (CollectionUtils.isNotEmpty(holdOrderEntities)) { | 
 |  |  |                         for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) { | 
 |  |  |                             bombOrder(holdOrderEntity); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(coinsOrder.getMemberId(), CoinTypeConvert.convertContractTypeToCoin(coinsOrder.getSymbol())); | 
 |  |  |  | 
 |  |  |                         // 流水记录 TODO | 
 |  |  |                         MemberAccountFlowEntity record = new MemberAccountFlowEntity(); | 
 |  |  |                         record.setCreateTime(new Date()); | 
 |  |  |                         record.setSource("系统自动平仓"); | 
 |  |  |                         record.setRemark("系统自动平仓"); | 
 |  |  |                         record.setBalance(BigDecimal.ZERO); | 
 |  |  |                         record.setMemberId(coinsOrder.getMemberId()); | 
 |  |  |                         record.setSymbol(coinsOrder.getSymbol()); | 
 |  |  |                         record.setPrice(wallet.getTotalBalance().subtract(coinsOrder.getOpeningFeeAmount())); | 
 |  |  |                         memberAccountFlowEntityDao.insert(record); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void bombOrder(ContractHoldOrderEntity coinsOrder) { | 
 |  |  |         Long orderId = coinsOrder.getId(); | 
 |  |  |                 boolean isDone = false; | 
 |  |  |                 Long memId = coinsOrder.getMemberId(); | 
 |  |  |                 BigDecimal nowPrice = coinsOrder.getForceClosingPrice(); | 
 |  |  | 
 |  |  |                     } else { | 
 |  |  |                         MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memId, CoinTypeConvert.convertContractTypeToCoin(coinsOrder.getSymbol())); | 
 |  |  |  | 
 |  |  |                         contractOrderEntity.setRewardAmount(wallet.getTotalBalance().subtract(coinsOrder.getOpeningFeeAmount()).negate()); | 
 |  |  |                 BigDecimal rewardRatio = BigDecimal.ZERO; | 
 |  |  |                 // 开多 | 
 |  |  |                 if (ContractHoldOrderEntity.OPENING_TYPE_MORE == coinsOrder.getOpeningType()) { | 
 |  |  |                     // (最新价-开仓价)*规格*张数 | 
 |  |  |                     rewardRatio = nowPrice.subtract(coinsOrder.getOpeningPrice()).multiply(coinsOrder.getSymbolSku()).multiply(new BigDecimal(coinsOrder.getSymbolCntSale())); | 
 |  |  |                     // 开空 | 
 |  |  |                 } else { | 
 |  |  |                     // (开仓价-最新价)*规格*张数 | 
 |  |  |                     rewardRatio = coinsOrder.getOpeningPrice().subtract(nowPrice).multiply(coinsOrder.getSymbolSku()).multiply(new BigDecimal(coinsOrder.getSymbolCntSale())); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 contractOrderEntity.setRewardAmount(rewardRatio); | 
 |  |  |                         contractOrderService.save(contractOrderEntity); | 
 |  |  |  | 
 |  |  |                         memberWalletContractService.increaseWalletContractBalanceById(wallet.getAvailableBalance().negate(), wallet.getTotalBalance().negate(), null, wallet.getId()); | 
 |  |  |  | 
 |  |  |                         // 流水记录 TODO | 
 |  |  |                         MemberAccountFlowEntity record = new MemberAccountFlowEntity(); | 
 |  |  |                         record.setCreateTime(new Date()); | 
 |  |  |                         record.setSource("系统自动平仓"); | 
 |  |  |                         record.setRemark("系统自动平仓"); | 
 |  |  |                         record.setBalance(BigDecimal.ZERO); | 
 |  |  |                         record.setMemberId(memId); | 
 |  |  |                         record.setSymbol(coinsOrder.getSymbol()); | 
 |  |  |                         record.setPrice(wallet.getTotalBalance().subtract(coinsOrder.getOpeningFeeAmount())); | 
 |  |  |                         memberAccountFlowEntityDao.insert(record); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } |