Files
17168ERP/web/App_Code/api/guadanGuestQueryController.cs

106 lines
3.6 KiB
C#

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;
/// <summary>
/// guadanGuestQueryController 的摘要描述
/// </summary>
public class guadanGuestQueryController: ApiController
{
private Model.ezEntities _db = new Model.ezEntities();
public guadanGuestQueryController()
{
//
// TODO: 在這裡新增建構函式邏輯
//
}
[HttpPost]
[Route("api/guadan/guest/query/list")]
public async Task<IHttpActionResult> 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;
}
}