From c3a5e164cbabbfc5f66e1356cb0de657ce3f58b9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 20 三月 2020 13:56:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java | 184 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 177 insertions(+), 7 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java index 9c51828..15fd8c8 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java @@ -7,24 +7,49 @@ import javax.annotation.Resource; -import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPPreInfoMapper; -import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo; -import com.yeshi.fanli.exception.user.vip.UserVIPInfoException; -import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPPreInfoMapper; +import com.yeshi.fanli.dto.msg.MsgAccountVipDTO; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo; +import com.yeshi.fanli.exception.user.vip.UserVIPPreInfoException; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService; +import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.TimeUtil; +import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService; + +@Service public class UserVIPPreInfoServiceImpl implements UserVIPPreInfoService { @Resource private UserVIPPreInfoMapper userVIPPreInfoMapper; + @Resource + private HongBaoV2CountService hongBaoV2CountService; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private MsgAccountDetailService msgAccountDetailService; + + + @Override - public void addUserVIPPreInfo(UserVIPPreInfo info) throws UserVIPInfoException { + public void addUserVIPPreInfo(UserVIPPreInfo info) throws UserVIPPreInfoException { if (info == null || info.getUid() == null || info.getProcess() == null) - throw new UserVIPInfoException(1, "淇℃伅涓嶅畬鏁�"); + throw new UserVIPPreInfoException(1, "淇℃伅涓嶅畬鏁�"); UserVIPPreInfo oldInfo = userVIPPreInfoMapper.selectByUidAndProcess(info.getUid(), info.getProcess()); if (oldInfo != null) - throw new UserVIPInfoException(2, "杩涘害宸插瓨鍦�"); + throw new UserVIPPreInfoException(2, "杩涘害宸插瓨鍦�"); if (info.getCreateTime() == null) info.setCreateTime(new Date()); userVIPPreInfoMapper.insertSelective(info); @@ -48,4 +73,149 @@ return infoList.get(0); } + @RequestSerializableByKeyService(key = "#uid") + @Transactional(rollbackFor = Exception.class) + @Override + public void verifyVipPreInfo(Long uid, boolean inviteSuccess) { + if (uid == null || uid <= 0) + return; + + verifyCondition(uid); + + // 楠岃瘉涓婄骇 + if (inviteSuccess) { + UserInfo boss = threeSaleSerivce.getBoss(uid); + if (boss != null) { + verifyVipPreInfoBoss(boss.getId()); + } + } + } + + // 涓婄骇楠岃瘉 + private void verifyVipPreInfoBoss(Long uid) { + if (uid == null || uid <= 0) + return; + + verifyCondition(uid); + } + + private void verifyCondition(Long uid) { + try { + // 楠岃瘉浜岄樁娈� + UserVIPPreInfo oldInfo = userVIPPreInfoMapper.selectByUidAndProcess(uid, UserVIPPreInfo.PROCESS_2); + if (oldInfo != null) { + return; + } + + // 閭�璇疯鍗� + long countZiGou =hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY, + HongBaoV2.TYPE_ZIGOU); + // 閭�璇疯鍗� + long countShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY, + HongBaoV2.TYPE_SHARE_GOODS); + // 闃熷憳 + long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1); + long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1); + + // 涓�闃舵 + boolean process1 = oneProcess(uid, countZiGou, countShare, firstTeam, secondTeam); + if (!process1) { + return; + } + + // 浜岄樁娈� + twoProcess(uid, countZiGou, countShare, firstTeam, secondTeam); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + + /** + * 涓�闃舵 + * + * @param uid + * @param countZiGou + * @param countShare + * @param firstTeam + * @param secondTeam + */ + private boolean oneProcess(Long uid, long countZiGou, long countShare, long firstTeam, long secondTeam) { + boolean process = false; + String msg = ""; + if (countZiGou >= Constant.VIP_PROCESS_1_ZIGOU) { + process = true; + msg = "鎭枩浣狅紒杩斿埄璁㈠崟杈惧埌 "+ Constant.VIP_PROCESS_1_ZIGOU +"绗�"; + } else if (countShare >= Constant.VIP_PROCESS_1_SHARE) { + process = true; + msg = "鎭枩浣狅紒鍒嗕韩璁㈠崟杈惧埌 "+ Constant.VIP_PROCESS_1_SHARE +"绗�"; + } else if (firstTeam >= Constant.VIP_PROCESS_1_TEAM && secondTeam >= Constant.VIP_PROCESS_1_TEAM_SECOND) { + process = true; + msg = "鐩存帴绮変笣杈惧埌"+ Constant.VIP_PROCESS_1_TEAM +"浜猴紝闂存帴绮変笣杈惧埌 "+ Constant.VIP_PROCESS_1_TEAM_SECOND +"浜�"; + } + + if (process) { + try { + UserVIPPreInfo info = new UserVIPPreInfo(); + info.setUid(uid); + info.setProcess(UserVIPPreInfo.PROCESS_1); + info.setCreateTime(new Date()); + info.setUpdateTime(new Date()); + addUserVIPPreInfo(info); + + // 娑堟伅 + MsgAccountVipDTO msgDto = new MsgAccountVipDTO(); + msgDto.setStatus("绯荤粺宸插皢浣犵殑璐︽埛鐢卞揩鐪佽揪浜哄崌绾т负鏅�氫細鍛�"); + msgDto.setEquity("浠庢敹鍒版湰娑堟伅璧凤紝浣犲皢鑾峰緱鍏ㄩ儴鏅�氫細鍛樻潈鐩�"); + msgAccountDetailService.addMsgVIP(uid, msg, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgDto); + } catch (UserVIPPreInfoException e) { + e.printStackTrace(); + } + } + return process; + } + + /** + * 浜岄樁娈� + * + * @param uid + * @param countZiGou + * @param countShare + * @param firstTeam + * @param secondTeam + */ + private boolean twoProcess(Long uid, long countZiGou, long countShare, long firstTeam, long secondTeam) { + boolean process = false; + String msg = ""; + if (countZiGou >= Constant.VIP_PROCESS_2_ZIGOU) { + process = true; + msg = "鎭枩浣狅紒杩斿埄璁㈠崟杈惧埌 "+ Constant.VIP_PROCESS_2_ZIGOU +"绗�"; + } else if (countShare >= Constant.VIP_PROCESS_2_SHARE) { + process = true; + msg = "鎭枩浣狅紒鍒嗕韩璁㈠崟杈惧埌 "+ Constant.VIP_PROCESS_2_SHARE +"绗�"; + } else if (firstTeam >= Constant.VIP_PROCESS_2_TEAM && secondTeam >= Constant.VIP_PROCESS_2_TEAM_SECOND) { + process = true; + msg = "鐩存帴绮変笣杈惧埌"+ Constant.VIP_PROCESS_2_TEAM +"浜猴紝闂存帴绮変笣杈惧埌 "+ Constant.VIP_PROCESS_2_TEAM_SECOND +"浜�"; + } + + if (process) { + try { + UserVIPPreInfo info = new UserVIPPreInfo(); + info.setUid(uid); + info.setProcess(UserVIPPreInfo.PROCESS_2); + info.setCreateTime(new Date()); + info.setUpdateTime(new Date()); + addUserVIPPreInfo(info); + + // 娑堟伅 + MsgAccountVipDTO msgDto = new MsgAccountVipDTO(); + msgDto.setStatus("绯荤粺宸插皢浣犵殑璐︽埛鐢辨櫘閫氫細鍛樺崌绾т负楂樼骇浼氬憳"); + msgDto.setEquity("浠庢敹鍒版湰娑堟伅璧凤紝浣犲皢鑾峰緱鍏ㄩ儴楂樼骇浼氬憳鏉冪泭"); + msgAccountDetailService.addMsgVIP(uid, msg, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgDto); + } catch (UserVIPPreInfoException e) { + e.printStackTrace(); + } + } + return process; + } + } -- Gitblit v1.8.0