From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java |  126 +++++++++++++++++++++++++++--------------
 1 files changed, 83 insertions(+), 43 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
index ff1d4af..e622a7c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
@@ -4,17 +4,19 @@
 import java.util.List;
 
 import javax.annotation.Resource;
-import javax.transaction.Transactional;
 
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.user.UserExtraTaoBaoInfoMapper;
 import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
 import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
+import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException;
 import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
+import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
 import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
@@ -24,25 +26,27 @@
 
 	@Resource
 	private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper;
-	
+
 	@Resource
 	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
-	
+
+	@Resource
+	private UserAccountBindingHistoryService userAccountBindingHistoryService;
 
 	@Transactional
 	@Override
-	public void addRelationId(Long uid, String relationId, String taoBaoUid,String nickName, 
-			boolean valid) throws UserExtraTaoBaoInfoException{
-		
+	public void addRelationId(Long uid, String relationId, String taoBaoUid, String nickName, boolean valid)
+			throws UserExtraTaoBaoInfoException {
+
 		if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(1, "浼犻�掑弬鏁颁负绌�");
 		}
-		
+
 		// 楠岃瘉taoBaoUid鏄惁琚皝绂�
-		if(validateTaoBaoUidForbidden(taoBaoUid)) {
+		if (validateTaoBaoUidForbidden(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
 		}
-				
+
 		UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
 		taoBaoInfo.setUser(new UserInfo(uid));
 		taoBaoInfo.setTaoBaoNickName(nickName);
@@ -50,10 +54,12 @@
 		taoBaoInfo.setRelationId(relationId);
 		taoBaoInfo.setRelationValid(valid);
 		taoBaoInfo.setRelationUpdateTime(new Date());
-		
+
+		userExtraTaoBaoInfoMapper.clearUid(uid);
+
 		List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
 		if (list == null || list.size() == 0) {
-			//鏂板
+			// 鏂板
 			taoBaoInfo.setCreateTime(new Date());
 			userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
 		} else {
@@ -61,30 +67,30 @@
 			taoBaoInfo.setId(list.get(0).getId());
 			taoBaoInfo.setUpdateTime(new Date());
 			userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
-			
-			// 娓呯┖澶氫綑宸茬粦瀹氭暟鎹�
-			if (list.size() > 1) {
-				for (int i = 1; i < list.size(); i++) {
-					clearTaoBaoInfo(list.get(i));
-				}
-			}
+
+			// // 娓呯┖澶氫綑宸茬粦瀹氭暟鎹�
+			// if (list.size() > 1) {
+			// for (int i = 1; i < list.size(); i++) {
+			// clearTaoBaoInfo(list.get(i));
+			// }
+			// }
 		}
 	}
 
 	@Transactional
 	@Override
-	public void addSpecialId(Long uid, String specialId, String taoBaoUid, String nickName,
-			boolean valid) throws UserExtraTaoBaoInfoException{
-		
+	public void addSpecialId(Long uid, String specialId, String taoBaoUid, String nickName, boolean valid)
+			throws UserExtraTaoBaoInfoException {
+
 		if (uid == null || StringUtil.isNullOrEmpty(specialId) || StringUtil.isNullOrEmpty(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(1, "浼犻�掑弬鏁颁负绌�");
 		}
-		
+
 		// 楠岃瘉taoBaoUid鏄惁琚皝绂�
-		if(validateTaoBaoUidForbidden(taoBaoUid)) {
+		if (validateTaoBaoUidForbidden(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
 		}
-				
+
 		UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
 		taoBaoInfo.setUser(new UserInfo(uid));
 		taoBaoInfo.setTaoBaoNickName(nickName);
@@ -92,10 +98,12 @@
 		taoBaoInfo.setSpecialValid(valid);
 		taoBaoInfo.setSpecialId(specialId);
 		taoBaoInfo.setSpecialUpdateTime(new Date());
-		
+
+		userExtraTaoBaoInfoMapper.clearUid(uid);
+
 		List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
 		if (list == null || list.size() == 0) {
-			//鏂板
+			// 鏂板
 			taoBaoInfo.setCreateTime(new Date());
 			userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
 		} else {
@@ -103,7 +111,7 @@
 			taoBaoInfo.setId(list.get(0).getId());
 			taoBaoInfo.setUpdateTime(new Date());
 			userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
-			
+
 			// 娓呯┖澶氫綑宸茬粦瀹氭暟鎹�
 			if (list.size() > 1) {
 				for (int i = 1; i < list.size(); i++) {
@@ -115,19 +123,19 @@
 
 	@Transactional
 	@Override
-	public void saveUserTaoBaoInfo(Long uid, String relationId, String specialId, String taoBaoUid,
-			String nickName, boolean valid) throws UserExtraTaoBaoInfoException {
-		
+	public void saveUserTaoBaoInfo(Long uid, String relationId, String specialId, String taoBaoUid, String nickName,
+			boolean valid) throws UserExtraTaoBaoInfoException {
+
 		if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(specialId)
 				|| StringUtil.isNullOrEmpty(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(1, "浼犻�掑弬鏁伴儴鍒嗕负绌�");
 		}
-		
+
 		// 楠岃瘉taoBaoUid鏄惁琚皝绂�
-		if(validateTaoBaoUidForbidden(taoBaoUid)) {
+		if (validateTaoBaoUidForbidden(taoBaoUid)) {
 			throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
 		}
-		
+
 		UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
 		taoBaoInfo.setTaoBaoUid(taoBaoUid);
 		taoBaoInfo.setTaoBaoNickName(nickName);
@@ -142,8 +150,15 @@
 		taoBaoInfo.setSpecialUpdateTime(new Date());
 
 		List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
+
+		// 鍒ゆ柇涔嬪墠鐢ㄦ埛鏄惁缁戝畾杩�
+		UserExtraTaoBaoInfo info = userExtraTaoBaoInfoMapper.selectByUid(uid);
+
+		// 娓呴櫎涔嬪墠鐨勭敤鎴稩D
+		userExtraTaoBaoInfoMapper.clearUid(uid);
+
 		if (list == null || list.size() == 0) {
-			//鏂板
+			// 鏂板
 			taoBaoInfo.setCreateTime(new Date());
 			userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
 		} else {
@@ -151,7 +166,7 @@
 			taoBaoInfo.setId(list.get(0).getId());
 			taoBaoInfo.setUpdateTime(new Date());
 			userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
-			
+
 			// 娓呯┖澶氫綑宸茬粦瀹氭暟鎹�
 			if (list.size() > 1) {
 				for (int i = 1; i < list.size(); i++) {
@@ -159,43 +174,58 @@
 				}
 			}
 		}
+
+		// 鍔犲叆缁戝畾璁板綍
+		UserAccountBindingHistory history = new UserAccountBindingHistory();
+		history.setContent(taoBaoUid);
+		history.setType(UserAccountBindingHistory.TYPE_TB);
+		history.setUid(uid);
+
+		// 涔嬪墠宸茬粡缁戝畾鐢佃瘽鍙风爜
+		if (info != null)
+			history.setFirst(false);
+		else
+			history.setFirst(true);
+		userAccountBindingHistoryService.addUserAccountBindingHistory(history);
 	}
 
 	/**
-	 * 楠岃瘉taoBaoUid  鏄惁琚皝
+	 * 楠岃瘉taoBaoUid 鏄惁琚皝
+	 * 
 	 * @param taoBaoUid
 	 * @return
 	 */
 	public boolean validateTaoBaoUidForbidden(String taoBaoUid) {
 		boolean validate = false;
-		ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
-				ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid);
+		ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService
+				.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid);
 		// 璐﹀彿琚皝
 		if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) {
 			validate = true;
 		}
 		return validate;
 	}
-	
+
 	/**
 	 * 娓呯┖澶氫綑缁戝畾娣樺疂璐﹀彿淇℃伅
+	 * 
 	 * @param otherInfo
 	 */
-	public void clearTaoBaoInfo(UserExtraTaoBaoInfo otherInfo ) {
+	public void clearTaoBaoInfo(UserExtraTaoBaoInfo otherInfo) {
 		otherInfo.setUser(null);
 		otherInfo.setTaoBaoUid(null);
 		otherInfo.setTaoBaoNickName(null);
-		
+
 		otherInfo.setRelationValid(null);
 		otherInfo.setRelationId(null);
 		otherInfo.setRelationUpdateTime(null);
-		
+
 		otherInfo.setSpecialValid(null);
 		otherInfo.setSpecialId(null);
 		otherInfo.setSpecialUpdateTime(new Date());
 		userExtraTaoBaoInfoMapper.updateByPrimaryKey(otherInfo);
 	}
-	
+
 	@Override
 	public UserExtraTaoBaoInfo getByUid(Long uid) {
 		return userExtraTaoBaoInfoMapper.selectByUid(uid);
@@ -242,4 +272,14 @@
 		return userExtraTaoBaoInfoMapper.selectBySpecialIdWithUidNotNull(specialId);
 	}
 
+	@Override
+	public String getRelationIdByUid(Long uid) {
+		UserExtraTaoBaoInfo extraInfo = getByUid(uid);
+		String relationId = null;
+		if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
+				&& extraInfo.getRelationValid() == true)
+			relationId = extraInfo.getRelationId();
+		return relationId;
+	}
+
 }

--
Gitblit v1.8.0