From 0b57cfd62e842b309d03467b96a331c673ecad7c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 21 四月 2020 14:08:18 +0800
Subject: [PATCH] 删除普通会员等级

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java |  144 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 97 insertions(+), 47 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 4801f09..19b1323 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
@@ -10,60 +10,80 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.DateUtil;
 
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
 import com.yeshi.fanli.dao.mybatis.user.UserInviteSeparateMapper;
-import com.yeshi.fanli.dto.msg.MsgOtherVIPDTO;
+import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
+import com.yeshi.fanli.dto.mq.user.body.ThreeSaleSeparateMQMsg;
 import com.yeshi.fanli.entity.bus.user.ThreeSale;
 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.service.inter.msg.UserOtherMsgNotificationService;
+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;
-import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 @Service
 public class UserInviteSeparateServiceImpl implements UserInviteSeparateService {
 
 	@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 UserOtherMsgNotificationService userOtherMsgNotificationService;
+	private UserInviteMsgNotificationService userInviteMsgNotificationService;
+
+	@Lazy
+	@Resource
+	private UserInviteValidRecordService userInviteValidRecordService;
+
+	@Lazy
+	@Resource
+	private UserInviteValidNumService userInviteValidNumService;
+	
+	@Resource(name = "producer")
+	private Producer producer;
+	
+	
 
 	@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);
@@ -74,12 +94,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);
@@ -89,14 +109,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) {
@@ -105,44 +123,76 @@
 
 		Long workerId = record.getWorkerId();
 		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 (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);
+		
+		if (!Constant.IS_TEST) {
+			ThreeSaleSeparateMQMsg msg = new ThreeSaleSeparateMQMsg(bossId, workerId , new Date());
+			Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.threeSaleSeparate, msg);
+			producer.send(message);
 		}
 		
+		// 鐩存帴鏈夋晥绮変笣鑴辩-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 (!separate) { 
-			// 鏈劚绂�
-			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_INVALID);
-		} else { 
-			// 鑴辩鍏崇郴
-			userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_SUCCESS);
-
-			// 鑴辩閭�璇峰叧绯�
-			threeSaleSerivce.inviteSeparate(workerId, bossId);
-
-			int limitDays = Integer.parseInt(userVipConfigService.getValueByKey("invite_separate_limit_days"));
-			
-			// 娑堟伅 TODO
-			UserInfo userInfo = userInfoService.selectByPKey(workerId);
-			MsgOtherVIPDTO msgboss = new MsgOtherVIPDTO();
-			msgboss.setContent1(userInfo.getNickName() + workerId + "浜�"+ TimeUtil.formatDateDot(record.getCreateTime()) + "鎴愬姛鍗囩骇鎴愪负浼氬憳 ");
-			msgboss.setContent2("寰堥仐鎲撅紝浣犳湭鑳藉湪" + limitDays + "澶╁崌绾т负浼氬憳 ");
-			msgboss.setContent3("宸蹭笌鍏惰劚绂婚個璇峰叧绯�");
-			userOtherMsgNotificationService.teamSplitCallBoss(bossId, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgboss);
+			// 鎻愰啋涓婁笂绾ц劚绂�
+			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