From 444da68b958e53c7fa122db62723fce25368ee1d Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期五, 29 十一月 2019 11:17:57 +0800 Subject: [PATCH] vip 配置信息 + 会员验证 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java index 38917a3..1f45dd5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java @@ -1,5 +1,8 @@ package com.yeshi.fanli.service.impl.user.vip; +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -12,15 +15,38 @@ import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPInfoMapper; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo; +import com.yeshi.fanli.entity.shop.BanLiShopOrder; import com.yeshi.fanli.exception.user.vip.UserVIPInfoException; +import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; +import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; +import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; +import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; @Service public class UserVIPInfoServiceImpl implements UserVIPInfoService { @Resource private UserVIPInfoMapper userVIPInfoMapper; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private UserVipConfigService userVipConfigService; + + @Resource + private HongBaoV2CountService hongBaoV2CountService; + + @Resource + private IntegralDetailService integralDetailService; + + @Resource + private BanLiShopOrderService banLiShopOrderService; + @Override public void addUserVIPInfo(UserVIPInfo info) throws UserVIPInfoException { @@ -129,4 +155,61 @@ return map; } + + @Override + public boolean verifyConform(Long uid) { + if (uid == null || uid <= 0) + return false; + + UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid); + if (extra == null) + return false; + + String limtDate = userVipConfigService.getValueByKey("vip_execute_time"); + Date executeDate = null; + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); + executeDate = format.parse(limtDate); + } catch (ParseException e) { + e.printStackTrace(); + } + if (executeDate == null) + return false; + + // 1銆佺洿鎺ョ矇涓濓紙浠� 2020 骞� 1 鏈� 1 鏃ヨ捣鐩存帴绮変笣浜х敓鏈夋晥璁㈠崟锛� + BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay")); + long teamNum = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, executeDate.getTime(), payMoney); + if (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime()) { + long limitNum = Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_old_user")); + if (teamNum < limitNum) + return false; + } else { + long limitNum = Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_new_user")); + if (teamNum < limitNum) + return false; + } + + // 2銆佺疮璁¤嚜璐繑鍒┾墺100 鍏冿紙浠庢敞鍐屾澘鏍楀揩鐪佽捣锛夛紱 + BigDecimal fanMoney = new BigDecimal(userVipConfigService.getValueByKey("require_fan_money")); + BigDecimal purchase = hongBaoV2CountService.getRewardMoneyBySelf(uid); + if (purchase.compareTo(fanMoney) < 0) + return false; + + // 3銆佺疮璁¢噾甯佲墺10000 鏋氾紙浠庢敞鍐屾澘鏍楀揩鐪佽捣锛夛紱 + BigDecimal goldCoin = integralDetailService.getCumulativeMoney(uid); + BigDecimal limitGoldCoin = new BigDecimal(userVipConfigService.getValueByKey("require_gold_coin")); + if (goldCoin.compareTo(limitGoldCoin) < 0) + return false; + + // 4銆佷娇鐢ㄧ孩鍖呪墺1 娆� + List<Integer> list = new ArrayList<Integer>(); + list.add(BanLiShopOrder.STATE_SUCCESS); + long useHongBao = banLiShopOrderService.countByUidAndState(uid, list); + long limitHongBao = Long.parseLong(userVipConfigService.getValueByKey("require_shop_buy")); + if (useHongBao < limitHongBao) + return false; + + // 绗﹀悎鏉′欢 + return true; + } } -- Gitblit v1.8.0