From 598a52725286744f90ecb6726ea83292ec72f9d1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 04 十二月 2019 10:27:55 +0800
Subject: [PATCH] VIP的网页接口完善

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java |  154 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 130 insertions(+), 24 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
index b30d2bb..e5f8f95 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -25,6 +25,7 @@
 import com.yeshi.fanli.entity.shop.BanLiShopOrder;
 import com.yeshi.fanli.entity.system.BusinessSystem;
 import com.yeshi.fanli.exception.user.UserAccountException;
+import com.yeshi.fanli.exception.user.vip.UserVIPInfoException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.BusinessSystemService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -152,28 +153,28 @@
 
 	@Resource
 	private BindRemindService bindRemindService;
-	
+
 	@Resource
 	private UserVIPInfoService userVIPInfoService;
-	
+
 	@Resource
 	private HongBaoV2CountService hongBaoV2CountService;
-	
+
 	@Resource
 	private IntegralDetailService integralDetailService;
-	
+
 	@Resource
 	private BanLiShopOrderService banLiShopOrderService;
 
 	@Resource
 	private ConfigService configService;
-	
+
 	@Resource
 	private UserVipConfigService userVipConfigService;
-	
+
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
-	
+
 	/**
 	 * 鏂扮増鐧诲綍 V1.5.3
 	 * 
@@ -341,9 +342,9 @@
 		out.print(JsonUtil.loadTrueResult("璁板綍鎴愬姛"));
 	}
 
-	
 	/**
 	 * 鑾峰彇vip淇℃伅
+	 * 
 	 * @param acceptData
 	 * @param uid
 	 * @param out
@@ -354,7 +355,7 @@
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		UserInfo userInfo = userInfoService.selectByPKey(uid);
 		if (userInfo == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇ョ敤鎴蜂笉瀛樺湪"));
@@ -363,9 +364,9 @@
 		//
 		String inviteCode = "";
 		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
-		if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) 
+		if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
 			inviteCode = userInfoExtra.getInviteCode();
-			
+
 		UserVipRateVO vo = new UserVipRateVO();
 		vo.setId(uid);
 		vo.setInviteCode(inviteCode);
@@ -373,30 +374,49 @@
 		vo.setPortrait(userInfo.getPortrait());
 		vo.setHelpLink(userVipConfigService.getValueByKey("help_link_vip_h5"));
 		vo.setCsdLink(configService.get("customer_service_link"));
-	
-		// 鐪侀挶 -鑷喘浜х敓杩斿埄   
+
+		// 鐪侀挶 -鑷喘浜х敓杩斿埄
 		BigDecimal finishMoney = hongBaoV2CountService.getRewardMoneyBySelf(uid);
 		// 鍒嗕韩璧�
 		BigDecimal rewardShare = hongBaoV2CountService.getRewardMoneyByShare(uid);
 		// 閭�璇疯禋
-		BigDecimal rewardInvite = hongBaoV2CountService.getRewardMoneyByInvite(uid);		
-				
+		BigDecimal rewardInvite = hongBaoV2CountService.getRewardMoneyByInvite(uid);
+
 		UserVIPInfo userVIPInfo = userVIPInfoService.selectByUid(uid);
-		if (userVIPInfo != null && userVIPInfo.getState() != null 
+		vo.setVipInfo(userVIPInfo);
+		String leftTime = "";
+		if (userVIPInfo != null && userVIPInfo.getApplyTime() != null) {
+			// TODO 璁$畻鏃堕棿
+			long s = 48 * 60 * 60 - ((System.currentTimeMillis() - userVIPInfo.getApplyTime().getTime()) / 1000);
+			if (s > 3600) {
+				leftTime = s / 3600 + "灏忔椂";
+				leftTime = "杩樺墿" + leftTime;
+			} else if (s >= 60) {
+				leftTime = s / 60 + "鍒嗛挓";
+				leftTime = "杩樺墿" + leftTime;
+			} else if (s > 0) {
+				leftTime = s + "绉�";
+				leftTime = "杩樺墿" + leftTime;
+			}
+		}
+		vo.setLeftTime(leftTime);
+
+		if (userVIPInfo != null && userVIPInfo.getState() != null
 				&& userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) { // VIP
 			SimpleDateFormat format = new SimpleDateFormat("yyyy.mm.dd");
-			vo.setVip(true);
 			vo.setSuccessTime(format.format(userVIPInfo.getSuccessTime()));
 			vo.setConserveMoney(finishMoney.setScale(2));
 			vo.setEarnMoney(MoneyBigDecimalUtil.add(rewardShare, rewardInvite).setScale(2));
 		} else {
 			BigDecimal rate1 = new BigDecimal(5);
 			BigDecimal rate2 = new BigDecimal(12);
-			vo.setConserveMoney(MoneyBigDecimalUtil.mul2(finishMoney,  MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
-			vo.setEarnMoney( MoneyBigDecimalUtil.mul2(rewardShare,  MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
+			vo.setConserveMoney(
+					MoneyBigDecimalUtil.mul2(finishMoney, MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
+			vo.setEarnMoney(MoneyBigDecimalUtil.mul2(rewardShare, MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
 		}
+
 		vo.setFinishMoney(finishMoney.setScale(2));
-		
+
 		// 浼氬憳瑙勫垯鎵ц鏃堕棿
 		String limtDate = userVipConfigService.getValueByKey("vip_execute_time");
 		Date executeDate = null;
@@ -409,13 +429,14 @@
 		List<Integer> list = new ArrayList<Integer>();
 		list.add(BanLiShopOrder.STATE_SUCCESS);
 		BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay"));
-		
+
 		vo.setFinishGoldCoin(integralDetailService.getCumulativeMoney(uid));
 		vo.setFinishTeam(hongBaoV2CountService.countValidOrderTeamUserByUid(uid, executeDate.getTime(), payMoney));
 		vo.setFinishHongBao(banLiShopOrderService.countByUidAndState(uid, list));
-		
+
 		UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
-		if (extra !=null && (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime())) {
+		if (extra != null
+				&& (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime())) {
 			vo.setLimitTeam(Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_old_user")));
 		} else {
 			vo.setLimitTeam(Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_new_user")));
@@ -423,11 +444,96 @@
 		vo.setLimitHongBao(Long.parseLong(userVipConfigService.getValueByKey("require_shop_buy")));
 		vo.setLimitMoney(new BigDecimal(userVipConfigService.getValueByKey("require_fan_money")));
 		vo.setLimitgoldCoin(new BigDecimal(userVipConfigService.getValueByKey("require_gold_coin")));
-		
+
 		if (!StringUtil.isNullOrEmpty(callback)) {
 			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(vo)));
 		} else {
 			out.print(JsonUtil.loadTrueResult(vo));
 		}
 	}
+
+	/**
+	 * 寮�閫歏IP
+	 * 
+	 * @param callback
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "applyVip")
+	public void applyVip(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		UserInfo userInfo = userInfoService.selectByPKey(uid);
+		if (userInfo == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇ョ敤鎴蜂笉瀛樺湪"));
+			return;
+		}
+
+		// 鐪侀挶 -鑷喘浜х敓杩斿埄
+
+		// 浼氬憳瑙勫垯鎵ц鏃堕棿
+		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();
+		}
+		List<Integer> list = new ArrayList<Integer>();
+		list.add(BanLiShopOrder.STATE_SUCCESS);
+		BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay"));
+
+		BigDecimal finishGoldCoin = integralDetailService.getCumulativeMoney(uid);
+		long finishTeam = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, executeDate.getTime(), payMoney);
+		long finishHongBao = banLiShopOrderService.countByUidAndState(uid, list);
+		BigDecimal finishMoney = hongBaoV2CountService.getRewardMoneyBySelf(uid);
+
+		long limitTeam = 0;
+
+		UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
+		if (extra != null
+				&& (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime())) {
+			limitTeam = (Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_old_user")));
+		} else {
+			limitTeam = (Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_new_user")));
+		}
+		long limitHongBao = (Long.parseLong(userVipConfigService.getValueByKey("require_shop_buy")));
+		BigDecimal limitMoney = (new BigDecimal(userVipConfigService.getValueByKey("require_fan_money")));
+		BigDecimal limitgoldCoin = (new BigDecimal(userVipConfigService.getValueByKey("require_gold_coin")));
+
+		if (finishGoldCoin.compareTo(limitgoldCoin) >= 0 && finishTeam >= limitTeam && finishHongBao >= limitHongBao
+				&& finishMoney.compareTo(limitMoney) >= 0) {// 鏉′欢绗﹀悎
+			;
+		} else {
+			if (!StringUtil.isNullOrEmpty(callback)) {
+				out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鏈揪鍒板紑閫氭潯浠�")));
+			} else {
+				out.print(JsonUtil.loadFalseResult("鏈揪鍒板紑閫氭潯浠�"));
+			}
+			return;
+		}
+		// 寮�閫�
+		try {
+			userVIPInfoService.applyVIP(uid);
+		} catch (UserVIPInfoException e) {
+			if (!StringUtil.isNullOrEmpty(callback)) {
+				out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(e.getMsg())));
+			} else {
+				out.print(JsonUtil.loadFalseResult(e.getMsg()));
+			}
+			return;
+		}
+
+		if (!StringUtil.isNullOrEmpty(callback)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("")));
+		} else {
+			out.print(JsonUtil.loadTrueResult(""));
+		}
+	}
+
 }

--
Gitblit v1.8.0