From a7ee66c023bf37798e87c4c801a9c99cfbc97f90 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 04 Mar 2021 18:19:27 +0800 Subject: [PATCH] 20210304 最大跟随人数 --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java | 41 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 36 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 48348a5..e0f411b 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 @@ -1,8 +1,11 @@ package com.xcong.excoin.modules.documentary.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xcong.excoin.common.enumerates.CoinTypeEnum; import com.xcong.excoin.common.enumerates.RabbitPriceTypeEnum; import com.xcong.excoin.common.response.Result; @@ -26,20 +29,21 @@ 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.FollowProducer; import com.xcong.excoin.rabbit.producer.OrderProducer; import com.xcong.excoin.utils.CacheSettingUtils; import com.xcong.excoin.utils.CalculateUtil; import com.xcong.excoin.utils.LogRecordUtils; import com.xcong.excoin.utils.ThreadPoolUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -79,15 +83,33 @@ private RabbitOrderService rabbitOrderService; @Resource private MemberLevelRateDao memberLevelRateDao; + @Resource + private MemberSettingDao memberSettingDao; + + @Autowired + private FollowProducer followProducer; @Override + @Transactional(rollbackFor = Exception.class) public void addFollowerOrder(Long id) { - log.info("进入跟单处理逻辑"); + log.info("进入跟单处理逻辑 : {}", id); // 查询交易员订单 ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(id); + if (holdOrderEntity == null) { + try { + log.info("等待事务提交:{}", id); + Thread.sleep(200); + followProducer.sendAddFollowOrder(id); + return; + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + List<FollowFollowerSettingEntity> followerSettings = followFollowerSettingDao.selectAllFollowerSettingByTradeMemberId(holdOrderEntity.getMemberId()); + log.info("进入跟单处理逻辑---跟单人数"+followerSettings.size()); // 开仓价 BigDecimal openPrice = holdOrderEntity.getOpeningPrice(); PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); @@ -101,6 +123,14 @@ if (CollUtil.isNotEmpty(followerSettings)) { for (FollowFollowerSettingEntity followerSetting : followerSettings) { + //更新更新消息提醒的状态 + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(followerSetting.getId()); + if(ObjectUtil.isNotEmpty(memberSettingEntity)){ + Long memberId = memberSettingEntity.getMemberId(); + log.info("更新更新消息提醒的状态"); + memberSettingDao.updateMessageReminderByMemberId(memberId); + } + if (!followerSetting.getSymbols().contains(holdOrderEntity.getSymbol().replace("/USDT", ""))) { log.info("不在跟单币种内,不跟单:{},{}", followerSetting.getSymbols(), holdOrderEntity.getSymbol()); continue; @@ -165,6 +195,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); -- Gitblit v1.9.1