From eb9d939661413fc70975b0a75b44126c257bdc49 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 14 Apr 2021 18:27:43 +0800
Subject: [PATCH] 20210414 测试账号的跟随者不返利给交易员
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 38 insertions(+), 12 deletions(-)
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 ac86e5c..c4ddc5f 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
@@ -6,9 +6,11 @@
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.common.contants.AppContants;
import com.xcong.excoin.common.enumerates.CoinTypeEnum;
+import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
import com.xcong.excoin.common.enumerates.OrderClosingTypeEnum;
import com.xcong.excoin.common.system.service.CommonService;
import com.xcong.excoin.modules.coin.entity.MemberAccountFlowEntity;
+import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao;
import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao;
import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
@@ -113,7 +115,14 @@
List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectBatchIds(ids);
if (CollUtil.isNotEmpty(holdOrderEntities)) {
for (ContractHoldOrderEntity holdOrder : holdOrderEntities) {
- cancelHoldOrderMethod(holdOrder);
+ // 判断仓位类型是否逐仓
+ if (holdOrder.getPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) {
+ // 逐仓平仓
+ cancelHoldOrderMethod(holdOrder);
+ } else {
+ // 全仓模式平仓
+ closingWholeOrder(holdOrder);
+ }
}
}
}
@@ -175,8 +184,9 @@
FollowTraderInfoEntity traderInfoEntity = null;
// 判断当前订单是否为跟单
if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == holdOrderEntity.getContractType()) {
- // 若不为交易员,则计算跟随者订单返利
- if (!MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
+ // 若不为交易员且不是测试账号,则计算跟随者订单返利
+ if (!MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader()) &&
+ !MemberEntity.ACCOUNT_TYPE_TEST.equals(memberEntity.getAccountType())) {
traderInfoEntity = followTraderInfoDao.selectTraderInfoByOrderId(holdOrderEntity.getId());
if (profitOrLoss.compareTo(BigDecimal.ZERO) > 0) {
// 计算需返利给交易员的金额
@@ -186,13 +196,24 @@
memberWalletContractDao.increaseWalletContractBalanceById(returnMoney, returnMoney, null, traderWallet.getId());
insertReturnProfitDetail(traderInfoEntity.getMemberId(), memberEntity.getId(), returnMoney, holdOrderEntity.getOrderNo());
//增加返佣提醒
- String orderNo = holdOrderEntity.getOrderNo();
- LogRecordUtils.insertFollowerNotice(traderInfoEntity.getMemberId(),
- NoticeConstant.RETURN_MONEY_TITLE,
- StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT,
- memberEntity.getInviteId(),
- orderNo,
- returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString()));
+// String orderNo = holdOrderEntity.getOrderNo();
+// LogRecordUtils.insertFollowerNotice(traderInfoEntity.getMemberId(),
+// NoticeConstant.RETURN_MONEY_TITLE,
+// StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT,
+// orderNo,
+// holdOrderEntity.getSymbol(),
+// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString()));
+// //带单返利的记录要在资产页面的其他记录
+// LogRecordUtils.insertMemberAccountMoneyChange(
+// traderInfoEntity.getMemberId(),
+// StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT_MAMC,
+// orderNo,
+// holdOrderEntity.getSymbol(),
+// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString()),
+// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP),
+// MemberWalletCoinEnum.WALLETCOINCODE.getValue(),
+// MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER,
+// MemberAccountMoneyChange.TYPE_WALLET_AGENT);
}
}
}
@@ -226,7 +247,7 @@
if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
followOrderOperationService.closingFollowOrders(holdOrderEntity.getOrderNo());
} else {
- followFollowerProfitDao.updateFollowerProfitByTradeMemberId(holdOrderEntity.getBondAmount(), profitOrLoss, traderInfoEntity.getMemberId(), memberEntity.getId());
+ //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()));
}
}
@@ -286,6 +307,11 @@
// 获取平仓张数
Integer closeCnt = (Integer) redisUtils.get(AppContants.CLOSING_ORDER_PREFIX + holdOrderEntity.getId());
+ // 无法从redis中获取平仓张数,说明来自一键平仓
+ if (closeCnt == null) {
+ closeCnt = holdOrderEntity.getSymbolCntSale();
+ holdOrderEntity.setSymbolCntSale(0);
+ }
MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId());
// 开多
@@ -511,7 +537,7 @@
continue;
}
-// holdOrderEntity.setForceClosingPrice(getForceSetPrice(wholePriceData, holdOrderEntity, holdOrderDataModel.getSymbol()));
+ holdOrderEntity.setStopLossPrice(CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity, 2));
contractHoldOrderDao.deleteById(holdOrderDataModel.getId());
ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
--
Gitblit v1.9.1