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