From 16f6d4eedb8e2174f0959d7735a24d6c53d7b6e8 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 04 Mar 2021 12:02:27 +0800
Subject: [PATCH] 20210304   消息提醒

---
 src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 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 5290f00..0260e27 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,11 +29,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;
@@ -40,6 +41,7 @@
 import com.xcong.excoin.utils.ThreadPoolUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -79,15 +81,29 @@
     private RabbitOrderService rabbitOrderService;
     @Resource
     private MemberLevelRateDao memberLevelRateDao;
+    @Resource
+    private MemberSettingDao memberSettingDao;
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addFollowerOrder(Long id) {
-        log.info("进入跟单处理逻辑");
+        log.info("进入跟单处理逻辑 : {}", id);
         // 查询交易员订单
         ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(id);
 
+        while (holdOrderEntity == null) {
+            try {
+                log.info("等待事务提交:{}", id);
+                Thread.sleep(200);
+                holdOrderEntity = contractHoldOrderDao.selectById(id);
+            } 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 +117,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 +189,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);
@@ -197,7 +222,7 @@
                     followFollowerOrderRelationDao.insert(relationEntity);
 
                     // 发送爆仓消息
-                    sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
+                    sendOrderBombMsg(followHoldOrder.getId(), followHoldOrder.getOpeningType(), forceClosingPrice, followHoldOrder.getSymbol(), followHoldOrder.getOperateNo(), followHoldOrder.getMemberId());
 
                     // 计算佣金
                     ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);

--
Gitblit v1.9.1