修改挂单功能

This commit is contained in:
2025-09-09 16:25:28 +08:00
parent e6c6b1f43f
commit ded24a8446
23 changed files with 1073 additions and 231 deletions

View File

@@ -12,14 +12,16 @@ using static regionController;
/// guadanOderController 的摘要描述
/// </summary>
[ezAuthorize]
public class guadanOrderController: ApiController
public class guadanOrderController : ApiController
{
private Model.ezEntities _db = new Model.ezEntities();
[HttpGet]
[Route("api/guadan/list")]
public async Task<IHttpActionResult> getGuadanList()
{
var data = await _db.GuaDanOrder.OrderByDescending(b => b.CreatedAt)
var data = await _db.GuaDanOrder
.Where(a => a.IsCancel == false)
.OrderByDescending(b => b.CreatedAt)
.Select(a => new
{
uuid = a.Uuid,
@@ -30,7 +32,10 @@ public class guadanOrderController: ApiController
updated_at = a.UpdatedAt,
notes = a.Notes,
bookerName = a.BookerName,
guest_count = _db.GuaDanOrderGuest.Where(c => c.GuaDanOrderNo == a.GuaDanOrderNo).Count(),
guest_count = _db.GuaDanOrderGuest
.Where(c => c.GuaDanOrderNo == a.GuaDanOrderNo && c.IsDeleted == false)
.Where(c => c.RegionRoomBedStatus.Code != GuaDanOrderGuest.STATUS_CANCELLED)
.Count(),
}).ToListAsync();
return Ok(data);
}
@@ -38,7 +43,10 @@ public class guadanOrderController: ApiController
[Route("api/guadan/getorderbyid")]
public async Task<IHttpActionResult> getGuadanOrderById(string orderId)
{
var order = await _db.GuaDanOrder.Where(a => a.GuaDanOrderNo == orderId).FirstOrDefaultAsync();
var order = await _db.GuaDanOrder
.Where(a => a.GuaDanOrderNo == orderId)
.Where(a => a.IsCancel == false && a.IsDeleted == false)
.FirstOrDefaultAsync();
if (order == null)
{
return BadRequest("未找到对应订单");
@@ -46,7 +54,7 @@ public class guadanOrderController: ApiController
var result = new
{
order.admin,
order.follower,
order.followers,
StartDate = order.StartDate?.ToString("yyyy-MM-dd"),
EndDate = order.EndDate?.ToString("yyyy-MM-dd"),
order.CreateUser,
@@ -59,6 +67,8 @@ public class guadanOrderController: ApiController
order.BookerPhone,
order.IsDeleted,
order.Uuid,
order.ActivityNum,
};
return Ok(result);
@@ -71,7 +81,7 @@ public class guadanOrderController: ApiController
{
return BadRequest("掛單資料不可為空");
}
if(model.Uuid.HasValue)
if (model.Uuid.HasValue)
{
return BadRequest("已存在对应挂单资料");
}
@@ -99,6 +109,7 @@ public class guadanOrderController: ApiController
BookerName = model.bookerName,
BookerPhone = model.bookerPhone,
Uuid = Guid.NewGuid(),
ActivityNum = model.activityNum,
};
_db.GuaDanOrder.Add(guadanorder);
await _db.SaveChangesAsync();
@@ -138,12 +149,13 @@ public class guadanOrderController: ApiController
order.Notes = model.note;
order.BookerName = model.bookerName;
order.BookerPhone = model.bookerPhone;
order.ActivityNum = model.activityNum;
await _db.SaveChangesAsync();
return Ok(model);
}
[HttpPost]
[Route("api/guadan/delete")]
public async Task<IHttpActionResult> deleteGuadanOrder([FromUri] Guid uuid)
[Route("api/guadan/cancel")]
public async Task<IHttpActionResult> CancelGuadanOrder([FromUri] Guid uuid)
{
var guadan = await _db.GuaDanOrder.FindAsync(uuid);
if (guadan == null)
@@ -158,31 +170,27 @@ public class guadanOrderController: ApiController
var guadanGuests = await _db.GuaDanOrderGuest
.Where(a => a.GuaDanOrderNo == guadan.GuaDanOrderNo)
.ToListAsync();
var scheduleIds = _db.RegionAndRoomAndBedSchedule
.Where(a => a.GuaDanOrderNo == guadan.GuaDanOrderNo)
.Where( b => b.IsActive == true)
.Select(c => c.GuaDanOrderNo)
.ToList();
if (guadanGuests.Any())
{
_db.GuaDanOrderGuest.RemoveRange(guadanGuests);
foreach (var guest in guadanGuests)
{
guest.StatusCode = "404";
// 取消所有相關的排程
if (guest.RegionAndRoomAndBedSchedule != null && guest.RegionAndRoomAndBedSchedule.Any())
{
foreach (var schedule in guest.RegionAndRoomAndBedSchedule)
{
schedule.IsCancel = true;
}
}
}
await _db.SaveChangesAsync();
}
if (scheduleIds.Any())
{
var schedules = await _db.RegionAndRoomAndBedSchedule
.Where(a => scheduleIds.Contains(a.GuaDanOrderNo))
.ToListAsync();
if (schedules.Any())
_db.RegionAndRoomAndBedSchedule.RemoveRange(schedules);
}
_db.GuaDanOrder.Remove(guadan);
guadan.IsCancel = true;
await _db.SaveChangesAsync();
transaction.Commit();
return Ok(new { message = "删除成功" });
return Ok(new { message = "取消成功" });
}
catch (Exception ex)
{
@@ -200,7 +208,6 @@ public class guadanOrderController: ApiController
public int guest_id { get; set; }
public DateTime start_date { get; set; }
public DateTime? end_date { get; set; }
public Guid? statusUuid { get; set; }
public int? create_user { get; set; }
public DateTime created_at { get; set; }
public DateTime updated_at { get; set; }