106 lines
3.6 KiB
C#
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;
|
|
}
|
|
} |