From 25c4984eabfa00888c498e8458a61a632bae5687 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 06 Aug 2020 11:34:52 +0800 Subject: [PATCH] 20200806 代码提交 --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java | 39 ++++++++++++++++++++++++++++++++++----- 1 files changed, 34 insertions(+), 5 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 8f7b81f..0173007 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 @@ -13,11 +13,13 @@ import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper; +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; import com.xcong.excoin.modules.documentary.dao.FollowFollowerSettingDao; import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao; +import com.xcong.excoin.modules.documentary.entity.FollowFollowerOrderRelationEntity; import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity; import com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; @@ -40,6 +42,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -71,6 +74,10 @@ @Resource private FollowTraderInfoDao followTraderInfoDao; + @Resource + private RabbitOrderService rabbitOrderService; + + @Override public void addFollowerOrder(Long id) { log.info("进入跟单处理逻辑"); @@ -78,7 +85,6 @@ ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(id); List<FollowFollowerSettingEntity> followerSettings = followFollowerSettingDao.selectAllFollowerSettingByTradeMemberId(holdOrderEntity.getMemberId()); - log.info("---->{}, {}", followerSettings.size(), holdOrderEntity.getMemberId()); // 开仓价 BigDecimal openPrice = holdOrderEntity.getOpeningPrice(); PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); @@ -109,6 +115,7 @@ } if (symbolCnt <= 0) { + LogRecordUtils.insertFollowerNotice(followerSetting.getMemberId(), NoticeConstant.OPEN_ORDER_FOLLOW_FAIL_TITLE, StrUtil.format(NoticeConstant.OPEN_ORDER_FOLLOW_FAIL_CONTENT, followTraderInfoEntity.getNickname())); continue; } } @@ -160,15 +167,24 @@ followHoldOrder.setBondAmount(bondAmount.add(openFeePrice)); followHoldOrder.setOperateNo(1); // 设置合约类型 - holdOrderEntity.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY); + followHoldOrder.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY); - ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity); + ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(followHoldOrder); contractOrderEntity.setOpeningTime(new Date()); - contractHoldOrderDao.insert(holdOrderEntity); + contractHoldOrderDao.insert(followHoldOrder); int i = contractOrderDao.insert(contractOrderEntity); - if (i > 0) { memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId()); + + FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity(); + relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y); + relationEntity.setMemberId(followHoldOrder.getMemberId()); + relationEntity.setOrderId(followHoldOrder.getId()); + relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD); + relationEntity.setTradeId(followTraderInfoEntity.getId()); + relationEntity.setTradeMemberId(followTraderInfoEntity.getMemberId()); + relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo()); + followFollowerOrderRelationDao.insert(relationEntity); // 发送爆仓消息 sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo()); @@ -200,4 +216,17 @@ } producer.sendPriceOperate(JSONObject.toJSONString(model)); } + + + @Override + public void closingFollowOrders(String orderNo) { + List<FollowFollowerOrderRelationEntity> orderRelations = followFollowerOrderRelationDao.selectFollowHoldOrderByTradeOrderNo(orderNo); + if (CollUtil.isNotEmpty(orderRelations)) { + for (FollowFollowerOrderRelationEntity orderRelation : orderRelations) { + List<Long> ids= new ArrayList<>(); + ids.add(orderRelation.getOrderId()); + rabbitOrderService.cancelHoldOrder(ids); + } + } + } } -- Gitblit v1.9.1