/// <summary> /// 根据医护人员搜索输入分页获取医护人员列表 /// </summary> /// <param name="input">医护人员搜索输入</param> /// <returns>医护人员列表</returns> public async Task <Tuple <List <DoctorViewDto>, int> > GetDoctorPageList(DoctorSearchInput input) { var result = await _repository.GetDoctorPageList(input); var tuple = new Tuple <List <DoctorViewDto>, int>(Mapper.Map <List <Doctor>, List <DoctorViewDto> >(result.Item1), result.Item2); return(tuple); }
/// <summary> /// 首页 /// </summary> /// <returns></returns> public async Task <IActionResult> Index(int pageIndex = 1, long hospitalId = -1) { await ShowHospitalList(true); var search = new DoctorSearchInput { HospitalId = hospitalId, PageIndex = pageIndex }; return(View(search)); }
/// <summary> /// 医生列表 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IActionResult> List(DoctorSearchInput input) { var model = new Page <DoctorViewDto>(); if (CurrentLoginUser.HospitalId.HasValue) { input.HospitalId = CurrentLoginUser.HospitalId.Value; } var items = await _service.GetDoctorPageList(input); model.CurrentPage = input.PageIndex; model.TotalRecords = items.Item2; model.Items = items.Item1; ViewBag.HospitalId = input.HospitalId; return(PartialView("_ListPartial", model)); }
/// <summary> /// 根据医护人员搜索输入分页获取医护人员实体列表 /// </summary> /// <param name="input">医护人员搜索输入</param> /// <returns>医护人员实体列表</returns> public async Task <Tuple <List <Doctor>, int> > GetDoctorPageList(DoctorSearchInput input) { var query = _context.Doctor.Include(i => i.Hospital).AsQueryable(); if (!string.IsNullOrEmpty(input.Name)) { query = query.Where(i => i.Name.Contains(input.Name)); } if (!string.IsNullOrEmpty(input.Phone)) { query = query.Where(i => i.Phone.Contains(input.Phone)); } if (input.Sex != -1) { query = query.Where(i => i.Sex == input.Sex); } if (input.UserType != -1) { query = query.Where(i => i.UserType == input.UserType); } if (input.HospitalId != -1) { query = query.Where(i => i.HospitalId == input.HospitalId); } if (input.DeptId != -1) { query = query.Where(i => i.DeptId == input.DeptId); } if (input.TitleId != -1) { query = query.Where(i => i.TitleId == input.TitleId); } int total = query.Count(); var doctorList = await query.OrderBy(i => i.Id).Skip(input.PageSize * (input.PageIndex - 1)).Take(input.PageSize).ToListAsync(); return(new Tuple <List <Doctor>, int>(doctorList, total)); }