From 4e43b6496e163787ea7397ca422c9e081ac2857a Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 05 Feb 2021 15:42:32 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java index aa2e782..7e50874 100644 --- a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java @@ -134,6 +134,7 @@ log.info("钱包地址不存在:{}", followerSetting.getMemberId()); continue; } + MemberLevelRateEntity levelRateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(followerSetting.getMemberId(), holdOrderEntity.getSymbol()); // 开仓手续费 建仓价*规格*手数*手续费率 BigDecimal openFeePrice = openPrice.multiply(lotNumber) @@ -143,20 +144,20 @@ // 保证金 BigDecimal bondAmount = openPrice.multiply(lotNumber).multiply(new BigDecimal(symbolCnt)) - .multiply(BigDecimal.ONE.divide(new BigDecimal(holdOrderEntity.getLeverRatio()))) + .multiply(BigDecimal.ONE.divide(new BigDecimal(levelRateEntity.getLevelRateUp()))) .setScale(8, BigDecimal.ROUND_DOWN); // 预付款 BigDecimal prePaymentAmount = bondAmount.add(openFeePrice).add(openFeePrice); if (prePaymentAmount.compareTo(walletContract.getAvailableBalance()) > -1) { log.info("可用金额不足"); + LogRecordUtils.insertFollowerNotice(followerSetting.getMemberId(), NoticeConstant.MONEY_NOT_ENOUGH_TITLE, StrUtil.format(NoticeConstant.MONEY_NOT_ENOUGH_CONTENT, followTraderInfoEntity.getNickname())); continue; } MemberEntity memberEntity = memberDao.selectById(followerSetting.getMemberId()); // 强平价 BigDecimal forceClosingPrice = CalculateUtil.getForceSetPrice(bondAmount, openPrice, symbolCnt, lotNumber, holdOrderEntity.getOpeningType(), memberEntity); - MemberLevelRateEntity levelRateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), holdOrderEntity.getSymbol()); ContractHoldOrderEntity followHoldOrder = new ContractHoldOrderEntity(); followHoldOrder.setMemberId(memberEntity.getId()); followHoldOrder.setOrderNo(commonService.generateOrderNo(memberEntity.getId())); @@ -164,6 +165,7 @@ followHoldOrder.setTradeType(ContractHoldOrderEntity.TRADE_TYPE_MARK); followHoldOrder.setSymbol(holdOrderEntity.getSymbol()); followHoldOrder.setSymbolCnt(symbolCnt); + followHoldOrder.setSymbolCntSale(symbolCnt); followHoldOrder.setSymbolSku(lotNumber); followHoldOrder.setLeverRatio(levelRateEntity.getLevelRateUp()); followHoldOrder.setForceClosingPrice(forceClosingPrice); @@ -196,7 +198,7 @@ followFollowerOrderRelationDao.insert(relationEntity); // 发送爆仓消息 - sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo()); + sendOrderBombMsg(followHoldOrder.getId(), followHoldOrder.getOpeningType(), forceClosingPrice, followHoldOrder.getSymbol(), followHoldOrder.getOperateNo(), followHoldOrder.getMemberId()); // 计算佣金 ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN); @@ -214,14 +216,14 @@ } } - public void sendOrderBombMsg(Long id, int type, BigDecimal forceClosingPrice, String symbol, int operateNo) { + public void sendOrderBombMsg(Long id, int type, BigDecimal forceClosingPrice, String symbol, int operateNo, Long memberId) { OrderModel model = null; // 开多 if (ContractHoldOrderEntity.OPENING_TYPE_MORE == type) { - model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_MORE_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo); + model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_MORE_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo, memberId); // 开空 } else { - model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_LESS_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo); + model = new OrderModel(id, RabbitPriceTypeEnum.CLOSE_LESS_BOMB.getValue(), forceClosingPrice.setScale(8, RoundingMode.HALF_UP).toPlainString(), symbol, operateNo, memberId); } producer.sendPriceOperate(JSONObject.toJSONString(model)); } -- Gitblit v1.9.1