From 2366d2ada9e67f915a06b51b3c5be08a00847f0c Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 10:47:06 +0800
Subject: [PATCH] 用户邀请码激活

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 107 insertions(+), 9 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java
index 6380155..faf6869 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java
@@ -17,12 +17,17 @@
 import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.bus.user.UserRank;
 import com.yeshi.fanli.entity.bus.user.UserRankRecord;
+import com.yeshi.fanli.exception.ThreeSaleException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserRankService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.vo.user.UserInfoExtraVO;
 
 
@@ -43,6 +48,13 @@
 
 	@Resource
 	private ConfigService configService;
+	
+	@Resource
+	private ThreeSaleSerivce threeSaleSerivce;
+	
+	@Resource
+	private UserInfoService userInfoService;
+	
 
 	@Override
 	public UserInfoExtraVO getRankInfo(Long uid) throws UserInfoExtraException, Exception {
@@ -52,13 +64,9 @@
 			throw new UserInfoExtraException(1, "鐢ㄦ埛闄勫姞淇℃伅涓嶅瓨鍦�");
 		}
 
-		// 绛夌骇鍒楄〃
-		List<UserRank> listRank = userRankService.getAllRank();
-		if (listRank == null || listRank.size() == 0) {
-			throw new UserInfoExtraException(1, "绯荤粺绛夌骇涓嶅瓨鍦�");
-		}
-		extraVO.setListRank(listRank);
-
+		// 绛夌骇瀵圭収琛�
+		String contrast = configService.get("user_rank_contrast");
+		extraVO.setRankContrast(contrast);
 		// 鐗瑰埆鎻愰啋
 		String rankTip = configService.get("user_rank_tip");
 		extraVO.setRankTip(rankTip);
@@ -264,8 +272,98 @@
 			}
 
 		}
-
 		return userInfoExtra;
 	}
-
+	
+	@Override
+	public String activateInviteCode(Long uid, String inviteCode) throws UserInfoExtraException{
+		if (uid == null || inviteCode == null) {
+			throw new UserInfoExtraException(1, "鐢ㄦ埛id銆侀個璇风爜涓嶈兘涓虹┖");
+		}
+		
+		// 琚個璇蜂汉淇℃伅
+		UserInfo invitee = userInfoService.selectByPKey(uid);
+		if (invitee == null) {
+			throw new UserInfoExtraException(1, "鐢ㄦ埛涓嶅瓨鍦�");
+		}
+		
+		// 閭�璇蜂汉淇℃伅
+		UserInfo inviter = userInfoService.getInfoByPhoneOrInviteCode(inviteCode, inviteCode);
+		if (inviter == null) {
+			throw new UserInfoExtraException(1, "璇疯緭鍏ユ湁鏁堢殑閭�璇风爜");
+		}
+		
+		// 缁戝畾鍏崇郴
+		try {
+			threeSaleSerivce.bindRelationshipByInviteCode(invitee, inviter);
+		} catch (ThreeSaleException e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+			throw new UserInfoExtraException(1, "婵�娲诲け璐�");
+		}
+		
+		
+		// 閭�璇风爜鏈夋晥銆佺敓鎴愰個璇风爜
+		String code = UserUtil.getInviteCode(uid); 
+		if (code == null || code.trim().length() == 0) {
+			throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触");
+		}
+		
+		UserInfoExtra userInfoExtra = new UserInfoExtra();
+		userInfoExtra.setUserInfo(invitee);
+		userInfoExtra.setInviteCode(code);
+		
+		// 淇濆瓨棰濆淇℃伅
+		saveUserInfoExtra(userInfoExtra);
+		
+		
+		Long id = userInfoExtra.getId();
+		if (id == null) {
+			throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触");
+		}
+		
+		return code;
+	}
+	
+	@Override
+	public UserInfoExtra getUserInfoExtra(Long uid) {
+		return userInfoExtraMapper.getInfoExtraByUid(uid);
+	}
+	
+	@Override
+	public String getUserInviteCode(Long uid) throws UserInfoExtraException {
+		
+		UserInfoExtra userInfoExtra = userInfoExtraMapper.getInfoExtraByUid(uid);
+		if (userInfoExtra == null) {
+			userInfoExtra = new UserInfoExtra();
+		}
+		
+		// 閭�璇风爜
+		String inviteCode = userInfoExtra.getInviteCode();
+		
+		if (inviteCode == null || inviteCode.trim().length() == 0) {
+			// 鍒ゆ柇鐢ㄦ埛
+			int relationshipNum = threeSaleSerivce.getSuccessRelationshipNum(uid);
+			
+			if (relationshipNum > 0) {
+				// 閭�璇风爜鏈夋晥銆佺敓鎴愰個璇风爜
+				inviteCode = UserUtil.getInviteCode(uid); 
+				if (inviteCode == null || inviteCode.trim().length() == 0) {
+					throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触");
+				}
+				
+				// 淇濆瓨閭�璇风爜
+				userInfoExtra.setUserInfo(new UserInfo(uid));
+				userInfoExtra.setInviteCode(inviteCode);
+				// 淇濆瓨闄勫姞淇℃伅
+				saveUserInfoExtra(userInfoExtra);
+			}
+		}
+		
+		return inviteCode;
+	}
+	
 }

--
Gitblit v1.8.0