Commit 5170999d by 钟博

修改多角色修改、切换bug

parent 4626e9eb
......@@ -62,10 +62,10 @@ public List<RoleResponse> GetUsersRole(int userid)
var ParentUser = _userRepository.GetEntities(c => c.ParentID == userid);
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)
{
......
......@@ -143,6 +143,15 @@ public List<UserResponse> GetUserList(int userID)
if (role.IsViewAllUsers == 2)
{
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);
}
else
......@@ -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 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);
}
if (result != null && result.Count > 0)
......@@ -171,17 +189,18 @@ public List<UserResponse> GetUserList(int userID)
item.Role = userRole.RoleID;
roleId.Add(userRole.RoleID);
}
var diffUserRole = _userRepository.GetEntities(c => c.ParentID == item.UserID);
if (diffUserRole != null)
{
foreach (var user in diffUserRole)
{
var diffRole = _userroleRepository.GetEntity(t => t.UserID == user.ID);
roleId.Add(diffRole.RoleID);
}
}
item.RoleArr = roleId?.ToArray();
}
}
......@@ -524,8 +543,6 @@ public UserResponse InsertUser(UserRequest request, int userid)
{
if (null != _userRepository.GetEntity(t => t.Login == request.Login && t.IsDelete == 1))
throw new PerformanceException("登录名重复");
if (request.HosIDArray.Length > 1)
throw new PerformanceException("二次绩效管理员只支持单家医院");
int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole };
if (roleArray.Intersect(request.RoleArr).Any() && string.IsNullOrEmpty(request.Department))
......@@ -581,9 +598,6 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
if (isAgainAdmin && string.IsNullOrEmpty(request.Department))
throw new PerformanceException("二次绩效管理员科室不能为空");
if (isAgainAdmin && request.HosIDArray.Length > 1)
throw new PerformanceException("二次绩效管理员只支持单家医院");
int[] roleArray = new int[] { application.NurseRole, application.DirectorRole, application.SpecialRole, application.OfficeRole };
user.Login = request.Login;
user.Mobile = request.Mobile;
......@@ -606,7 +620,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
//删除子用户角色关联关系
var userSubset = _userRepository.GetEntities(c => c.ParentID == user.ID);
if (userSubset!=null)
if (userSubset != null)
{
foreach (var item in userSubset)
{
......@@ -616,7 +630,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
}
_userRepository.RemoveRange(userSubset.ToArray());
}
var userID = user.ID;
var userLogin = user.Login;
......@@ -633,7 +647,7 @@ public UserResponse UpdateUser(UserRequest request, bool isAgainAdmin)
diffUser.Mail = request.Mail;
diffUser.States = request.States;
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))
throw new PerformanceException("保存失败");
//添加子用户角色关联关系
......@@ -653,7 +667,7 @@ public ApiResponse DeleteUser(int iD)
var result = _userRepository.Remove(user);
var users = _userRepository.GetEntities(t => t.ParentID == user.ID && t.IsDelete == 1)?.ToArray();
if (users!=null)
if (users != null)
{
_userRepository.RemoveRange(users);
foreach (var item in users)
......@@ -663,7 +677,7 @@ public ApiResponse DeleteUser(int iD)
_userroleRepository.Remove(userRole);
}
}
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