From 05aff76b13d8f9d5f011c5b1b14dc288ff121226 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 26 Feb 2021 15:59:08 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java | 26 ++++++++++++++++----------
1 files changed, 16 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 aa2e782..c12b384 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
@@ -26,11 +26,9 @@
import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService;
import com.xcong.excoin.modules.member.dao.MemberDao;
import com.xcong.excoin.modules.member.dao.MemberLevelRateDao;
+import com.xcong.excoin.modules.member.dao.MemberSettingDao;
import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
-import com.xcong.excoin.modules.member.entity.AgentReturnEntity;
-import com.xcong.excoin.modules.member.entity.MemberEntity;
-import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity;
-import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
+import com.xcong.excoin.modules.member.entity.*;
import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity;
import com.xcong.excoin.rabbit.pricequeue.OrderModel;
import com.xcong.excoin.rabbit.producer.OrderProducer;
@@ -79,6 +77,8 @@
private RabbitOrderService rabbitOrderService;
@Resource
private MemberLevelRateDao memberLevelRateDao;
+ @Resource
+ private MemberSettingDao memberSettingDao;
@Override
@@ -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);
@@ -209,19 +211,23 @@
LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), prePaymentAmount, walletContract.getAvailableBalance().subtract(prePaymentAmount), holdOrderEntity.getSymbol(), "买跌持仓", "买跌:" + holdOrderEntity.getSymbol());
LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.OPEN_ORDER_TITLE, StrUtil.format(NoticeConstant.OPEN_ORDER_CONTENT, holdOrderEntity.getSymbol() + "开空", openPrice, followTraderInfoEntity.getNickname()));
}
+ //更新更新消息提醒的状态
+ MemberSettingEntity memberSettingEntity = memberSettingDao.selectById(memberEntity.getId());
+ memberSettingEntity.setMessageReminder(1);
+ memberSettingDao.updateById(memberSettingEntity);
}
}
}
}
- 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