From 9cca1388e8567f68dfe4d3d9e4d16b9247100a84 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 26 Aug 2020 16:10:54 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 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 48a7aec..706dda4 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,6 +6,7 @@ import com.xcong.excoin.common.enumerates.CoinTypeEnum; import com.xcong.excoin.common.enumerates.OrderClosingTypeEnum; import com.xcong.excoin.common.system.service.CommonService; +import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao; import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.dao.ContractOrderDao; import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; @@ -31,6 +32,7 @@ import com.xcong.excoin.modules.member.entity.MemberSettingEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; +import com.xcong.excoin.rabbit.pricequeue.OrderModel; import com.xcong.excoin.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -38,6 +40,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -51,30 +54,22 @@ @Resource private MemberDao memberDao; - @Resource private OrderWebsocketServiceImpl orderWebsocketService; - @Resource private ContractHoldOrderDao contractHoldOrderDao; - @Resource private ContractOrderDao contractOrderDao; - @Resource private CommonService commonService; - @Resource private MemberWalletContractDao memberWalletContractDao; - @Resource private CacheSettingUtils cacheSettingUtils; - @Resource private RedisUtils redisUtils; @Resource private MemberSettingDao memberSettingDao; - @Resource private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; @Resource @@ -85,6 +80,8 @@ private FollowTraderProfitDetailDao followTraderProfitDetailDao; @Resource private FollowFollowerProfitDao followFollowerProfitDao; + @Resource + private ContractEntrustOrderDao contractEntrustOrderDao; @Transactional(rollbackFor = Exception.class) @Override @@ -261,7 +258,7 @@ MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); - MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(holdOrderEntity.getMemberId(), CoinTypeEnum.USDT.name()); + MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(holdOrderEntity.getMemberId(), CoinTypeConvert.convertContractTypeToCoin(symbol)); if (walletContract != null) { BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(symbol); // 盈亏 @@ -324,12 +321,13 @@ if (holdOrderEntity.getSymbolCntSale() != 0) { holdOrderEntity.setOpeningFeeAmount(holdOrderEntity.getOpeningFeeAmount().subtract(fee)); + holdOrderEntity.setBondAmount(holdOrderEntity.getBondAmount().subtract(bondAmount)); contractHoldOrderDao.updateById(holdOrderEntity); } else { contractHoldOrderDao.deleteById(holdOrderEntity.getId()); } - BigDecimal changeAmount = profitOrLoss.add(bondAmount).subtract(fee); + BigDecimal changeAmount = profitOrLoss.add(bondAmount); memberWalletContractDao.increaseWalletContractBalanceById(changeAmount, profitOrLoss.subtract(fee), null, walletContract.getId()); @@ -339,4 +337,25 @@ } } + + @Override + public void entrustCloseOrder(List<OrderModel> list) { + if (CollUtil.isNotEmpty(list)) { + List<Long> ids = new ArrayList<>(); + list.forEach(model -> ids.add(model.getOrderId())); + List<ContractEntrustOrderEntity> contractEntrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByIds(ids); + + if (CollUtil.isNotEmpty(contractEntrustOrderEntities)) { + for (ContractEntrustOrderEntity entrustOrderEntity : contractEntrustOrderEntities) { + closeOrder(entrustOrderEntity); + } + } else { + log.info("平仓委托单未找到"); + } + } + } + + private void closeOrder(ContractEntrustOrderEntity entrustOrder) { + log.info("执行平仓委托"); + } } -- Gitblit v1.9.1