trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java
@@ -136,6 +136,22 @@ return Result.succeed("success"); } @GetMapping("addDepositOpen.action") @ApiOperation(value = "追加保证金") public Result<String> addDepositOpen(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal addDepositOpen) throws IOException { try { ContractOrder order = this.contractOrderService.findByOrderNo(orderNo); if (order != null && order.getState().equals(ContractOrder.STATE_CREATED)) { order.setAddDepositOpen(order.getAddDepositOpen().add(addDepositOpen)); contractOrderService.update(order); } } catch (Exception e) { log.error("追加保证金异常", e); throw new YamiShopBindException("追加保证金异常"); } return Result.succeed("success"); } /** * 新线程处理,直接拿到订单锁处理完成后退出 */ trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
@@ -68,6 +68,11 @@ * 保证金 */ private BigDecimal depositOpen ; /** * 追加保证金 */ private BigDecimal addDepositOpen ; /** * 收益 */ trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java
@@ -174,7 +174,7 @@ earnings = earnings.add(order.getDepositOpen()); } else { // 如果不符合条件,直接使用 order.getDepositOpen() 作为收益 earnings = order.getDepositOpen(); earnings = order.getDepositOpen().add(order.getAddDepositOpen()); } if(ContractOrder.DIRECTION_BUY.equals(order.getDirection())){ trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java
@@ -528,7 +528,7 @@ if(null != order.getProfitLossRatio() || order.getProfitLossRatio() > 0){ profit = order.getDepositOpen().multiply(new BigDecimal((order.getProfitLossRatio()/100))).setScale(2, RoundingMode.DOWN); } BigDecimal rentalProfit = order.getDeposit().add(profit); BigDecimal rentalProfit = order.getDeposit().add(profit).add(order.getAddDepositOpen()); BigDecimal rate = volume.divide(order.getVolumeOpen(), 2, RoundingMode.HALF_UP); order.setAmountClose(order.getAmountClose().add(profit)); order.setVolume(order.getVolume().subtract(volume)); @@ -697,7 +697,7 @@ Map<String, Object> moneyAll = walletService.getMoneyAll(order.getPartyId()); earnings = order.getDepositOpen().add(new BigDecimal(moneyAll.get("money_all_coin").toString())); }else{ earnings = order.getDepositOpen(); earnings = order.getDepositOpen().add(order.getAddDepositOpen()); } double faceValue = 0.01; // 合约面值(固定面值不能调整) double maintenanceMarginRate = 0.004; // 维持保证金率(固定不变)