/// <summary> /// 添加或修改用户组 /// </summary> /// <param name="Id"></param> /// <param name="GroupName">新名字</param> /// <param name="ParentId">父级组</param> /// <param name="appid">appid</param> /// <returns></returns> public ActionResult Save(int Id = 0, string GroupName = "", int?ParentId = null, string appid = "") { ParentId = ParentId == 0 ? null : ParentId; UserGroup group = UserGroupBll.GetById(Id); if (group != null) { //修改 if (UserGroupBll.Any(a => a.GroupName.Equals(GroupName) && !a.GroupName.Equals(group.GroupName))) { return(ResultData(null, false, $"{GroupName} 用户组已经存在!")); } group.GroupName = GroupName; group.ParentId = ParentId; bool b = UserGroupBll.UpdateEntitySaved(@group); return(ResultData(null, b, b ? "修改成功" : "修改失败!")); } //添加 if (UserGroupBll.Any(a => a.GroupName.Equals(GroupName))) { return(ResultData(null, false, $"{GroupName} 用户组已经存在!")); } group = new UserGroup { GroupName = GroupName, ParentId = ParentId }; if (!string.IsNullOrEmpty(appid) && ClientAppBll.Any(a => a.AppId.Equals(appid))) { var app = ClientAppBll.GetFirstEntity(a => a.AppId.Equals(appid)); app.UserGroup.Add(group); bool b = ClientAppBll.UpdateEntitySaved(app); return(ResultData(null, b, b ? "用户组添加成功!" : "用户组添加失败!")); } group = UserGroupBll.AddEntitySaved(group); return(@group != null?ResultData(@group, true, "用户组添加成功!") : ResultData(null, false, "用户组添加失败!")); }
/// <summary> /// 从应用移除用户 /// </summary> /// <param name="id"></param> /// <param name="aids"></param> /// <returns></returns> public ActionResult RemoveApps(int id, string aids) { string[] ids = aids.Split(','); UserGroup @group = UserGroupBll.GetById(id); if (@group is null) { return(ResultData(null, false, "未找到用户组!")); } List <ClientApp> users = ClientAppBll.LoadEntities(u => ids.Contains(u.Id.ToString())).ToList(); users.ForEach(u => { @group.ClientApp.Remove(u); }); bool b = UserGroupBll.UpdateEntitySaved(@group); return(ResultData(null, b, b ? "移除客户端子系统成功!" : "移除客户端子系统失败!")); }
/// <summary> /// 从应用移除用户 /// </summary> /// <param name="id"></param> /// <param name="uids"></param> /// <returns></returns> public ActionResult RemoveUsers(int id, string uids) { string[] ids = uids.Split(','); UserGroup @group = UserGroupBll.GetById(id); if (@group is null) { return(ResultData(null, false, "未找到用户组!")); } List <UserInfo> users = UserInfoBll.LoadEntities(u => ids.Contains(u.Id.ToString())).ToList(); users.ForEach(u => { @group.UserInfo.Remove(u); }); bool b = UserGroupBll.UpdateEntitySaved(@group); return(ResultData(null, b, b ? "移除用户成功!" : "移除用户失败!")); }
/// <summary> /// 改变父级组 /// </summary> /// <param name="id"></param> /// <param name="pid"></param> /// <returns></returns> public ActionResult ChangeParent(int id, int?pid) { UserGroup @group = UserGroupBll.GetById(id); if (pid.HasValue) { UserGroup parent = UserGroupBll.GetById(pid); if (parent is null) { pid = null; } } group.ParentId = pid; bool b = UserGroupBll.UpdateEntitySaved(@group); return(ResultData(null, b, b ? "父级指派成功!" : "父级指派失败!")); }
/// <summary> /// 获取用户组详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Details(int id) { UserGroup @group = UserGroupBll.GetById(id); if (@group != null) { (IQueryable <ClientApp>, IQueryable <UserInfo>, List <UserGroup>, List <UserGroupRole>, List <Permission>, List <Control>, List <Menu>)details = UserGroupBll.Details(@group); return(ResultData(new { result = group.Mapper <UserGroupOutputDto>(), apps = details.Item1.ToList().Mapper <List <ClientAppInputDto> >(), groups = details.Item3.Mapper <List <UserGroupInputDto> >(), roles_allow = details.Item4.Where(g => g.HasRole).Select(g => g.Role).Mapper <List <RoleInputDto> >(), roles_forbid = details.Item4.Where(g => !g.HasRole).Select(g => g.Role).Mapper <List <RoleInputDto> >(), permissions = details.Item5.Mapper <List <PermissionInputDto> >(), controls = details.Item6.Mapper <List <ControlOutputDto> >(), menus = details.Item7.Mapper <List <MenuOutputDto> >() })); } return(ResultData(null, false, "用户组不存在")); }
/// <summary> /// 添加角色 /// </summary> /// <param name="id">用户组id</param> /// <param name="rids">角色id</param> /// <returns></returns> public ActionResult AddRoles(int id, string rids) { string[] ids = rids.Split(','); var @group = UserGroupBll.GetById(id); if (group is null) { return(ResultData(null, false, "用户组不存在")); } List <Role> roles = RoleBll.LoadEntities(r => ids.Contains(r.Id.ToString())).ToList(); roles.ForEach(r => { UserGroupRole groupRole = new UserGroupRole() { UserGroupId = @group.Id, HasRole = true, RoleId = r.Id, Role = r, UserGroup = @group }; UserGroupRoleBll.AddEntity(groupRole); }); UserGroupRoleBll.BulkSaveChanges(); return(ResultData(null, true, "角色配置完成!")); }
/// <summary> /// 获取用户组详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Get(int id) { UserGroupOutputDto group = UserGroupBll.GetById(id).Mapper <UserGroupOutputDto>(); return(ResultData(group)); }