From b19d2e730b0ea707b500b307f58c46ba0cef695f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 18 九月 2019 18:41:21 +0800
Subject: [PATCH] 抖音广告监测修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java |  105 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 93 insertions(+), 12 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..bc31fdd 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
@@ -16,17 +16,17 @@
 
 import com.yeshi.fanli.dao.mybatis.user.UserInfoExtraMapper;
 import com.yeshi.fanli.dao.mybatis.user.UserRankRecordMapper;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.bus.user.ThreeSale;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 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.entity.bus.user.WeiXinUser;
-import com.yeshi.fanli.exception.ThreeSaleException;
+import com.yeshi.fanli.exception.user.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.ForbiddenUserIdentifyCodeService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
@@ -34,6 +34,7 @@
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserInviteRecordService;
 import com.yeshi.fanli.service.inter.user.UserRankService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.account.UserUtil;
@@ -322,7 +323,7 @@
 	}
 	
 	@Override
-	public String activateInviteCode(Long uid, String inviteCode, String platform, String version) throws UserInfoExtraException{
+	public String activateInviteCode(Long uid, String inviteCode) throws UserInfoExtraException{
 		if (uid == null || inviteCode == null) {
 			throw new UserInfoExtraException(1, "鐢ㄦ埛id銆侀個璇风爜涓嶈兘涓虹┖");
 		}
@@ -349,7 +350,7 @@
 		
 		// 缁戝畾鍏崇郴
 		try {
-			threeSaleSerivce.bindRelationshipByInviteCode(invitee, inviter, platform, version);
+			threeSaleSerivce.bindRelationshipByInviteCode(invitee, inviter);
 		} catch (ThreeSaleException e) {
 			try {
 				LogHelper.errorDetailInfo(e);
@@ -384,7 +385,7 @@
 	
 	
 	@Override
-	public void activationInviteWX(Long uid, String code, String platform, String version) throws UserInfoExtraException{
+	public void activationInviteWX(WXAccountInfoDTO wxAccount, Long uid, String code) throws UserInfoExtraException{
 		if (uid == null || code == null) {
 			throw new UserInfoExtraException(1, "婵�娲讳俊鎭笉瀹屾暣");
 		}
@@ -405,7 +406,7 @@
 		}
 		
 		// 鑾峰彇寰俊淇℃伅
-		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code);
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code,wxAccount.getAppId(),wxAccount.getAppSecret());
 		if (weiXinUser == null) {
 			throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触");
 		}
@@ -426,14 +427,25 @@
 			UserInfo updateUserInfo = new UserInfo(uid);
 			updateUserInfo.setWxOpenId(weiXinUser.getOpenid());
 			updateUserInfo.setWxUnionId(weiXinUser.getUnionid());
-			if (!StringUtil.isNullOrEmpty(weiXinUser.getNickname())) {
-				updateUserInfo.setWxName(weiXinUser.getNickname());
-				updateUserInfo.setNickName(weiXinUser.getNickname());
+			updateUserInfo.setWxName(weiXinUser.getNickname());
+			updateUserInfo.setWxPic(weiXinUser.getHeadimgurl());
+			
+			// 灏嗛粯璁ゆ樀绉版浛鎹㈡垚寰俊鏄电О
+			String defaultNickName = Constant.systemCommonConfig.getDefaultNickName();
+			if (!StringUtil.isNullOrEmpty(defaultNickName) && !StringUtil.isNullOrEmpty(weiXinUser.getNickname())) {
+				defaultNickName = defaultNickName + uid;
+				if ((defaultNickName.equals(invitee.getNickName()) || "杩斿埄鍒�".equals(invitee.getNickName()))) {
+					updateUserInfo.setNickName(weiXinUser.getNickname());
+				}
 			}
-			if (!StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl())) {
-				updateUserInfo.setWxPic(weiXinUser.getHeadimgurl());
+			
+			// 灏嗛粯璁ゅご鍍忔浛鎹㈡垚寰俊澶村儚
+			String defaultPortrait = Constant.systemCommonConfig.getDefaultPortrait();
+			if (!StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl()) && !StringUtil.isNullOrEmpty(defaultPortrait)
+					&& defaultPortrait.equals(invitee.getPortrait())) {
 				updateUserInfo.setPortrait(weiXinUser.getHeadimgurl());
 			}
+			
 			userInfoService.updateByPrimaryKeySelective(updateUserInfo);
 			
 		} else if (!wxUnionId.equals(wxUnionIdExist)){
@@ -465,7 +477,7 @@
 		
 		// 缁戝畾鍏崇郴
 		try {
-			threeSaleSerivce.bindRelationshipByWX(invitee, inviterId, threeSale, platform, version);
+			threeSaleSerivce.bindRelationshipByWX(invitee, inviterId, threeSale);
 		} catch (ThreeSaleException e) {
 			try {
 				LogHelper.errorDetailInfo(e);
@@ -581,4 +593,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(WXAccountInfoDTO wxAccount,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,wxAccount.getAppId(),wxAccount.getAppSecret());
+		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