From aba192810c97b03ca3ca4aef1d44f0b60aa243e8 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期五, 17 四月 2020 17:41:47 +0800
Subject: [PATCH] 队员脱离  + 自动发圈不替换价格系信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java |  123 +++++++++++++++++++++++++---------------
 1 files changed, 77 insertions(+), 46 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java
index 2dd4cef..3be3da5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java
@@ -15,10 +15,13 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
 import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
 import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
+import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
+import com.yeshi.fanli.service.inter.user.invite.UserInviteValidRecordService;
 import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
 import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
 
@@ -27,41 +30,48 @@
 
 	@Resource
 	private UserInviteSeparateMapper userInviteSeparateMapper;
-	
+
 	@Resource
 	private UserVipConfigService userVipConfigService;
-	
+
 	@Lazy
 	@Resource
 	private ThreeSaleSerivce threeSaleSerivce;
-	
+
 	@Lazy
 	@Resource
 	private UserVIPPreInfoService userVIPPreInfoService;
-	
+
 	@Lazy
 	@Resource
 	private UserInfoService userInfoService;
-	
+
 	@Lazy
 	@Resource
 	private UserInviteMsgNotificationService userInviteMsgNotificationService;
+
+	@Lazy
+	@Resource
+	private UserInviteValidRecordService userInviteValidRecordService;
+
+	@Lazy
+	@Resource
+	private UserInviteValidNumService userInviteValidNumService;
 
 	@Override
 	public void insertSelective(UserInviteSeparate record) {
 		userInviteSeparateMapper.insertSelective(record);
 	}
-	
-	
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void addPreSeparateRecord(Long workerId, Long bossId) {
 		// 鏇存柊涔嬪墠鐘舵�佸け鏁�
 		userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_INVALID);
-		
+
 		// 闄愬埗澶╂暟
 		int limitDays = Integer.parseInt(userVipConfigService.getValueByKey("invite_separate_limit_days"));
-		
+
 		// 淇濆瓨璁板綍
 		UserInviteSeparate inviteSeparate = new UserInviteSeparate();
 		inviteSeparate.setBossId(bossId);
@@ -72,12 +82,12 @@
 		inviteSeparate.setUpdateTime(new Date());
 		userInviteSeparateMapper.insertSelective(inviteSeparate);
 	}
-	
+
 	@Override
 	public void updateInvalidByBossId(Long uid) {
 		userInviteSeparateMapper.updateInvalidByBossId(uid);
 	}
-	
+
 	@Override
 	public void updateStateByWorkerIdAndBossId(Long workerId, Long bossId, int state) {
 		userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, state);
@@ -87,13 +97,12 @@
 	public UserInviteSeparate selectByWorkerIdAndBossId(Long workerId, Long bossId) {
 		return userInviteSeparateMapper.selectByWorkerIdAndBossId(workerId, bossId);
 	}
-	
+
 	@Override
 	public List<UserInviteSeparate> getHandleOverdue(int start, int count) {
 		return userInviteSeparateMapper.getHandleOverdue(start, count);
 	}
-	
-	
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void inviteSeparate(UserInviteSeparate record) {
@@ -104,45 +113,67 @@
 		Long bossId = record.getBossId();
 		ThreeSale threeSale = threeSaleSerivce.getMyBoss(workerId);
 		if (threeSale == null) {
-			// 鎴愬姛鑴辩 涓嶅彂娑堟伅
+			// 宸茬粡鎴愬姛鑴辩 涓嶅彂娑堟伅
 			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_SUCCESS);
 			return;
-		} 
-		
+		}
+
 		boolean separate = false;
-		UserVIPPreInfo info = userVIPPreInfoService.getVipByProcess(bossId, UserVIPPreInfo.PROCESS_1);
+		UserVIPPreInfo info = userVIPPreInfoService.getLatestProcessInfo(bossId);
 		if (info == null) {
 			separate = true;
-		} else if (info.getCreateTime().getTime() >= record.getEndTime().getTime()) {
-			separate = true;	 
-		}
-		
+		} else if (info.getProcess() == UserVIPPreInfo.PROCESS_1) {
+			if (info.getCreateTime().getTime() < record.getEndTime().getTime()) {
+				separate = true; // 鎴愪负浼氬憳 鏅氫簬 鑴辩鏃堕棿
+			}
+		} else if (info.getProcess() == UserVIPPreInfo.PROCESS_2) {
+			Date upTime = info.getCreateTime();
+			UserVIPPreInfo info1 = userVIPPreInfoService.getVipByProcess(bossId, UserVIPPreInfo.PROCESS_1);
+			if (info1 != null) {
+				upTime = info1.getCreateTime();
+			}
 
-		if (!separate) { 
-			// 鏈劚绂�
-			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_INVALID);
-		} else { 
-			// 鑴辩鍏崇郴
-			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_SUCCESS);
-			// 鑴辩閭�璇峰叧绯�
-			threeSaleSerivce.inviteSeparate(workerId, bossId);
-
-			
-			UserInfo worker = userInfoService.selectByPKey(workerId);
-			
-			// 鎻愰啋涓婄骇鑴辩
-			userInviteMsgNotificationService.fansDivorced(bossId, worker.getNickName(), new Date());
-			
-			// 鎻愰啋涓婁笂绾ц劚绂�
-			ThreeSale threeSaleSuper = threeSaleSerivce.getMyBoss(bossId);
-			if (threeSaleSuper != null) { // 绮変笣鍗囩骇鎻愰啋
-				Long bossIdSuper = threeSaleSuper.getBoss().getId();
-				UserInfo boss = userInfoService.selectByPKey(workerId);
-				userInviteMsgNotificationService.fansDivorcedIndirect(bossIdSuper, worker.getNickName(),
-						boss.getNickName(), new Date());
+			if (upTime.getTime() < record.getEndTime().getTime()) {
+				separate = true; // 鎴愪负浼氬憳 鏅氫簬 鑴辩鏃堕棿
 			}
 		}
+
+		// 鏈劚绂�
+		if (!separate) {
+			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_INVALID);
+			return;
+		}
+
+		// 鑴辩鍏崇郴
+		userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_SUCCESS);
+		// 鑴辩閭�璇峰叧绯�
+		threeSaleSerivce.inviteSeparate(workerId, bossId);
+		// 鐩存帴鏈夋晥绮変笣鑴辩-1
+		userInviteValidNumService.reduceValidNumFirst(bossId, workerId);
+		// 闂存帴鏈夋晥绮変笣鑴辩-1
+		ThreeSale threeSaleSuper = threeSaleSerivce.getMyBoss(bossId);
+		if (threeSaleSuper != null) {
+			Long bossIdSuper = threeSaleSuper.getBoss().getId();
+			userInviteValidNumService.reduceValidNumSecond(bossIdSuper, workerId);
+		}
+		
+		// 閫氱煡涓婄骇娑堟伅
+		try {
+			// 鎻愰啋涓婄骇鑴辩
+			Date date = new Date();
+			UserInfo worker = userInfoService.selectByPKey(workerId);
+			String nickName = worker.getNickName();
+			userInviteMsgNotificationService.fansDivorced(bossId, nickName, date);
+
+			// 鎻愰啋涓婁笂绾ц劚绂�
+			if (threeSaleSuper != null) {
+				Long bossIdSuper = threeSaleSuper.getBoss().getId();
+				UserInfo boss = userInfoService.selectByPKey(workerId);
+				userInviteMsgNotificationService.fansDivorcedIndirect(bossIdSuper, nickName, boss.getNickName(), date);
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
 	}
-	
-	
+
 }

--
Gitblit v1.8.0