public Response <string> Edit([FromBody] QueryUserListReq request) { var result = new Response <string>(); var view = new UserView { Id = request.Id, Account = request.Account, //Password = request.Password, Name = request.Name, Sex = request.Sex.ToInt(), Tel = request.Tel, Description = request.Description //Status = request.Status.ToInt(), }; try { _app.Update(view); result.Result = view.Id; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return(result); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// </summary> public TableData Load(QueryUserListReq request) { var loginUser = _auth.GetCurrentUser(); //where条件 var sSqlWhere = "IsDel=0"; //模糊查询 if (!string.IsNullOrEmpty(request.KeyWorld)) { sSqlWhere = sSqlWhere + " and (Name like '%" + request.KeyWorld + "%' or Account like '%" + request.KeyWorld + "%') "; } //获取分页存储过程的参数 var sqlPageParams = GetQueryPageParams("Users", request.PrimaryKey, "Id, Account,'' as Password, Name, Sex, Status, CreateTime, UpdateTime, Description, IsDel, IsFinger, Tel, UserNumber", request.PageSize, request.PageIndex, sSqlWhere, "", request.PrimaryKey + " " + request.Order); //获取用户数据 var users = UnitWork.SqlQuery <User>( "proc_Paging @TableNames,@PrimaryKey,@Columns,@PageSize,@PageIndex,@sWhere,@Group,@Order,@totalCount output" , sqlPageParams).ToList(); //权限问题(待做) //添加部门信息,逗号隔开 var userViews = new List <UserView>(); // if (users.Any()) { foreach (var user in users) { UserView uv = user; var listDeparmentRoles = UnitWork.SqlQuery <DepartmentRole>( @"select '' Id, DepartmentId, DepartmentName, RoleId, RoleName From view_UserRoleAndDepartment where UserId = @UserId ", new object[] { new SqlParameter() { ParameterName = "@UserId", Value = user.Id, DbType = DbType.String } }).ToList(); uv.DepartmentsIds = string.Join(",", listDeparmentRoles.Select(dr => dr.DepartmentId).Distinct().ToList()); uv.DepartmentNames = string.Join(",", listDeparmentRoles.Select(dr => dr.DepartmentName).Distinct().ToList()); uv.RoleIds = string.Join(",", listDeparmentRoles.Select(dr => dr.RoleId).Distinct().ToList()); uv.RoleNames = string.Join(",", listDeparmentRoles.Select(dr => dr.RoleName).Distinct().ToList()); userViews.Add(uv); } } return(new TableData { total = ((SqlParameter)sqlPageParams.ToList()[8]).Value.ToInt(0), items = userViews }); }
public Response <string> Add([FromBody] QueryUserListReq request) { var result = new Response <string>(); var view = new UserView { Account = request.Account, Name = request.Name, Sex = request.Sex, Status = request.Status, Description = request.Description, Tel = request.Tel, IsDel = false, IsFinger = false, RowNum = 0 }; try { _app.Add(view); result.Result = view.Id; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return(result); }
public void GetUser() { var request = new QueryUserListReq { orgId = "", page = 1, limit = 30 }; var users = _app.Load(request); Console.WriteLine(users.count); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// </summary> public TableData Load(QueryUserListReq request) { var loginUser = _auth.GetCurrentUser(); string cascadeId = ".0."; if (!string.IsNullOrEmpty(request.orgId)) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); cascadeId = org.CascadeId; } IQueryable <User> query = UnitWork.Find <User>(null); if (!string.IsNullOrEmpty(request.key)) { query = UnitWork.Find <User>(u => u.Name.Contains(request.key) || u.Account.Contains(request.key)); } var ids = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); var userIds = _revelanceApp.Get(Define.USERORG, false, ids); var users = query.Where(u => userIds.Contains(u.Id)) .OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit) .ToList(); var records = query.Count(u => userIds.Contains(u.Id)); var userviews = new List <UserView>(); foreach (var user in users) { UserView uv = AutoMapperExt.MapTo <UserView>(user); var orgs = LoadByUser(user.Id); uv.Organizations = string.Join(",", orgs.Select(u => u.Name).ToList()); uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList()); userviews.Add(uv); } return(new TableData { count = records, data = userviews, }); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// </summary> public TableData Load(QueryUserListReq request) { var loginUser = AuthUtil.GetCurrentUser(); // 节点层次ID,如 【集团总部】为【.0.1.】 // 【研发部】为【.0.1.3.】,子节点【研发小组】为【.0.1.3.1.】 string cascadeId = ".0."; if (!string.IsNullOrEmpty(request.orgId)) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); cascadeId = org.CascadeId; } // 用户所属部门ID数组 var ids = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); // 与此用户同部门的所有用户的ID var userIds = ReleManagerApp.Get(Define.USERORG, false, ids); var users = UnitWork.Find <User>(u => userIds.Contains(u.Id)) .OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit); // Repository 为父类【BaseApp<User>】中的属性 var records = Repository.GetCount(u => userIds.Contains(u.Id)); var userviews = new List <UserView>(); foreach (var user in users.ToList()) { UserView uv = user; var orgs = LoadByUser(user.Id); uv.Organizations = string.Join(",", orgs.Select(u => u.Name).ToList()); uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList()); userviews.Add(uv); } return(new TableData { count = records, data = userviews, }); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// </summary> public TableData Load(QueryUserListReq request) { var loginUser = AuthUtil.GetCurrentUser(); string cascadeId = ".0."; if (request.orgId > 0) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); cascadeId = org.CascadeId; } var ids = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); var userIds = ReleManagerApp.Get(Define.USERORG, false, ids); var users = UnitWork.Find <Sys_User>(u => userIds.Contains(u.Id)) .OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit); var records = Repository.GetCount(u => userIds.Contains(u.Id)); var userviews = new List <UserView>(); foreach (var user in users.ToList()) { UserView uv = user; var orgs = LoadByUser(user.Id); uv.Organizations = string.Join(",", orgs.Select(u => u.Name).ToList()); uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList()); userviews.Add(uv); } return(new TableData { count = records, data = userviews, }); }
/// <summary> /// 获取所有的用户 /// 为了控制权限,通常只用于流程实例选择执行角色,其他地方请使用Load /// </summary> public async Task <TableResp <UserView> > LoadAll(QueryUserListReq request) { IQueryable <User> query = UnitWork.Find <User>(null); if (!string.IsNullOrEmpty(request.key)) { query = UnitWork.Find <User>(u => u.Name.Contains(request.key) || u.Account.Contains(request.key)); } var userOrgs = from user in query join relevance in UnitWork.Find <Relevance>(u => u.Key == "UserOrg") on user.Id equals relevance.FirstId into temp from r in temp.DefaultIfEmpty() join org in UnitWork.Find <SysOrg>(null) on r.SecondId equals org.Id into orgtmp from o in orgtmp.DefaultIfEmpty() select new { user.Account, user.Name, user.Id, user.Sex, user.Status, user.BizCode, user.CreateId, user.CreateTime, user.TypeId, user.TypeName, r.Key, r.SecondId, OrgId = o.Id, OrgName = o.Name }; //如果请求的orgId不为空 if (!string.IsNullOrEmpty(request.orgId)) { userOrgs = userOrgs.Where(u => u.Key == Define.USERORG && u.OrgId == request.orgId); } var userViews = (await userOrgs.ToListAsync()).GroupBy(b => b.Account).Select(u => new UserView { Id = u.First().Id, Account = u.Key, Name = u.First().Name, Sex = u.First().Sex, Status = u.First().Status, CreateTime = u.First().CreateTime, CreateUser = u.First().CreateId, OrganizationIds = string.Join(",", u.Select(x => x.OrgId)) , Organizations = string.Join(",", u.Select(x => x.OrgName)) }); return(new TableResp <UserView>() { count = userViews.Count(), data = userViews.OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit).ToList() }); }
/// <summary> /// 加载组织下面的所有用户 /// </summary> public async Task <string> Load([FromQuery] QueryUserListReq request) { var load = await _app.Load(request); return(JsonHelper.Instance.Serialize(load)); }
public async Task <TableData> Load([FromQuery] QueryUserListReq request) { return(await _app.Load(request)); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// </summary> public TableData Load(QueryUserListReq request) { var loginUser = AuthUtil.GetCurrentUser(); string cascadeId = ".0."; if (!string.IsNullOrEmpty(request.orgId)) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); cascadeId = org.CascadeId; } var ids = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); var userIds = ReleManagerApp.Get(Define.USERORG, false, ids); Expression <Func <User, bool> > where = p => true; if (!string.IsNullOrEmpty(request.key)) { where = i => i.Name.Contains(request.key); } Expression <Func <User, bool> > where1 = p => true; Expression <Func <User, bool> > where2 = p => true; if (request.UserStatus > 0) { if (request.UserStatus == 2) { where1 = i => i.Status == 0; where2 = i => i.Status == 0 && userIds.Contains(i.Id); } else if (request.UserStatus == 3) { where1 = i => i.Status == 0 || i.Status == 1; where2 = i => (i.Status == 0 || i.Status == 1) && userIds.Contains(i.Id); } else { where1 = i => i.Status == 1; where2 = i => i.Status == 1 && userIds.Contains(i.Id); } } var users = UnitWork.Find <User>(u => userIds.Contains(u.Id)).Where(where).Where(where1) .OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit); var records = Repository.GetCount(where2); var userviews = new List <UserView>(); foreach (var user in users.ToList()) { UserView uv = user; var orgs = LoadByUser(user.Id); uv.Organizations = string.Join(",", orgs.Select(u => u.Name).ToList()); uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList()); userviews.Add(uv); } return(new TableData { count = records, data = userviews, }); }
/// <summary> /// 載入當前登錄使用者可訪問的一個部門及子部門全部使用者 /// 如果請求的request.OrgId為空,則可以獲取到已被刪除機構的使用者(即:沒有分配任何機構的使用者) /// </summary> public async Task <TableData> Load(QueryUserListReq request) { var loginUser = _auth.GetCurrentUser(); IQueryable <User> query = UnitWork.Find <User>(null); if (!string.IsNullOrEmpty(request.key)) { query = UnitWork.Find <User>(u => u.Name.Contains(request.key) || u.Account.Contains(request.key)); } var userOrgs = from user in query join relevance in UnitWork.Find <Relevance>(u => u.Key == "UserOrg") on user.Id equals relevance.FirstId into temp from r in temp.DefaultIfEmpty() join org in UnitWork.Find <Org>(null) on r.SecondId equals org.Id into orgtmp from o in orgtmp.DefaultIfEmpty() select new { user.Account, user.Name, user.Id, user.Sex, user.Status, user.BizCode, user.CreateId, user.CreateTime, user.TypeId, user.TypeName, r.Key, r.SecondId, OrgId = o.Id, OrgName = o.Name }; //如果請求的orgId不為空 if (!string.IsNullOrEmpty(request.orgId)) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); var cascadeId = org.CascadeId; var orgIds = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); //只獲取機構裡面的使用者 userOrgs = userOrgs.Where(u => u.Key == Define.USERORG && orgIds.Contains(u.OrgId)); } else //todo:如果請求的orgId為空,即為跟節點,這時可以額外獲取到機構已經被刪除的使用者,從而進行機構分配。可以根據自己需求進行調整 { var orgIds = loginUser.Orgs.Select(u => u.Id).ToArray(); //獲取使用者可以訪問的機構的使用者和沒有任何機構關聯的使用者(機構被刪除后,沒有刪除這裡面的關聯關係) userOrgs = userOrgs.Where(u => (u.Key == Define.USERORG && orgIds.Contains(u.OrgId)) || (u.OrgId == null)); } var userViews = userOrgs.ToList().GroupBy(b => b.Account).Select(u => new UserView { Id = u.First().Id, Account = u.Key, Name = u.First().Name, Sex = u.First().Sex, Status = u.First().Status, CreateTime = u.First().CreateTime, CreateUser = u.First().CreateId, OrganizationIds = string.Join(",", u.Select(x => x.OrgId)) , Organizations = string.Join(",", u.Select(x => x.OrgName)) }); return(new TableData { count = userViews.Count(), data = userViews.OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit), }); }
public async Task <TableResp <UserView> > LoadAll([FromQuery] QueryUserListReq request) { return(await _app.LoadAll(request)); }
/// <summary> /// 加载组织下面的所有用户 /// </summary> public JsonResult Load([FromQuery] QueryUserListReq request) { return(Json(_app.Load(request))); }
/// <summary> /// 加载组织下面的所有用户 /// </summary> public string Load([FromUri] QueryUserListReq request) { var data = App.Load(request); return(JsonHelper.Instance.Serialize(data)); }
/// <summary> /// 加载当前登录用户可访问的一个部门及子部门全部用户 /// 如果请求的request.OrgId为空,则可以获取到已被删除机构的用户(即:没有分配任何机构的用户) /// </summary> public async Task <TableData> Load(QueryUserListReq request) { var loginUser = _auth.GetCurrentUser(); IQueryable <User> query = UnitWork.Find <User>(null); if (!string.IsNullOrEmpty(request.key)) { query = UnitWork.Find <User>(u => u.Name.Contains(request.key) || u.Account.Contains(request.key)); } var userOrgs = from user in query join relevance in UnitWork.Find <Relevance>(u => u.Key == "UserOrg") on user.Id equals relevance.FirstId into temp from r in temp.DefaultIfEmpty() join org in UnitWork.Find <SysOrg>(null) on r.SecondId equals org.Id into orgtmp from o in orgtmp.DefaultIfEmpty() select new { user.Account, user.Name, user.Id, user.Sex, user.Status, user.BizCode, user.CreateId, user.CreateTime, user.TypeId, user.TypeName, r.Key, r.SecondId, OrgId = o.Id, OrgName = o.Name }; //如果请求的orgId不为空 if (!string.IsNullOrEmpty(request.orgId)) { var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId); var cascadeId = org.CascadeId; var orgIds = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray(); //只获取机构里面的用户 userOrgs = userOrgs.Where(u => u.Key == Define.USERORG && orgIds.Contains(u.OrgId)); } else //todo:如果请求的orgId为空,即为跟节点,这时可以额外获取到机构已经被删除的用户,从而进行机构分配。可以根据自己需求进行调整 { var orgIds = loginUser.Orgs.Select(u => u.Id).ToArray(); //获取用户可以访问的机构的用户和没有任何机构关联的用户(机构被删除后,没有删除这里面的关联关系) userOrgs = userOrgs.Where(u => (u.Key == Define.USERORG && orgIds.Contains(u.OrgId)) || (u.OrgId == null)); } var userViews = (await userOrgs.ToListAsync()).GroupBy(b => b.Account) .Select(u => new UserView { Id = u.First().Id, Account = u.Key, Name = u.First().Name, Sex = u.First().Sex, Status = u.First().Status, CreateTime = u.First().CreateTime, CreateUser = u.First().CreateId, OrganizationIds = string.Join(",", u.Select(x => x.OrgId)) , Organizations = string.Join(",", u.Select(x => x.OrgName)) }); return(new TableData { count = userViews.Count(), data = userViews.OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit) .Take(request.limit), }); }
/// <summary> /// 加载组织下面的所有用户 /// </summary> public string Load([FromQuery] QueryUserListReq request) { return(JsonHelper.Instance.Serialize(_app.Load(request))); }
public TableData Load([FromQuery] QueryUserListReq request) { return(_app.Load(request)); }