|
|
@@ -396,7 +396,62 @@ public class UserServiceImpl implements UserService {
|
|
|
}
|
|
|
try {
|
|
|
userOld = userDao.save(userOld);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
+ }
|
|
|
+ if (SystemSession.getUser().getUserUU().equals(userOld.getUserUU())) {
|
|
|
+ userOld.setCurrentEnterprise(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ userOld.setCurrentEnterpriseRoles();
|
|
|
+ SystemSession.setUser(userOld);
|
|
|
+ }
|
|
|
+ return userOld;
|
|
|
+ } else {
|
|
|
+ throw new IllegalOperatorException("修改的用户不存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ @Override
|
|
|
+ public User saveUserRole(User user) {
|
|
|
+ User userOld = userDao.findOne(user.getUserUU());
|
|
|
+ if (userOld != null) {
|
|
|
+ userOld.setUserEmail(user.getUserEmail());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ userOld = userDao.save(userOld);
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException(e.getMessage());
|
|
|
}
|