|  |  | 
 |  |  |             } | 
 |  |  |             for (ContractHoldOrderEntity order : orderList) { | 
 |  |  |                 Long orderId = order.getId(); | 
 |  |  |                 System.out.println("开多止盈订单号:" + order.getOrderNo()); | 
 |  |  |                 System.out.println("传来的止盈价格:" + modelMap.get(order.getId())); | 
 |  |  |                 log.info("开多止盈订单号:" + order.getOrderNo()); | 
 |  |  |                 log.info("传来的止盈价格:" + modelMap.get(order.getId())); | 
 |  |  |                 if (null != order.getStopProfitPrice()) { | 
 |  |  |                     BigDecimal closePrice = order.getStopProfitPrice(); | 
 |  |  |                     BigDecimal queuePrice = modelMap.get(order.getId()); | 
 |  |  |                     System.out.println("订单的止盈价格:" + closePrice); | 
 |  |  |                     log.info("订单的止盈价格:" + closePrice); | 
 |  |  |                     // 判断 保留七位是为了忽略以为小数 防止不精确导致的不相等 | 
 |  |  |                     if (queuePrice.compareTo(closePrice) != 0) { | 
 |  |  |  | 
 |  |  |                         // 不能止盈 | 
 |  |  |                         System.out.println("数据库价格:" + queuePrice.toPlainString() + "--价格不能止盈:" + closePrice); | 
 |  |  |                         log.info("数据库价格:" + queuePrice.toPlainString() + "--价格不能止盈:" + closePrice); | 
 |  |  |                         //更新数据 | 
 |  |  |                         contractHoldOrderService.updateOrderIsCanClosingAndBatchNoById(orderId); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     System.out.println("执行操作"); | 
 |  |  |                     log.info("执行操作"); | 
 |  |  |                     // 止盈价 | 
 |  |  |                     String symbol = order.getSymbol(); | 
 |  |  |                     // 本次需要退回的保证金 | 
 |  |  |                     BigDecimal prePrice = order.getBondAmount(); | 
 |  |  |                     Long memberId = order.getMemberId(); | 
 |  |  |                     MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     MemberWalletContractEntity wallet; | 
 |  |  |                     if (order.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     } else { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(order.getSymbol())); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (wallet != null) { | 
 |  |  |                         // 历史订单 | 
 |  |  |                         ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(order); | 
 |  |  | 
 |  |  |                     // 本次需要退回的预付款 | 
 |  |  |                     BigDecimal prePrice = order.getBondAmount(); | 
 |  |  |                     Long memberId = order.getMemberId(); | 
 |  |  |                     MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     MemberWalletContractEntity wallet; | 
 |  |  |                     if (order.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     } else { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(order.getSymbol())); | 
 |  |  |                     } | 
 |  |  |                     if (wallet != null) { | 
 |  |  |                         // 历史订单 | 
 |  |  |                         ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(order); | 
 |  |  | 
 |  |  |                     Long memberId = order.getMemberId(); | 
 |  |  |                     // 本次需要退回的预付款 | 
 |  |  |                     BigDecimal prePrice = order.getBondAmount(); | 
 |  |  |                     MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     MemberWalletContractEntity wallet; | 
 |  |  |                     if (order.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     } else { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(order.getSymbol())); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (wallet != null) { | 
 |  |  |                         // 历史订单 | 
 |  |  | 
 |  |  |                     Long memberId = order.getMemberId(); | 
 |  |  |                     // 本次需要退回的预付款 | 
 |  |  |                     BigDecimal prePrice = order.getBondAmount(); | 
 |  |  |                     MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     MemberWalletContractEntity wallet; | 
 |  |  |                     if (order.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); | 
 |  |  |                     } else { | 
 |  |  |                         wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(order.getSymbol())); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (wallet != null) { | 
 |  |  |                         // 历史订单 | 
 |  |  | 
 |  |  |                     contractOrderEntity.setClosingPrice(nowPrice); | 
 |  |  |                     contractOrderEntity.setClosingTime(new Date()); | 
 |  |  |                     contractOrderEntity.setClosingFeeAmount(coinsOrder.getOpeningFeeAmount()); | 
 |  |  |  | 
 |  |  |                     if (coinsOrder.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) { | 
 |  |  |                     contractOrderEntity.setRewardAmount(coinsOrder.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount()).negate()); | 
 |  |  |                     contractOrderService.save(contractOrderEntity); | 
 |  |  |  | 
 |  |  | 
 |  |  |                     // 减去的时候用负数 | 
 |  |  |                     BigDecimal totalPrice = coinsOrder.getBondAmount().negate(); | 
 |  |  |                     memberWalletContractService.increaseWalletContractBalanceById(null, totalPrice, null, usdt.getId()); | 
 |  |  |  | 
 |  |  |                     // 流水记录 TODO | 
 |  |  |                     MemberAccountFlowEntity record = new MemberAccountFlowEntity(); | 
 |  |  |                     record.setCreateTime(new Date()); | 
 |  |  | 
 |  |  |                     record.setSymbol(coinsOrder.getSymbol()); | 
 |  |  |                     record.setPrice(coinsOrder.getBondAmount()); | 
 |  |  |                     memberAccountFlowEntityDao.insert(record); | 
 |  |  |                     } else { | 
 |  |  |                         MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memId, CoinTypeConvert.convertContractTypeToCoin(coinsOrder.getSymbol())); | 
 |  |  |  | 
 |  |  |                         contractOrderEntity.setRewardAmount(wallet.getTotalBalance().subtract(coinsOrder.getOpeningFeeAmount())); | 
 |  |  |                         contractOrderService.save(contractOrderEntity); | 
 |  |  |  | 
 |  |  |                         memberWalletContractService.increaseWalletContractBalanceById(wallet.getAvailableBalance(), wallet.getTotalBalance(), 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); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } |