Commit 5170999d by 钟博

修改多角色修改、切换bug

parent 4626e9eb
...@@ -62,10 +62,10 @@ public List<RoleResponse> GetUsersRole(int userid) ...@@ -62,10 +62,10 @@ public List<RoleResponse> GetUsersRole(int userid)
var ParentUser = _userRepository.GetEntities(c => c.ParentID == userid); var ParentUser = _userRepository.GetEntities(c => c.ParentID == userid);
if (user.ParentID!=null || user.ParentID==0) if (user.ParentID!=null || user.ParentID==0)
{ {
ParentUser=_userRepository.GetEntities(c => c.ID == user.ParentID); ParentUser=_userRepository.GetEntities(c => c.ParentID == user.ParentID);
} }
if (user != null) if (ParentUser != null)
{ {
foreach (var sysUser in ParentUser) foreach (var sysUser in ParentUser)
{ {
......
...@@ -143,6 +143,15 @@ public List<UserResponse> GetUserList(int userID) ...@@ -143,6 +143,15 @@ public List<UserResponse> GetUserList(int userID)
if (role.IsViewAllUsers == 2) if (role.IsViewAllUsers == 2)
{ {
var userlist = _userRepository.GetEntities(t => t.CreateUser == userID && t.IsDelete == 1 && (t.ParentID == 0 || t.ParentID == null)); var userlist = _userRepository.GetEntities(t => t.CreateUser == userID && t.IsDelete == 1 && (t.ParentID == 0 || t.ParentID == null));
var sonUser = _userRepository.GetEntities(t => t.ParentID != 0 && t.ParentID != null);
if (sonUser != null)
foreach (var user in sonUser)
{
if (user.Department == "")
continue;
var parentUser = userlist.Find(t => t.ID == user.ParentID);
parentUser.Department = user.Department;
}
result = Mapper.Map<List<UserResponse>>(userlist); result = Mapper.Map<List<UserResponse>>(userlist);
} }
else else
...@@ -152,6 +161,15 @@ public List<UserResponse> GetUserList(int userID) ...@@ -152,6 +161,15 @@ public List<UserResponse> GetUserList(int userID)
var userIds = _userhospitalRepository.GetEntities(t => hospitalIds.Contains(t.HospitalID)).Select(t => t.UserID).Distinct(); var userIds = _userhospitalRepository.GetEntities(t => hospitalIds.Contains(t.HospitalID)).Select(t => t.UserID).Distinct();
var userlist = _userRepository.GetEntities(t => t.ID != userID && userIds.Contains(t.ID) && t.IsDelete == 1 && (t.ParentID == 0 || t.ParentID == null)); var userlist = _userRepository.GetEntities(t => t.ID != userID && userIds.Contains(t.ID) && t.IsDelete == 1 && (t.ParentID == 0 || t.ParentID == null));
var sonUser = _userRepository.GetEntities(t => t.ParentID != 0 && t.ParentID != null);
if (sonUser != null)
foreach (var user in sonUser)
{
if (user.Department == "")
continue;
var parentUser = userlist.Find(t => t.ID == user.ParentID);
parentUser.Department = user.Department;
}
result = Mapper.Map<List<UserResponse>>(userlist); result = Mapper.Map<List<UserResponse>>(userlist);
} }
if (result != null && result.Count > 0) if (result != null && result.Count > 0)
...@@ -171,17 +189,18 @@ public List<UserResponse> GetUserList(int userID) ...@@ -171,17 +189,18 @@ public List<UserResponse> GetUserList(int userID)
item.Role = userRole.RoleID; item.Role = userRole.RoleID;
roleId.Add(userRole.RoleID); roleId.Add(userRole.RoleID);
} }
var diffUserRole = _userRepository.GetEntities(c => c.ParentID == item.UserID); var diffUserRole = _userRepository.GetEntities(c => c.ParentID == item.UserID);
if (diffUserRole != null) if (diffUserRole != null)
{ {
foreach (var user in diffUserRole) foreach (var user in diffUserRole)
{ {
var diffRole = _userroleRepository.GetEntity(t => t.UserID == user.ID); var diffRole = _userroleRepository.GetEntity(t => t.UserID == user.ID);
roleId.Add(diffRole.RoleID); roleId.Add(diffRole.RoleID);
} }
} }
item.RoleArr = roleId?.ToArray(); item.RoleArr = roleId?.ToArray();
} }
} }
...@@ -524,8 +543,6 @@ public UserResponse InsertUser(UserRequest request, int userid) ...@@ -524,8 +543,6 @@ public UserResponse InsertUser(UserRequest request, int userid)
{ {
if (null != _userRepository.GetEntity(t => t.Login == request.Login && t.IsDelete == 1)) if (null != _userRepository.GetEntity(t => t.Login == request.Login && t.IsDelete == 1))
throw new PerformanceException("登录名重复"); throw new PerformanceException("登录名重复");
if (request.HosIDArray.Length > 1)
throw new PerformanceException("二次绩效管理员只支持单家医院");
int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole }; int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole };
if (roleArray.Intersect(request.RoleArr).Any() && string.IsNullOrEmpty(request.Department)) if (roleArray.Intersect(request.RoleArr).Any() && string.IsNullOrEmpty(request.Department))
...@@ -581,9 +598,6 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin) ...@@ -581,9 +598,6 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
if (isAgainAdmin && string.IsNullOrEmpty(request.Department)) if (isAgainAdmin && string.IsNullOrEmpty(request.Department))
throw new PerformanceException("二次绩效管理员科室不能为空"); throw new PerformanceException("二次绩效管理员科室不能为空");
if (isAgainAdmin && request.HosIDArray.Length > 1)
throw new PerformanceException("二次绩效管理员只支持单家医院");
int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole }; int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole };
user.Login = request.Login; user.Login = request.Login;
user.Mobile = request.Mobile; user.Mobile = request.Mobile;
...@@ -606,7 +620,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin) ...@@ -606,7 +620,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
//删除子用户角色关联关系 //删除子用户角色关联关系
var userSubset = _userRepository.GetEntities(c => c.ParentID == user.ID); var userSubset = _userRepository.GetEntities(c => c.ParentID == user.ID);
if (userSubset!=null) if (userSubset != null)
{ {
foreach (var item in userSubset) foreach (var item in userSubset)
{ {
...@@ -616,7 +630,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin) ...@@ -616,7 +630,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
} }
_userRepository.RemoveRange(userSubset.ToArray()); _userRepository.RemoveRange(userSubset.ToArray());
} }
var userID = user.ID; var userID = user.ID;
var userLogin = user.Login; var userLogin = user.Login;
...@@ -633,7 +647,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin) ...@@ -633,7 +647,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
diffUser.Mail = request.Mail; diffUser.Mail = request.Mail;
diffUser.States = request.States; diffUser.States = request.States;
diffUser.Password = string.IsNullOrEmpty(request.Password) ? user.Password : request.Password; diffUser.Password = string.IsNullOrEmpty(request.Password) ? user.Password : request.Password;
diffUser.Department = roleArray.Contains(request.RoleArr[0]) ? request.Department : ""; diffUser.Department = roleArray.Contains(request.RoleArr[i]) ? request.Department : "";
if (!_userRepository.Add(diffUser)) if (!_userRepository.Add(diffUser))
throw new PerformanceException("保存失败"); throw new PerformanceException("保存失败");
//添加子用户角色关联关系 //添加子用户角色关联关系
...@@ -653,7 +667,7 @@ public ApiResponse DeleteUser(int iD) ...@@ -653,7 +667,7 @@ public ApiResponse DeleteUser(int iD)
var result = _userRepository.Remove(user); var result = _userRepository.Remove(user);
var users = _userRepository.GetEntities(t => t.ParentID == user.ID && t.IsDelete == 1)?.ToArray(); var users = _userRepository.GetEntities(t => t.ParentID == user.ID && t.IsDelete == 1)?.ToArray();
if (users!=null) if (users != null)
{ {
_userRepository.RemoveRange(users); _userRepository.RemoveRange(users);
foreach (var item in users) foreach (var item in users)
...@@ -663,7 +677,7 @@ public ApiResponse DeleteUser(int iD) ...@@ -663,7 +677,7 @@ public ApiResponse DeleteUser(int iD)
_userroleRepository.Remove(userRole); _userroleRepository.Remove(userRole);
} }
} }
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail); return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment