Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git
| | |
| | | */ |
| | | public static final int TRADE_TYPE_LIMIT_PRICE = 2; |
| | | |
| | | |
| | | /** |
| | | * 订单类型 撤单 |
| | | * 订单状态 撤单 |
| | | */ |
| | | public static final int ORDER_TYPE_CANCEL = -1; |
| | | public static final int ORDER_STATUS_CANCEL = 2; |
| | | |
| | | /** |
| | | * 订单类型 开多 |
| | |
| | | private int tradeType; |
| | | |
| | | /** |
| | | * 订单类型 - 0撤单,1开多,2开空,3平多,4平空 |
| | | * 订单类型 - 1开多,2开空,3平多,4平空 |
| | | */ |
| | | private int orderType; |
| | | |
| | | /** |
| | | * 订单状态 - 1成交 2撤单 |
| | | */ |
| | | private int orderStatus; |
| | | |
| | | /** |
| | | * 委托开仓价 |
| | | */ |
| | | private BigDecimal entrustOpeningPrice; |
| | |
| | | @Mapping(source = "entrustPrice", target = "entrustOpeningPrice") |
| | | @Mapping(source = "createTime", target = "entrustTime") |
| | | @Mapping(source = "entrustAmount", target = "prePaymentAmount") |
| | | @Mapping(source = "entrustType", target = "orderType") |
| | | public abstract ContractOrderEntity entrustOrderToOrder(ContractEntrustOrderEntity orderEntity); |
| | | |
| | | @Mapping(source = "createTime", target = "entrustTime") |
| | |
| | | @ApiModelProperty("订单ID") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空") |
| | | @ApiModelProperty("订单类型 1开多,2开空,3平多,4平空") |
| | | private int orderType; |
| | | |
| | | @ApiModelProperty("订单状态 1成交 2撤单") |
| | | private int orderStatus; |
| | | |
| | | @ApiModelProperty("开仓均价") |
| | | private BigDecimal openingPrice; |
| | | |
| | |
| | | |
| | | ContractOrderEntity orderEntity = ContractEntrustOrderEntityMapper.INSTANCE.entrustOrderToOrder(entrustOrderEntity); |
| | | orderEntity.setTradeType(ContractOrderEntity.TRADE_TYPE_MARK_PRICE); |
| | | orderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CANCEL); |
| | | orderEntity.setOrderStatus(ContractOrderEntity.ORDER_STATUS_CANCEL); |
| | | int i = contractOrderDao.insert(orderEntity); |
| | | |
| | | contractEntrustOrderDao.deleteById(entrustOrderEntity.getId()); |
| | |
| | | totalReturn = needReturn.subtract(contractOrderEntity.getClosingFeeAmount()); |
| | | // 总的是收益-平仓手续费 |
| | | BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); |
| | | |
| | | memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); |
| | | |
| | | // 流水记录 TODO 531e |
| | |
| | | // 更新钱包 |
| | | // 总的是收益-平仓手续费 |
| | | BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); |
| | | memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); |
| | | |
| | | memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); |
| | | |
| | | insertAccountFlow(order, wallet, profitLossPrice, "止盈平仓"); |
| | | |
| | |
| | | contractOrderService.save(contractOrderEntity); |
| | | |
| | | contractHoldOrderService.removeById(order.getId()); |
| | | log.info("保证金:{}", prePrice); |
| | | log.info("盈亏:{}", profitLossPrice); |
| | | // 将需要退回的减去手续费 |
| | | BigDecimal needReturn = prePrice.add(profitLossPrice); |
| | | log.info("退回的钱:{}", needReturn); |
| | | //总退回金额=保证金+收益-手续费 |
| | | totalReturn = needReturn.subtract(contractOrderEntity.getClosingFeeAmount()); |
| | | // 更新钱包 |
| | | // 总的是收益-平仓手续费 |
| | | BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); |
| | | |
| | | memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); |
| | | |
| | | insertAccountFlow(order, wallet, profitLossPrice, "开多止损平仓"); |
| | |
| | | String symbol = order.getSymbol(); |
| | | Long memberId = order.getMemberId(); |
| | | // 本次需要退回的预付款 |
| | | BigDecimal prePrice = order.getPrePaymentAmount(); |
| | | BigDecimal prePrice = order.getBondAmount(); |
| | | MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); |
| | | |
| | | if (wallet != null) { |
| | |
| | | contractOrderEntity.setRewardRatio(rewardRatio); |
| | | contractOrderDao.insert(contractOrderEntity); |
| | | |
| | | log.info("盈亏:{}", profitOrLoss); |
| | | log.info("手续费:{}", holdOrderEntity.getOpeningFeeAmount()); |
| | | log.info("保证金:{}", holdOrderEntity.getBondAmount()); |
| | | // 计算盈利或亏损后可用金额和总金额应该增加或减少的 |
| | | BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).add(profitOrLoss); |
| | | log.info("金额:{}", addMoney); |
| | | log.info("----->:{}", contractOrderEntity.getOpeningFeeAmount()); |
| | | |
| | | memberWalletContractDao.increaseWalletContractBalanceById(addMoney, profitOrLoss.subtract(contractOrderEntity.getOpeningFeeAmount()), null, walletContract.getId()); |
| | | // 计算佣金 |