From c005d17037ce598b746559d2ba56912cb74dc8eb Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 03 Aug 2020 16:56:18 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java |   40 ++++++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 10 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 93c91f9..2932949 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
@@ -18,6 +18,7 @@
 import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao;
 import com.xcong.excoin.modules.documentary.dao.FollowFollowerSettingDao;
 import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao;
+import com.xcong.excoin.modules.documentary.entity.FollowFollowerOrderRelationEntity;
 import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
 import com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity;
 import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity;
@@ -71,12 +72,15 @@
     @Resource
     private FollowTraderInfoDao followTraderInfoDao;
 
+
     @Override
     public void addFollowerOrder(Long id) {
+        log.info("进入跟单处理逻辑");
         // 查询交易员订单
         ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(id);
 
         List<FollowFollowerSettingEntity> followerSettings = followFollowerSettingDao.selectAllFollowerSettingByTradeMemberId(holdOrderEntity.getMemberId());
+        log.info("---->{}, {}", followerSettings.size(), holdOrderEntity.getMemberId());
         // 开仓价
         BigDecimal openPrice = holdOrderEntity.getOpeningPrice();
         PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
@@ -89,6 +93,7 @@
         Long tradeMemberId = holdOrderEntity.getMemberId();
         if (CollUtil.isNotEmpty(followerSettings)) {
             for (FollowFollowerSettingEntity followerSetting : followerSettings) {
+                log.info("循环开始");
                 // 当前持仓张数
                 Integer holdingCnt = followFollowerOrderRelationDao.selectFollowerHoldingSymbolCnt(tradeMemberId, followerSetting.getMemberId());
 
@@ -100,13 +105,18 @@
                     symbolCnt = followerSetting.getFollowCnt() * holdOrderEntity.getSymbolCnt();
                 }
 
-                // 若张数+当前持仓张数大于最大持仓张数,则取最大持仓减去当前持仓,若差值小于等于0,则不下单
-                if (symbolCnt + holdingCnt> followerSetting.getMaxFollowCnt()) {
-                    symbolCnt = followerSetting.getMaxFollowCnt() - holdingCnt;
-                }
+                log.info("--->>>{}, {}", symbolCnt, followerSetting.getMaxFollowCnt());
+                if (followerSetting.getMaxFollowCnt() != null && followerSetting.getMaxFollowCnt() !=0) {
+                    // 若张数+当前持仓张数大于最大持仓张数,则取最大持仓减去当前持仓,若差值小于等于0,则不下单
+                    if (symbolCnt + holdingCnt > followerSetting.getMaxFollowCnt()) {
+                        symbolCnt = followerSetting.getMaxFollowCnt() - holdingCnt;
+                    }
 
-                if (symbolCnt <= 0) {
-                    continue;
+                    log.info("--->{}, {}, {}", symbolCnt, followerSetting.getMaxFollowCnt(), holdingCnt);
+                    if (symbolCnt <= 0) {
+//                        LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.OPEN_ORDER_TITLE, StrUtil.format(NoticeConstant.OPEN_ORDER_CONTENT, holdOrderEntity.getSymbol() + "开空", openPrice, followTraderInfoEntity.getNickname()));
+                        continue;
+                    }
                 }
 
                 MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(followerSetting.getMemberId(), CoinTypeEnum.USDT.name());
@@ -156,16 +166,26 @@
                 followHoldOrder.setBondAmount(bondAmount.add(openFeePrice));
                 followHoldOrder.setOperateNo(1);
                 // 设置合约类型
-                holdOrderEntity.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY);
+                followHoldOrder.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY);
 
-                ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
+                ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(followHoldOrder);
                 contractOrderEntity.setOpeningTime(new Date());
-                contractHoldOrderDao.insert(holdOrderEntity);
+                contractHoldOrderDao.insert(followHoldOrder);
                 int i = contractOrderDao.insert(contractOrderEntity);
-
+                log.info("----->{}", i);
                 if (i > 0) {
                     memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
+                    FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
+                    relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
+                    relationEntity.setMemberId(followHoldOrder.getMemberId());
+                    relationEntity.setOrderId(followHoldOrder.getId());
+                    relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
+                    relationEntity.setTradeId(followTraderInfoEntity.getId());
+                    relationEntity.setTradeMemberId(followTraderInfoEntity.getMemberId());
+                    relationEntity.setTradeOrderId(id);
+                    followFollowerOrderRelationDao.insert(relationEntity);
+
                     // 发送爆仓消息
                     sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo());
 

--
Gitblit v1.9.1