From 8dcc1ffea99306ebaa9b48fb739f0b627f706d84 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 16 三月 2020 15:19:37 +0800 Subject: [PATCH] vip 等级 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java | 128 ++++++++++++++++++++---------------------- 1 files changed, 60 insertions(+), 68 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 4ca3a02..5e09016 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,14 +7,19 @@ import javax.annotation.Resource; +import org.hibernate.annotations.LazyCollection; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPPreInfoMapper; import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo; 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.vip.UserVIPInfoService; @@ -27,15 +32,12 @@ @Resource private UserVIPPreInfoMapper userVIPPreInfoMapper; - + @Resource private HongBaoV2CountService hongBaoV2CountService; - + @Resource private ThreeSaleSerivce threeSaleSerivce; - - @Resource - private UserVIPInfoService userVIPInfoService; @Override public void addUserVIPPreInfo(UserVIPPreInfo info) throws UserVIPPreInfoException { @@ -68,45 +70,66 @@ return infoList.get(0); } - @RequestSerializableByKeyService(key = "#uid") @Transactional(rollbackFor = Exception.class) @Override - public void verifyVipCondition(Long uid) { + public void verifyVipPreInfo(Long uid, boolean inviteSuccess) { if (uid == null || uid <= 0) return; - // 楠岃瘉鏄惁VIP - boolean vip = userVIPInfoService.isVIP(uid); - if (vip) { - return; - } + verifyCondition(uid); - // 閭�璇疯鍗� - 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; + // 楠岃瘉涓婄骇 + if (inviteSuccess) { + UserInfo boss = threeSaleSerivce.getBoss(uid); + if (boss != null) { + verifyVipPreInfoBoss(boss.getId()); + } } - - // 涓�闃舵 - boolean process2 = twoProcess(uid, countZiGou, countShare, firstTeam, secondTeam); - if (!process2) { - return; - } - - vipProcess(uid, countZiGou, countShare, firstTeam, secondTeam); } - + + // 涓婄骇楠岃瘉 + 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 @@ -114,11 +137,6 @@ * @param secondTeam */ private boolean oneProcess(Long uid, long countZiGou, long countShare, long firstTeam, long secondTeam) { - UserVIPPreInfo oldInfo = userVIPPreInfoMapper.selectByUidAndProcess(uid, UserVIPPreInfo.PROCESS_1); - if (oldInfo != null) { - return true; - } - if (countZiGou >= Constant.VIP_PROCESS_1_ZIGOU || countShare >= Constant.VIP_PROCESS_1_SHARE || (firstTeam >= Constant.VIP_PROCESS_1_TEAM && secondTeam >= Constant.VIP_PROCESS_1_TEAM_SECOND)) { UserVIPPreInfo info = new UserVIPPreInfo(); @@ -131,10 +149,10 @@ } return false; } - - + /** - * 涓�闃舵 + * 浜岄樁娈� + * * @param uid * @param countZiGou * @param countShare @@ -142,11 +160,6 @@ * @param secondTeam */ private boolean twoProcess(Long uid, long countZiGou, long countShare, long firstTeam, long secondTeam) { - UserVIPPreInfo oldInfo = userVIPPreInfoMapper.selectByUidAndProcess(uid, UserVIPPreInfo.PROCESS_2); - if (oldInfo != null) { - return true; - } - if (countZiGou >= Constant.VIP_PROCESS_2_ZIGOU || countShare >= Constant.VIP_PROCESS_2_SHARE || (firstTeam >= Constant.VIP_PROCESS_2_TEAM && secondTeam >= Constant.VIP_PROCESS_2_TEAM_SECOND)) { UserVIPPreInfo info = new UserVIPPreInfo(); @@ -159,26 +172,5 @@ } return false; } - - - /** - * 涓�闃舵 - * @param uid - * @param countZiGou - * @param countShare - * @param firstTeam - * @param secondTeam - */ - private boolean vipProcess(Long uid, long countZiGou, long countShare, long firstTeam, long secondTeam) { - if (countZiGou >= Constant.VIP_PROCESS_3_ZIGOU || countShare >= Constant.VIP_PROCESS_3_SHARE - || (firstTeam >= Constant.VIP_PROCESS_3_TEAM && secondTeam >= Constant.VIP_PROCESS_3_TEAM_SECOND)) { - - - - return true; - } - return false; - } - - + } -- Gitblit v1.8.0