From a8c2a27cada164f0326977faaf4c292116f29085 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 31 Mar 2021 11:32:16 +0800
Subject: [PATCH] Merge branch 'activity' of http://120.27.238.55:7000/r/exchange into activity
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 2 +-
src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 33 +++++++++++++++++++++------------
src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 7 +++++++
3 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
index c7afd75..b7304af 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -19,6 +19,7 @@
import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService;
import com.xcong.excoin.modules.contract.service.ContractHoldOrderService;
import com.xcong.excoin.modules.contract.service.ContractOrderService;
+import com.xcong.excoin.modules.contract.service.RabbitOrderService;
import com.xcong.excoin.modules.documentary.common.NoticeConstant;
import com.xcong.excoin.modules.documentary.dao.FollowFollowerOrderRelationDao;
import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao;
@@ -179,19 +180,19 @@
}
}
- private void closingFollowerOrders(MemberEntity memberEntity, ContractHoldOrderEntity holdOrderEntity) {
+ private void closingFollowerOrders(MemberEntity memberEntity, ContractHoldOrderEntity holdOrderEntity, ContractOrderEntity contractOrderEntity) {
// 判断当前持仓是否为跟单订单
-// if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == holdOrderEntity.getContractType()) {
-// updateFollowOrderRelation(holdOrderEntity.getId(), contractOrderEntity.getId());
-//
-// // 若为交易员,则平仓跟随者订单
-// if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
-// followOrderOperationService.closingFollowOrders(holdOrderEntity.getOrderNo());
-// } else {
-// //followFollowerProfitDao.updateFollowerProfitByTradeMemberId(holdOrderEntity.getBondAmount(), profitOrLoss, traderInfoEntity.getMemberId(), memberEntity.getId());
-// LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.CLOSE_ORDER_TITLE, StrUtil.format(NoticeConstant.CLOSE_ORDER_CONTENT, contractOrderEntity.getSymbol(), contractOrderEntity.getClosingPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString(), profitOrLoss.setScale(2, BigDecimal.ROUND_HALF_UP).toString(), traderInfoEntity.getNickname()));
-// }
-// }
+ if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == holdOrderEntity.getContractType()) {
+ FollowTraderInfoEntity traderInfoEntity = followTraderInfoDao.selectTraderInfoByOrderId(holdOrderEntity.getId());
+ updateFollowOrderRelation(holdOrderEntity.getId(), contractOrderEntity.getId());
+
+ // 若为交易员,则平仓跟随者订单
+ if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
+ followOrderOperationService.closingFollowOrders(holdOrderEntity.getOrderNo());
+ } else {
+ LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.CLOSE_ORDER_TITLE, StrUtil.format(NoticeConstant.CLOSE_ORDER_CONTENT, contractOrderEntity.getSymbol(), contractOrderEntity.getClosingPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString(), contractOrderEntity.getRewardAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString(), traderInfoEntity.getNickname()));
+ }
+ }
}
@@ -288,6 +289,8 @@
if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == order.getPositionType()) {
ThreadPoolUtils.sendWholePrice(memberId);
deleteEntrustCloseOrder(order.getOrderNo());
+ } else {
+ closingFollowerOrders(memberEntity, order, contractOrderEntity);
}
}
}
@@ -389,6 +392,8 @@
if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == order.getPositionType()) {
ThreadPoolUtils.sendWholePrice(memberId);
deleteEntrustCloseOrder(order.getOrderNo());
+ } else {
+ closingFollowerOrders(memberEntity, order, contractOrderEntity);
}
}
}
@@ -488,6 +493,8 @@
if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == order.getPositionType()) {
ThreadPoolUtils.sendWholePrice(memberId);
deleteEntrustCloseOrder(order.getOrderNo());
+ } else {
+ closingFollowerOrders(memberEntity, order, contractOrderEntity);
}
}
}
@@ -586,6 +593,8 @@
if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == order.getPositionType()) {
ThreadPoolUtils.sendWholePrice(memberId);
deleteEntrustCloseOrder(order.getOrderNo());
+ } else {
+ closingFollowerOrders(memberEntity, order, contractOrderEntity);
}
}
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index 05c3810..a738a3d 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -536,7 +536,7 @@
continue;
}
-// holdOrderEntity.setForceClosingPrice(getForceSetPrice(wholePriceData, holdOrderEntity, holdOrderDataModel.getSymbol()));
+ holdOrderEntity.setStopProfitPrice(CalculateUtil.calForcePriceForWhole(memberEntity, holdOrderEntity));
contractHoldOrderDao.deleteById(holdOrderDataModel.getId());
ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
index ba1125e..bf072e2 100644
--- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -163,6 +163,13 @@
return result;
}
+ /**
+ * 开仓价 +/- (权益 - 其他币种成本 - 当前币种维持保证金)/(规格*张数)
+ *
+ * @param memberEntity
+ * @param contractHoldOrderEntity
+ * @return
+ */
public static BigDecimal calForcePriceForWhole(MemberEntity memberEntity, ContractHoldOrderEntity contractHoldOrderEntity) {
ContractHoldOrderDao holdOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
MemberWalletContractDao walletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
--
Gitblit v1.9.1