Przeglądaj źródła

签单转交客户逻辑BUG修复

anderx 5 lat temu
rodzic
commit
92c28476f7

+ 97 - 75
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -358,7 +358,15 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		cob.setMajor(AFTConstants.YES);
 		organizationContactBookMapper.insert(cob);
 		//新增锁定数据
-		addUserLock(uid, TokenManager.getAdminId(),0,null, now,false);
+		boolean isUs=false;
+		if (uid.contains(",")) {
+			isUs=true;
+		}
+		List<String> uList=new ArrayList<>();
+		if (isUs) {
+			uList=Arrays.asList(uid.split(","));
+		}
+		addUserLock(uid, TokenManager.getAdminId(), now,uList);
 		return 1;
 	}
 
@@ -995,33 +1003,36 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			user.setInformationMaintainer(TokenManager.getAdminId());
 			user.setSource(2);//客户来源设置为领取
 			user.setTransferTime(now);
-			flag = addUserLock(uid,TokenManager.getAdminId(),1,null,now,false); //指定用户锁定客户
+			flag = addUserLock(uid,TokenManager.getAdminId(),now,uList); //指定用户锁定客户
+			addUserTransferLog(uid,TokenManager.getAdminId(),1,null,now,uList);
 			if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_RECEIVE,""));
-			//取消客户领取时把联系人一并转移
-			//organizationContactBookMapper.updateAdmin(uid,TokenManager.getAdminId());
-		}else if(AFTConstants.USER_TRANSFER_TO_OTHER.equals(operatorType)){
+		}else if(AFTConstants.USER_TRANSFER_TO_OTHER.equals(operatorType)
+					||AFTConstants.SIGN_USER_TRANSFER_TO_OTHER==operatorType){
 			if(!isUs) {
 				user.setAid(String.valueOf(params[0]));
 				user.setSource(3);//客户来源设置为转交
-				if (AFTConstants.SIGN_USER_TRANSFER_TO_OTHER==operatorType) {
-					user.setShareType(2);
+				if (AFTConstants.USER_TRANSFER_TO_OTHER==operatorType) {
+					//查询这个客户是否是登陆人的客户
+					if(userMapper.getAidAndUser(uid,TokenManager.getAdminId())<=0)throw new BusinessException(new Error("请勿非法操作!","请勿非法操作!"));
+					flag = updateUserLock(uid,oldAid,UserLockReleaseStatus.LOCKED.getCode(),UserLockReleaseStatus.RELEASE.getCode()); //原用户释放客户
+					if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),now,uList); //指定用户锁定客户
+					if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_TRANSFER_FAIL,""));
 				}
-				//查询这个客户是否是登陆人的客户
-				if(userMapper.getAidAndUser(uid,TokenManager.getAdminId())<=0)throw new BusinessException(new Error("请勿非法操作!","请勿非法操作!"));
-				flag = updateUserLock(uid,oldAid,UserLockReleaseStatus.LOCKED.getCode(),UserLockReleaseStatus.RELEASE.getCode()); //原用户释放客户
-				if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),2,null,now,isUs); //指定用户锁定客户
-				if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_TRANSFER_FAIL,""));
+				
 			}else {
 				for (String us : uList) {
 					if(userMapper.getAidAndUser(us,TokenManager.getAdminId())<=0)throw new BusinessException(new Error("请勿非法操作!","请勿非法操作!"));
 				}
+				if (AFTConstants.USER_TRANSFER_TO_OTHER==operatorType) {
 				flag = updateUsersLock(uList,oldAid,UserLockReleaseStatus.LOCKED.getCode(),UserLockReleaseStatus.RELEASE.getCode()); //原用户释放客户
-				if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),2,null,now,isUs); //指定用户锁定客户
+				if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),now,uList); //指定用户锁定客户
 				if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_TRANSFER_FAIL,""));
+				}
 			}
+			addUserTransferLog(uid,String.valueOf(params[0]),2,null,now,uList);
 		}
 		if (isUs) {
-			if (AFTConstants.SIGN_USER_TRANSFER_TO_OTHER==operatorType) {
+			if (AFTConstants.USER_RECEIVE==operatorType) {
 				userMapper.updateList(String.valueOf(params[0]),null,3,null,2,uList);
 			} else {
 				userMapper.updateList(String.valueOf(params[0]),null,3,null,null,uList);
@@ -1032,6 +1043,77 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return 1; 
 	}
 
+	/**
+	 * 
+	 * @param uid	客户id
+	 * @param aid  接受者id
+	 * @param lockTime 时间
+	 * @param uList 是不是多人客户
+	 * @return
+	 */
+	private int addUserLock(String uid,String aid ,Date lockTime, List<String> uList){
+		if (uList.isEmpty()) {
+			UserLockRelease ulr = new UserLockRelease();
+			ulr.setId(UUID.randomUUID().toString());
+			ulr.setType(0);
+			ulr.setAid(aid);
+			ulr.setLockTime(lockTime);
+			ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
+			ulr.setUid(uid);
+			userLockReleaseMapper.insert(ulr);
+		}else {
+			List<UserLockRelease> ulrList=new ArrayList<>();
+			for (String s : uList) {
+				UserLockRelease ulr = new UserLockRelease();
+				ulr.setId(UUID.randomUUID().toString());
+				ulr.setType(0);
+				ulr.setAid(aid);
+				ulr.setLockTime(lockTime);
+				ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
+				ulr.setUid(s);
+				ulrList.add(ulr);
+			}
+			 userLockReleaseMapper.insertList(ulrList);
+		}
+		return 1;
+	}
+	/**
+	 * 
+	 * @param type  0录入  1领取 2转交客户 3转交业务
+	 */
+	private void addUserTransferLog(String uid,String aid,Integer type,String pid,Date lockTime, List<String> uList) {
+		if(uList.isEmpty()) {
+			UserTransferLog utl=new UserTransferLog();
+			if(type==0||type==1) utl.setAid(aid);
+			else if(type==2||type==3) {
+				utl.setAid(TokenManager.getAdminId());
+				utl.setTakeAid(aid);
+			}
+			if(type==3)utl.setPid(pid);
+			utl.setType(type);
+			utl.setCreateTime(lockTime);
+			utl.setUid(uid);
+			userTransferLogMapper.insertSelective(utl);
+		}else {
+			List<String> ulist=Arrays.asList(uid.split(","));
+			List<UserTransferLog> utlList=new ArrayList<>();
+			for (String string : ulist) {
+				UserTransferLog utl=new UserTransferLog();
+				if(type==0||type==1) utl.setAid(string);
+				else if(type==2||type==3) {
+					utl.setAid(TokenManager.getAdminId());
+					utl.setTakeAid(string);
+				}
+				if(type==3)utl.setPid(pid);
+				utl.setCreateTime(lockTime);
+				utl.setUid(uid);
+				utl.setType(type);
+				utlList.add(utl);
+			}
+			userTransferLogMapper.insertList(utlList);
+		}
+	}
+
 	
 
 	@SuppressWarnings("unchecked")
@@ -1454,67 +1536,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return userLockReleaseMapper.updateUsersLock(uList,aid,oldStatus,newStatus);
 	}
 	
-	/**
-	 * 
-	 * @param uid
-	 * @param aid
-	 * @param type  0录入  1领取 2转交客户 3转交业务
-	 * @param pid
-	 * @param lockTime
-	 * @param isUs
-	 * @return
-	 */
-	private int addUserLock(String uid,String aid,Integer type,String pid,Date lockTime, boolean isUs){
-		if (!isUs) {
-			UserLockRelease ulr = new UserLockRelease();
-			UserTransferLog utl=new UserTransferLog();
-			ulr.setId(UUID.randomUUID().toString());
-			ulr.setType(0);
-			ulr.setAid(aid);
-			ulr.setLockTime(lockTime);
-			ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
-			ulr.setUid(uid);
-			userLockReleaseMapper.insert(ulr);
-			utl.setType(type);
-			if(type==0||type==1) utl.setAid(aid);
-			else if(type==2||type==3) {
-				utl.setAid(TokenManager.getAdminId());
-				utl.setTakeAid(aid);
-			}
-			if(type==3)utl.setPid(pid);
-			utl.setCreateTime(lockTime);
-			utl.setUid(uid);
-			userTransferLogMapper.insertSelective(utl);
-		}else {
-			List<String> ulist=Arrays.asList(uid.split(","));
-			List<UserLockRelease> ulrList=new ArrayList<>();
-			List<UserTransferLog> utlList=new ArrayList<>();
-			for (String s : ulist) {
-				UserLockRelease ulr = new UserLockRelease();
-				UserTransferLog utl=new UserTransferLog();
-				ulr.setId(UUID.randomUUID().toString());
-				ulr.setType(0);
-				ulr.setAid(aid);
-				ulr.setLockTime(lockTime);
-				ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
-				ulr.setUid(s);
-				ulrList.add(ulr);
-				if(type==0||type==1) utl.setAid(aid);
-				else if(type==2||type==3) {
-					utl.setAid(TokenManager.getAdminId());
-					utl.setTakeAid(aid);
-				}
-				if(type==3)utl.setPid(pid);
-				utl.setCreateTime(lockTime);
-				utl.setUid(uid);
-				utl.setType(type);
-				utlList.add(utl);
-			}
-			 userLockReleaseMapper.insertList(ulrList);
-			 userTransferLogMapper.insertList(utlList);
-		}
-		return 1;
-	}
+