Explorar o código

Merge remote-tracking branch 'origin/feature-arrange-201806' into dev

Hu Jie %!s(int64=7) %!d(string=hai) anos
pai
achega
626fa52c5c

+ 2 - 2
src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java

@@ -36,7 +36,7 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	public List<User> findByEnUUAndUserUU(@Param("enUU") long enUU, @Param("userUU") long userUU);
 
 	/**
-	 * 按企业ID查找个人
+	 * 按企业ID查找个人
 	 * 
 	 * @param enUU
 	 * @return
@@ -46,7 +46,7 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	public List<User> findByEnUU(@Param("enUU") long enUU);
 
 	/**
-	 * 按企业ID查找个人id
+	 * 按企业ID查找个人id
 	 *
 	 * @param enUU
 	 * @return

+ 7 - 1
src/main/java/com/uas/platform/b2c/common/account/service/UserService.java

@@ -37,7 +37,7 @@ public interface UserService {
 	/**
 	 * 按uu取用户信息(不读取缓存)
 	 *
-	 * @param userUU
+	 * @param uu 用户userUU
 	 * @return
 	 */
 	User findUserPwdByUserUU(Long uu);
@@ -56,6 +56,12 @@ public interface UserService {
 	 */
 	Page<User> findUserByUserNameLikeAndEnUU(PageInfo pageInfo , Long enUU , String userName);
 
+	/**
+	 * 通过关键字、角色id过滤该企业下人员信息
+	 * @param keyword 姓名、电话号码、邮箱、uu号
+	 * @param roleId 角色id
+	 * @return
+	 */
 	Page<User> findUsersPageByEnUUAndKeyword(PageInfo pageInfo , Long enUU , String keyword , Long roleId);
 	/**
 	 * 按email取用户信息

+ 48 - 195
src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java

@@ -159,31 +159,7 @@ public class UserServiceImpl implements UserService {
 	@Override
 	public Page<User> findUsersPageByEnUU(final PageInfo pageInfo , Long enUU) {
 		final List<Long> usersId = userDao.findIdByEnUU(enUU);
-		if (usersId.size()>0) {
-			Page<User> pUser = userDao.findAll(new Specification<User>() {
-				public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-					Predicate predicateId = root.get("userUU").in(usersId);
-					query.where(predicateId);
-					return null;
-				}
-			}, pageInfo);
-			for (User user : pUser) {
-				Set<Role> roles = user.getRoles();
-				Long enuu = SystemSession.getUser().getEnterprise().getUu();
-				if (!CollectionUtils.isEmpty(roles)) {
-					Iterator<Role> iterator = roles.iterator();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (!role.getEnUU().equals(enuu)) {
-							iterator.remove();
-						}
-					}
-				}
-			}
-			return pUser;
-		}else{
-			return null;
-		}
+		return deleteOtherRole(pageInfo,usersId);
 
 	}
 	@Override
@@ -251,34 +227,8 @@ public class UserServiceImpl implements UserService {
 			//过滤 角色信息
 			usersId = userDao.findUserByRoleAndUsers(roleId,usersId.toArray(new Long[0]));
 		}
-
 		final List<Long> users = usersId;
-		if (users.size()>0) {
-			Page<User> pUser = userDao.findAll(new Specification<User>() {
-				public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-					Predicate predicateId = root.get("userUU").in(users);
-					query.where(predicateId);
-					return null;
-				}
-			}, pageInfo);
-			for (User user : pUser) {
-				Set<Role> roles = user.getRoles();
-				Long enuu = SystemSession.getUser().getEnterprise().getUu();
-				if (!CollectionUtils.isEmpty(roles)) {
-					Iterator<Role> iterator = roles.iterator();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (!role.getEnUU().equals(enuu)) {
-							iterator.remove();
-						}
-					}
-				}
-			}
-			return pUser;
-		}else{
-			return null;
-		}
-
+		return deleteOtherRole(pageInfo,users);
 	}
 
 	@Override
@@ -288,6 +238,10 @@ public class UserServiceImpl implements UserService {
 			usersId = userDao.findUserByUserNameLikeAndEnUU(userName, enUU);
 		}
 		final List<Long> users = usersId;
+		return deleteOtherRole(pageInfo,users);
+	}
+
+	private Page<User> deleteOtherRole(final PageInfo pageInfo,final List<Long> users) {
 		if (users.size()>0) {
 			Page<User> pUser = userDao.findAll(new Specification<User>() {
 				public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
@@ -328,38 +282,7 @@ public class UserServiceImpl implements UserService {
 //				throw new RuntimeException(e.getMessage());
 			}
 			// 修改用户角色,只对用户的当前企业的角色进行修改
-			if (!CollectionUtils.isEmpty(user.getRoles())) {
-				Set<Role> existRoles = userOld.getRoles();
-				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
-					Iterator<Role> iterator = existRoles.iterator();
-					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (role.getEnUU().equals(currentEnuu)) {
-							iterator.remove();
-						}
-					}
-				} else {
-					existRoles = new HashSet<>();
-				}
-				for (Role role : user.getRoles()) {
-					existRoles.add(role);
-				}
-				userOld.setRoles(existRoles);
-			} else {
-				Set<Role> existRoles = userOld.getRoles();
-				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
-					Iterator<Role> iterator = existRoles.iterator();
-					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (role.getEnUU().equals(currentEnuu)) {
-							iterator.remove();
-						}
-					}
-				}
-				userOld.setRoles(existRoles);
-			}
+			updateRole(user,userOld);
 			try {
 				userOld = userDao.save(userOld);
 			} catch (Exception e) {
@@ -384,38 +307,7 @@ public class UserServiceImpl implements UserService {
 			userOld.setUserTel(user.getUserTel());
 			userOld.setUserName(user.getUserName());
 			// 修改用户角色,只对用户的当前企业的角色进行修改
-			if (!CollectionUtils.isEmpty(user.getRoles())) {
-				Set<Role> existRoles = userOld.getRoles();
-				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
-					Iterator<Role> iterator = existRoles.iterator();
-					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (role.getEnUU().equals(currentEnuu)) {
-							iterator.remove();
-						}
-					}
-				} else {
-					existRoles = new HashSet<>();
-				}
-				for (Role role : user.getRoles()) {
-					existRoles.add(role);
-				}
-				userOld.setRoles(existRoles);
-			} else {
-				Set<Role> existRoles = userOld.getRoles();
-				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
-					Iterator<Role> iterator = existRoles.iterator();
-					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
-					while (iterator.hasNext()) {
-						Role role = iterator.next();
-						if (role.getEnUU().equals(currentEnuu)) {
-							iterator.remove();
-						}
-					}
-				}
-				userOld.setRoles(existRoles);
-			}
+			updateRole(user,userOld);
 			try {
 				userOld = userDao.save(userOld);
 			} catch (Exception e) {
@@ -432,36 +324,46 @@ public class UserServiceImpl implements UserService {
 		}
 	}
 
+	private void updateRole(User user,User userOld) {
+		if (!CollectionUtils.isEmpty(user.getRoles())) {
+			Set<Role> existRoles = userOld.getRoles();
+			if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
+				Iterator<Role> iterator = existRoles.iterator();
+				Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
+				while (iterator.hasNext()) {
+					Role role = iterator.next();
+					if (role.getEnUU().equals(currentEnuu)) {
+						iterator.remove();
+					}
+				}
+			} else {
+				existRoles = new HashSet<>();
+			}
+			for (Role role : user.getRoles()) {
+				existRoles.add(role);
+			}
+			userOld.setRoles(existRoles);
+		} else {
+			Set<Role> existRoles = userOld.getRoles();
+			if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
+				Iterator<Role> iterator = existRoles.iterator();
+				Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
+				while (iterator.hasNext()) {
+					Role role = iterator.next();
+					if (role.getEnUU().equals(currentEnuu)) {
+						iterator.remove();
+					}
+				}
+			}
+			userOld.setRoles(existRoles);
+		}
+	}
+
 	@Override
 	public User updatePassword(User user, String password, String newPassword) {
-//		boolean result = user.getUserPwd().equals(Md5Utils.encode(password, user.getUserUU()));
-//		if (result) {
-//			User user1 = userDao.findOne(user.getUserUU());
-//			user1.setUserPwd(Md5Utils.encode(newPassword, user1.getUserUU()));
-//			user1.setPwdSecLevel(user.getPwdSecLevel());
-//			if (user1.getEnterprise() == null)
-//				user1.setCurrentEnterprise();// 随便绑定一个用户所属企业
-//			Enterprise enterprise = user1.getEnterprise();
-//			try {
-//					//判断是否为个人账户
-//					if (enterprise == null){
-//							//AccountUtils.resetPassword(user1.getUserUU(), null, newPassword);
-//					}else {
-//							//AccountUtils.resetPassword(user1.getUserUU(), enterprise.getUu(), newPassword);
-//					}
-//				user1 = userDao.save(user1);
-//			} catch (Exception e) {
-//				throw new SystemException(e.getMessage());
-//			}
-//			return user1;
-//		} else {
-//			throw new IllegalOperatorException("原密码验证错误");
-//		}
 		return null;
 	}
 
-
-	static final String defaultPassword = "111111";
 	@Override
 	public User addUser(User user, HttpServletRequest request) {
 		List<User> users = userDao.findUserByUserTel(user.getUserTel().trim());
@@ -487,7 +389,6 @@ public class UserServiceImpl implements UserService {
 			}else{
 				enterpriseDao.callInitProcedure(SystemSession.getUser().getEnterprise().getUu());
 			}
-			//Long uu = commonDao.queryForObject("select users_seq.nextval from dual", Long.class);
 			user.setUserUU(addssoUser.getUserUU());
 			user.addEnterprise(SystemSession.getUser().getEnterprise());
 			user.setCurrentEnterprise();
@@ -508,26 +409,10 @@ public class UserServiceImpl implements UserService {
 		model.put("rootpath", AgentUtils.getHost(request));
 		if (user.getUserEmail() != null) {
 			mailService.send(messageConf.getTplAfterBeAddedtoB2C(), user.getUserEmail(), model);
-			//mailService.send(messageConf.getTplInvitationForB2B(), user.getUserEmail(), model);
 		}
 		return user;
 	}
 
-    //添加未注册
-	/*public  com.uas.account.entity.User postToAccountCenter(User user, String password) throws Exception {
-		UserDetail detail = new UserDetail();
-		detail.setEmail(user.getUserEmail());
-		detail.setIdCode(user.getUserIdcode());
-		detail.setMobile(user.getUserTel());
-		detail.setName(user.getUserName());
-		detail.setSex(user.getUserSex());
-		List<com.uas.account.entity.User> users = AccountUtils.addUser(user.getUserUU(), SystemSession.getUser().getEnterprise().getUu(), detail, password);
-		if (!CollectionUtils.isEmpty(users)) {
-			return users.get(0);
-		} else {
-			return null;
-		}
-	}*/
 	public void postToAccountCenter(User user) throws Exception {
 		//判断是否个人用户
 		if(SystemSession.getUser().getEnterprise()==null){
@@ -541,8 +426,6 @@ public class UserServiceImpl implements UserService {
 		User user = userDao.findOne(uu);
 		if (user.getEnterprises().contains(SystemSession.getUser().getEnterprise())) {
 			user.removeEnterprise(SystemSession.getUser().getEnterprise());
-			/*if (user.getEnterprises().size() == 0)
-				user.setEnable((short) Status.DISABLED.value());*/
 			userDao.save(user);
 			try {
 				com.uas.sso.util.AccountUtils.removeUser(uu,SystemSession.getUser().getEnterprise().getUu());
@@ -623,45 +506,11 @@ public class UserServiceImpl implements UserService {
 
 	@Override
 	public User updateUserTel(String oldTel, String newTel,Long uu) {
-		/*// 旧手机号是否正确
-		User user = userDao.findOne(uu);
-			if(!user.getUserTel().equals(oldTel)){
-				throw new IllegalOperatorException("旧手机号错误");
-			}
-			try {
-				if(!StringUtils.isEmpty(oldTel) && !StringUtils.isEmpty(newTel)) {
-					// 保存数据库
-					List<com.uas.account.entity.User> users = AccountUtils.updateTel(oldTel, newTel);
-					if (users != null && users.size() > 0) {
-						user.setUserTel(users.get(0).getUid());
-						user = userDao.save(user);
-						return user;
-					}
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-			}*/
 			return null;
 		}
 
 	@Override
 	public User updateUserEmail(String tel, String newEmail, Long uu) {
-/*
-		try {
-			if(!StringUtils.isEmpty(tel) && !StringUtils.isEmpty(newEmail)) {
-				User user = userDao.findOne(uu);
-				// 从账户中心返回的数据
-				List<com.uas.account.entity.User> users = AccountUtils.updateEmail(tel,newEmail);
-				// 保存数据库
-				if (users != null && users.size() > 0) {
-					user.setUserEmail(users.get(0).getSecondUID());
-					user = userDao.save(user);
-					return user;
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}*/
 		throw new IllegalOperatorException("数据更新失败...");
 	}
 
@@ -678,7 +527,11 @@ public class UserServiceImpl implements UserService {
 		Set<Role> roles = user.getRoles();
 		if (!org.apache.commons.collections.CollectionUtils.isEmpty(roles)) {
 			for (Role role : roles) {
-				resourceItems = role.getResourceItems();
+				if (!org.apache.commons.collections.CollectionUtils.isEmpty(role.getResourceItems())) {
+					for (ResourceItem resourceItem : role.getResourceItems()) {
+						resourceItems.add(resourceItem);
+					}
+				}
 			}
 		}
 		//匹配当前访问权限;