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