Esempio n. 1
0
        public IActionResult List(PageListParams <PositionParams> model)
        {
            var where = ExpressionBuilder.Init <Position>();
            var param = model.Params;

            if (!param.PositionName.IsNullOrEmpty())
            {
                where = where.And(a => a.Name.Contains(param.PositionName));
            }
            var positionList     = _positionService.GetPageList(model.Page, model.Limit, where);
            var dministratorList = _administratorService.GetListByIds(positionList.Items.Select(a => a.AdministratorId).ToList());
            var result           = _positionService.GetPageList(model.Page, model.Limit, where).UpdateForPageListResult(a =>
            {
                var dministrator = dministratorList.FirstOrDefault(b => b.Id == a.AdministratorId);

                return(new PositionModel
                {
                    Id = a.Id.ToString(),
                    Name = a.Name,
                    Remark = a.Remark ?? "",
                    UpdateDateTime = a.UpdateDateTime,
                    AdministratorName = dministrator == null ? "" : dministrator.RealName
                });
            });

            return(PageList(result));
        }
Esempio n. 2
0
        public IActionResult List(PageListParams <RoleParams> model)
        {
            var where = ExpressionBuilder.Init <Role>();
            var param = model.Params;

            if (!param.RoleName.IsNullOrEmpty())
            {
                where = where.And(a => a.Name.Contains(param.RoleName));
            }

            var result = _roleService.GetPageList(model.Page, model.Limit, where).UpdateForPageListResult(a => a.MapTo <RoleVo>());

            return(PageList(result));
        }
Esempio n. 3
0
        public IActionResult List(PageListParams <ListSearchParams> model)
        {
            var where = ExpressionBuilder.Init <Administrator>();
            var param = model.Params;

            if (!param.RealName.IsNullOrEmpty())
            {
                where = where.And(a => a.RealName.Contains(param.RealName));
            }

            if (!param.UserName.IsNullOrEmpty())
            {
                where = where.And(a => a.UserName.Contains(param.UserName));
            }

            if (param.Status.HasValue)
            {
                where = where.And(a => a.Status == param.Status.Value);
            }

            if (!param.DepartmentId.IsNullOrEmpty())
            {
                where = where.And(a => a.DepartmentId == param.DepartmentId.ToObjectId());
            }

            if (!param.PositionId.IsNullOrEmpty())
            {
                where = where.And(a => a.PositionIds.Contains(param.DepartmentId.ToObjectId()));
            }

            if (!param.RoleId.IsNullOrEmpty())
            {
                where = where.And(a => a.RoleIds.Contains(param.RoleId.ToObjectId()));
            }

            var administratorList = _administratorService.GetPageList(model.Page, model.Limit, where);
            var departmentList    = _departmentService.GetByIds(administratorList.Items.Select(a => a.DepartmentId).ToList());
            var roleList          = _roleService.GetByIds(administratorList.Items.SelectMany(a => a.RoleIds));
            var positionList      = _positionService.GetByIds(administratorList.Items.SelectMany(a => a.PositionIds));

            var result = _administratorService.GetPageList(model.Page, model.Limit, where).UpdateForPageListResult(a =>
            {
                var department = departmentList.FirstOrDefault(b => b.Id == a.DepartmentId);

                var role = roleList.Where(b => Enumerable.Contains(a.RoleIds, b.Id)).Aggregate("", (current, item) => current + (item.Name + ",")).Trim(',');

                var position = positionList.Where(b => Enumerable.Contains(a.PositionIds, b.Id)).Aggregate("", (current, item) => current + (item.Name + ",")).Trim(',');

                return(new AdministratorListVo
                {
                    CreateDateTime = a.CreateDateTime,
                    RealName = a.RealName,
                    Status = a.Status.GetDisplayName(),
                    StatusForInt = a.Status.GetHashCode(),
                    UserName = a.UserName,
                    Id = a.Id.ToString(),
                    Phone = a.Phone,
                    Position = position,
                    Role = role,
                    Department = department?.Name,
                });
            });

            return(PageList(result));
        }