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