From 41aec48fb1e43f42807b1c71c9aeb19ebbf7506c Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期五, 09 八月 2019 15:56:11 +0800
Subject: [PATCH] 积分相关

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 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 03a867b..2b49b9d 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
@@ -581,4 +581,73 @@
 	}
 	
 	
+	
+	@Override
+	public UserInfo getUserByInviteCode(String inviteCode) throws UserInfoExtraException{
+		if (StringUtil.isNullOrEmpty(inviteCode)) {
+			throw new UserInfoExtraException(1, "閭�璇风爜涓嶈兘涓虹┖");
+		}
+		// 閭�璇蜂汉淇℃伅
+		UserInfo inviter = userInfoService.getInfoByPhoneOrInviteCode(inviteCode, inviteCode);
+		if (inviter == null) {
+			throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�");
+		}
+		return inviter;
+	}
+	
+	
+	@Override
+	public UserInfo getInviterInfo(Long uid, String code) throws UserInfoExtraException{
+		if (code == null) {
+			throw new UserInfoExtraException(1, "code淇℃伅涓嶅畬鏁�");
+		}
+		
+		// 鐢ㄦ埛淇℃伅
+		UserInfo invitee = userInfoService.selectByPKey(uid);
+		if (invitee == null) {
+			throw new UserInfoExtraException(1, "鐢ㄦ埛涓嶅瓨鍦�");
+		}
+		
+		// 鐢ㄦ埛棰濆淇℃伅
+		UserInfoExtra extra = userInfoExtraMapper.getInfoExtraByUid(uid);
+		if (extra != null) {
+			String inviteCodeHas = extra.getInviteCode();
+			if (inviteCodeHas != null && inviteCodeHas.trim().length() > 0) {
+				throw new UserInfoExtraException(1, "宸茬粡婵�娲�, 鏃犻渶鍐嶆婵�娲�");
+			}
+		}
+		
+		// 鑾峰彇寰俊淇℃伅
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code);
+		if (weiXinUser == null) {
+			throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触");
+		}
+		String wxUnionId = weiXinUser.getUnionid();
+		if (wxUnionId == null || wxUnionId.trim().length() == 0) {
+			throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触");
+		}
+		
+		// 楠岃瘉鏁版嵁
+		String wxUnionIdExist = invitee.getWxUnionId();
+		if (StringUtil.isNullOrEmpty(wxUnionIdExist)) {
+			UserInfo newUser = userInfoService.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid());
+			if (newUser != null) {
+				throw new UserInfoExtraException(1, "姝ゅ井淇″凡琚叾浠栧笎鍙风粦瀹�");
+			}
+		} else if (!wxUnionId.equals(wxUnionIdExist)){
+			throw new UserInfoExtraException(1, "缁戝畾寰俊涓庢縺娲诲井淇′笉涓�鑷�");
+		}
+		
+		// 閭�璇蜂汉ID
+		Long inviterId = userInviteRecordService.getNewestInviterId(wxUnionId);
+		if (inviterId == null) {
+			throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�");
+		}
+		
+		UserInfo inviter = userInfoService.selectByPKey(inviterId);
+		if (inviter == null) {
+			throw new UserInfoExtraException(1, "瀵瑰簲鐨勯個璇峰叧绯讳笉瀛樺湪");
+		}
+		return inviter;
+	}
 }

--
Gitblit v1.8.0