Exemple #1
0
        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
            });
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        public void GetUser()
        {
            var request = new QueryUserListReq
            {
                orgId = "",
                page  = 1,
                limit = 30
            };
            var users = _app.Load(request);

            Console.WriteLine(users.count);
        }
Exemple #5
0
        /// <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,
            });
        }
Exemple #7
0
        /// <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,
            });
        }
Exemple #8
0
        /// <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));
        }
Exemple #10
0
 public async Task <TableData> Load([FromQuery] QueryUserListReq request)
 {
     return(await _app.Load(request));
 }
Exemple #11
0
        /// <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,
            });
        }
Exemple #12
0
        /// <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)));
 }
Exemple #15
0
        /// <summary>
        /// 加载组织下面的所有用户
        /// </summary>
        public string Load([FromUri] QueryUserListReq request)
        {
            var data = App.Load(request);

            return(JsonHelper.Instance.Serialize(data));
        }
Exemple #16
0
        /// <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));
 }