From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 02 四月 2020 14:45:20 +0800 Subject: [PATCH] vip 消息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 118 insertions(+), 1 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 2962055..87c9ce3 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 @@ -1,12 +1,28 @@ package com.yeshi.fanli.service.impl.user.invite; +import java.util.Date; +import java.util.List; + import javax.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.yeshi.utils.DateUtil; import com.yeshi.fanli.dao.mybatis.user.UserInviteSeparateMapper; +import com.yeshi.fanli.dto.msg.MsgOtherVIPDTO; +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.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.vip.UserVIPPreInfoService; +import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; +import com.yeshi.fanli.util.TimeUtil; @Service public class UserInviteSeparateServiceImpl implements UserInviteSeparateService { @@ -14,10 +30,57 @@ @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; @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); + inviteSeparate.setWorkerId(workerId); + inviteSeparate.setState(UserInviteSeparate.STATE_INIT); + inviteSeparate.setEndTime(DateUtil.plusDayDate(limitDays, new Date())); + inviteSeparate.setCreateTime(new Date()); + inviteSeparate.setUpdateTime(new Date()); + userInviteSeparateMapper.insertSelective(inviteSeparate); + + UserInfo userInfo = userInfoService.getUserById(workerId); + // 娑堟伅 + MsgOtherVIPDTO msgboss = new MsgOtherVIPDTO(); + msgboss.setContent1(userInfo.getNickName() + " " + workerId); + msgboss.setContent2("浜�" + TimeUtil.formatDateDot(new Date()) + "鎴愬姛鍗囩骇鎴愪负浼氬憳"); + msgboss.setContent3("浠婃棩璧�" + limitDays + "澶╁唴锛屼綘鏈兘鎴愪负浼氬憳灏嗕細涓庡叾鑴辩閭�璇峰叧绯� "); + userOtherMsgNotificationService.teamVIPCallBoss(bossId, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgboss); } @Override @@ -30,10 +93,64 @@ userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, state); } - @Override 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) { + if (record == null) + return; + + 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); + if (info == null) { + separate = true; + } else if (info.getCreateTime().getTime() >= record.getEndTime().getTime()) { + separate = true; + } + + + 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); + } + } + + } -- Gitblit v1.8.0