From f6a912c1a6a26c809568f964941fb4ad4483274e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 31 May 2021 11:19:40 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 68 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index d2828d9..c3f9a97 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -15,6 +15,7 @@
import com.xcong.excoin.common.enumerates.RabbitPriceTypeEnum;
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.common.system.service.CommonService;
+import com.xcong.excoin.modules.coin.service.CoinService;
import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao;
import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao;
import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
@@ -108,6 +109,9 @@
@Autowired
private FollowProducer followProducer;
+ @Autowired
+ private CoinService coinService;
+
@Transactional(rollbackFor = Exception.class)
@Override
public Result submitOrder(SubmitOrderDto submitOrderDto) {
@@ -121,6 +125,14 @@
return Result.loading("loading_type");
}
+ BigDecimal total = coinService.getAllWalletAmount(memberIdLong);
+ Map<String, Object> data = new HashMap<>();
+ if (total.compareTo(AppContants.BASE_MIN_AMOUNT) > 0) {
+ data.put("baseUrl", AppContants.BASE_URL_L2);
+ } else {
+ data.put("baseUrl", AppContants.BASE_URL_L1);
+ }
+
// 判断当前对应的持仓/委托
if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD) {
List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ALL, memberEntity.getId());
@@ -130,7 +142,9 @@
}
// 逐仓逻辑
- return doPositionTypeForAdd(submitOrderDto, memberEntity);
+ Result result = doPositionTypeForAdd(submitOrderDto, memberEntity);
+ result.setData(data);
+ return result;
} else {
List<ContractHoldOrderEntity> holdList = contractHoldOrderDao.selectMemberHoldOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD, memberEntity.getId());
List<ContractEntrustOrderEntity> entrustList = contractEntrustOrderDao.selectMemberEntrustOrderByPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD, memberEntity.getId());
@@ -139,7 +153,9 @@
}
// 全仓逻辑
- return doPositionTypeForWhole(submitOrderDto, memberEntity);
+ Result result = doPositionTypeForWhole(submitOrderDto, memberEntity);
+ result.setData(data);
+ return result;
}
}
@@ -213,7 +229,7 @@
memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
// 发送预估强平价
- ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
+// ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
// 计算佣金
ThreadPoolUtils.calReturnMoney(memberEntity.getId(), openFeePrice, contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
@@ -266,7 +282,7 @@
memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
// 发送预估强平价
- ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
+// ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
// 计算佣金
ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
@@ -385,17 +401,7 @@
// 若该用户为交易员且开启带单模式,则发送带单异步
if (isOpenFollow) {
- FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
- relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
- relationEntity.setMemberId(holdOrderEntity.getMemberId());
- relationEntity.setOrderId(holdOrderEntity.getId());
- relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
- relationEntity.setTradeId(tradeInfo.getId());
- relationEntity.setTradeMemberId(tradeInfo.getMemberId());
- relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo());
- followFollowerOrderRelationDao.insert(relationEntity);
-
- followProducer.sendAddFollowOrder(holdOrderEntity.getId());
+ sendFollowOrder(tradeInfo, holdOrderEntity);
// ThreadPoolUtils.sendFollowOrderTask(holdOrderEntity.getId());
}
// 提交成功
@@ -405,6 +411,20 @@
return Result.fail(MessageSourceUtils.getString("member_service_0067"));
}
+ @Override
+ public void sendFollowOrder(FollowTraderInfoEntity tradeInfo, ContractHoldOrderEntity holdOrderEntity) {
+ FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
+ relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
+ relationEntity.setMemberId(holdOrderEntity.getMemberId());
+ relationEntity.setOrderId(holdOrderEntity.getId());
+ relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
+ relationEntity.setTradeId(tradeInfo.getId());
+ relationEntity.setTradeMemberId(tradeInfo.getMemberId());
+ relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo());
+ followFollowerOrderRelationDao.insert(relationEntity);
+
+ followProducer.sendAddFollowOrder(holdOrderEntity.getId());
+ }
/**
* 全仓模式--若当前已经存在持仓,则合并当前持仓
@@ -527,7 +547,8 @@
holdOrderListVo.setReturnRate(returnRate);
holdOrderListVo.setProfitOrLoss(rewardRatio);
if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) {
- BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(holdOrderEntity.getSymbol(), memberEntity);
+ BigDecimal forcePrice = CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity, 1);
+// contractHoldOrderDao.updateForcePriceBySymbolAndMemberId(forcePrice, memberEntity.getId(), holdOrderEntity.getSymbol());
holdOrderListVo.setForceClosingPrice(forcePrice);
}
resultList.add(holdOrderListVo);
@@ -648,7 +669,7 @@
return Result.loading("loading_type");
}
- List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol(), 1);
+ List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol(), symbolDto.getType());
if (CollUtil.isEmpty(holdOrderEntities)) {
return Result.fail("订单不存在");
}
@@ -846,6 +867,10 @@
if (i > 0) {
// 发送爆仓消息
sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
+
+ if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == holdOrderEntity.getContractType()) {
+ followProducer.sendChangeFollowOrderBond(changeBondDto);
+ }
return Result.ok("调整成功");
}
return Result.fail("调整失败");
@@ -859,7 +884,7 @@
BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
- List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbolTest(memberEntity.getId(), ContractOrderEntity.CONTRACTTYPE_NORMAL);
+ List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbolTest(memberEntity.getId(), null);
MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
// if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) {
// // 当前合约委托单
@@ -1160,9 +1185,10 @@
// 发送爆仓消息
sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
} else {
- holdOrderEntity.setHoldAmount(holdAmount);
- contractHoldOrderDao.updateById(holdOrderEntity);
- memberWalletContractDao.increaseWalletContractBalanceById(thisTimeHold.negate(), thisTimeHold.negate(), null, wallet.getId());
+// holdOrderEntity.setHoldAmount(holdAmount);
+// contractHoldOrderDao.updateById(holdOrderEntity);
+// memberWalletContractDao.increaseWalletContractBalanceById(thisTimeHold.negate(), thisTimeHold.negate(), null, wallet.getId());
+// ThreadPoolUtils.sendWholePrice(holdOrderEntity.getMemberId());
}
}
}
--
Gitblit v1.9.1