Ejemplo n.º 1
0
        public async Task <JsonResult <ResultModel> > GetPageAsync([FromUri] StaffQueryCondModel queryCond)
        {
            var page      = queryCond.Page;
            var page_size = queryCond.Page_size;

            if (page <= 0)
            {
                var res = new ResultModel()
                {
                    status = 200, data = new { }, msg = "error"
                };
                return(Json(res));
            }
            else
            {
                //获取总数
                var dataCount = await StaffService.GetCountAsync();

                if (dataCount <= 0)
                {
                    var res = new ResultModel()
                    {
                        status = 200, data = new { }, msg = "empty"
                    };
                    return(Json(res));
                }
                if ((page - 1) * page_size > dataCount)
                {
                    var res = new ResultModel()
                    {
                        status = 200, data = new { }, msg = "error"
                    };
                    return(Json(res));
                }
                else
                {
                    var list = await StaffService.GetPageListAsync(queryCond);

                    var pageBodyModel = new PageBodyModel()
                    {
                        current_page = page,
                        per_page     = page_size,
                        data         = list.ToArray(),
                        total        = dataCount,
                    };
                    var pageModel = new GetPageModel {
                        list = pageBodyModel
                    };
                    var res = new ResultModel()
                    {
                        status = 200, data = pageModel, msg = "ok"
                    };
                    return(Json(res));
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <IEnumerable <StaffQueryDTO> > GetPageListAsync(StaffQueryCondModel queryCond)
        {
            var page      = queryCond.Page;
            var page_size = queryCond.Page_size;

            using (UCDbContext ctx = new UCDbContext())
            {
                var queryAble = ctx.Staffs.AsNoTracking().OrderBy(s => s.Id).Where(s => s.Status);//用asNotracking可以提升一点性能,不跟踪状态变化
                if (!string.IsNullOrEmpty(queryCond.StaffCode))
                {
                    queryAble = queryAble.Where(s => s.StaffCode.Contains(queryCond.StaffCode));
                }
                if (!string.IsNullOrEmpty(queryCond.ChName))
                {
                    queryAble = queryAble.Where(s => s.ChName.Contains(queryCond.ChName));
                }
                if (!string.IsNullOrEmpty(queryCond.ParentCode))
                {
                    queryAble = queryAble.Where(s => s.ParentStaff.StaffCode.Contains(queryCond.ParentCode));
                }
                if (queryCond.BeginEmploymentDate != DateTime.MinValue && queryCond.EndEmploymentDate != DateTime.MinValue)
                {
                    queryAble = queryAble.Where(s => (DbFunctions.DiffDays(s.EmploymentDate, queryCond.BeginEmploymentDate) <= 0) && (DbFunctions.DiffDays(s.EmploymentDate, queryCond.EndEmploymentDate) >= 0));//后面减前面 &&翻译成 AND
                }
                else
                {
                    if (queryCond.BeginEmploymentDate != DateTime.MinValue)
                    {
                        queryAble = queryAble.Where(s => DbFunctions.DiffDays(s.EmploymentDate, queryCond.BeginEmploymentDate) <= 0);//后面减前面
                    }
                    if (queryCond.EndEmploymentDate != DateTime.MinValue)
                    {
                        queryAble = queryAble.Where(s => DbFunctions.DiffDays(s.EmploymentDate, queryCond.EndEmploymentDate) >= 0);
                    }
                }
                queryAble = queryAble.Skip((page - 1) * page_size);
                queryAble = queryAble.Take(page_size);
                var datas = await queryAble.ToListAsync();

                List <StaffQueryDTO> staffDtos = new List <StaffQueryDTO>();
                foreach (var item in datas)
                {
                    staffDtos.Add(ToDTO(item));
                }
                return(staffDtos);
            }
        }