using Model; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Threading.Tasks; using System.Web; using System.Web.Http; /// /// guadanGuestQueryController 的摘要描述 /// public class guadanGuestQueryController: ApiController { private Model.ezEntities _db = new Model.ezEntities(); public guadanGuestQueryController() { // // TODO: 在這裡新增建構函式邏輯 // } [HttpPost] [Route("api/guadan/guest/query/list")] public async Task GetList([FromBody] SearchGuestModel search) { var query = _db.GuaDanOrderGuest .Where(guest => guest.StatusCode != "404"); if(search.SearchName != null) { query = query.Where(guest => guest.followers.u_name.Contains(search.SearchName)); } if(search.searchCheckInDate != null) { query = query.Where(guest => guest.CheckInAt == search.searchCheckInDate); } if(search.searchCheckOutDate != null) { query = query.Where(guest => guest.CheckOutAt == search.searchCheckOutDate); } if(search.searchCheckInDateStart != null) { query = query.Where(guest => guest.CheckInAt >= search.searchCheckInDateStart); } if (search.searchCheckInDateEnd != null) { query = query.Where(guest => guest.CheckInAt <= search.searchCheckInDateEnd); } if (search.searchCheckOutDateStart != null) { query = query.Where(guest => guest.CheckOutAt >= search.searchCheckOutDateStart); } if (search.searchCheckOutDateEnd != null) { query = query.Where(guest => guest.CheckOutAt <= search.searchCheckOutDateEnd); } var totalCount = await query.CountAsync(); var pagedData = await query .OrderByDescending(a => a.CheckInAt) // 可根据需要排序 .Skip((search.Page - 1) * search.PageSize) .Take(search.PageSize) .ToListAsync(); var data1 = pagedData.Select(a => new { name = a.followers != null ? a.followers.u_name : null, checkindate = a.CheckInAt, checkoutdate = a.CheckOutAt, guadanorderno = a.GuaDanOrderNo, roomName = GetRoomAndBedString(a.RegionRoomBed), }).ToList(); return Ok(new { items = data1, total = totalCount, }); } public string GetRoomAndBedString(RegionRoomBed bed) { if (bed == null || bed.Room == null) return ""; var room = bed.Room; var region = room.Region; var name = room.Name + "/" + bed.Name; if(region != null) { name = region.Name + "/" + name; } var parentRegion = region.Region2; while (parentRegion != null) { name = parentRegion.Name + "/" + name; parentRegion = parentRegion.Region2; } return name; } public class SearchGuestModel { public string SearchName = null; public int Page = 1; public int PageSize = 10; public DateTime? searchCheckInDateStart = null;//入住日期的开始 public DateTime? searchCheckInDateEnd = null;//入住日期的结束 public DateTime? searchCheckOutDateStart = null;//退房日期的开始 public DateTime? searchCheckOutDateEnd = null;//退房日期的结束 public DateTime? searchCheckInDate = null; public DateTime? searchCheckOutDate = null; } }