update from old git
This commit is contained in:
214
web/App_Code/api/guadanOrderController.cs
Normal file
214
web/App_Code/api/guadanOrderController.cs
Normal file
@@ -0,0 +1,214 @@
|
||||
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;
|
||||
using static regionController;
|
||||
|
||||
/// <summary>
|
||||
/// guadanOderController 的摘要描述
|
||||
/// </summary>
|
||||
[ezAuthorize]
|
||||
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)
|
||||
.Select(a => new
|
||||
{
|
||||
uuid = a.Uuid,
|
||||
guaDanOrderNo = a.GuaDanOrderNo,
|
||||
start_date = a.StartDate,
|
||||
end_date = a.EndDate,
|
||||
created_at = a.CreatedAt,
|
||||
updated_at = a.UpdatedAt,
|
||||
notes = a.Notes,
|
||||
bookerName = a.BookerName,
|
||||
guest_count = _db.GuaDanOrderGuest.Where(c => c.GuaDanOrderNo == a.GuaDanOrderNo).Count(),
|
||||
}).ToListAsync();
|
||||
return Ok(data);
|
||||
}
|
||||
[HttpGet]
|
||||
[Route("api/guadan/getorderbyid")]
|
||||
public async Task<IHttpActionResult> getGuadanOrderById(string orderId)
|
||||
{
|
||||
var order = await _db.GuaDanOrder.Where(a => a.GuaDanOrderNo == orderId).FirstOrDefaultAsync();
|
||||
if (order == null)
|
||||
{
|
||||
return BadRequest("未找到对应订单");
|
||||
}
|
||||
var result = new
|
||||
{
|
||||
order.admin,
|
||||
order.followers,
|
||||
StartDate = order.StartDate?.ToString("yyyy-MM-dd"),
|
||||
EndDate = order.EndDate?.ToString("yyyy-MM-dd"),
|
||||
order.CreateUser,
|
||||
order.CreatedAt,
|
||||
order.UpdatedAt,
|
||||
order.Notes,
|
||||
order.GuaDanOrderNo,
|
||||
order.BookerFollowerNum,
|
||||
order.BookerName,
|
||||
order.BookerPhone,
|
||||
order.IsDeleted,
|
||||
order.Uuid,
|
||||
};
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
[HttpPost]
|
||||
[Route("api/guadan/create")]
|
||||
public async Task<IHttpActionResult> createGuadanOrder(GuaDanOrderView model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return BadRequest("掛單資料不可為空");
|
||||
}
|
||||
if(model.Uuid.HasValue)
|
||||
{
|
||||
return BadRequest("已存在对应挂单资料");
|
||||
}
|
||||
try
|
||||
{
|
||||
if (model.startdate > model.enddate)
|
||||
{
|
||||
return BadRequest("掛單結束時間不能再開始時間之前");
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
var guadanorder = new GuaDanOrder
|
||||
{
|
||||
StartDate = model.startdate,
|
||||
EndDate = model.enddate,
|
||||
CreateUser = model.createuser,
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdatedAt = DateTime.Now,
|
||||
Notes = model.note,
|
||||
GuaDanOrderNo = GuaDanOrder.GenerateStatusCode(),
|
||||
BookerName = model.bookerName,
|
||||
BookerPhone = model.bookerPhone,
|
||||
Uuid = Guid.NewGuid(),
|
||||
};
|
||||
_db.GuaDanOrder.Add(guadanorder);
|
||||
await _db.SaveChangesAsync();
|
||||
return Ok(guadanorder);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/guadan/update")]
|
||||
public async Task<IHttpActionResult> updateGuadanOrder(GuaDanOrderView model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return BadRequest("掛單資料不可為空");
|
||||
}
|
||||
if (!model.Uuid.HasValue)
|
||||
{
|
||||
return BadRequest("");
|
||||
}
|
||||
try
|
||||
{
|
||||
if (model.startdate > model.enddate)
|
||||
{
|
||||
return BadRequest("掛單結束時間不能再開始時間之前");
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
var order = await _db.GuaDanOrder.FindAsync(model.Uuid.Value);
|
||||
if (order == null)
|
||||
{
|
||||
return BadRequest("未找到对应挂单资料");
|
||||
}
|
||||
order.StartDate = model.startdate;
|
||||
order.EndDate = model.enddate;
|
||||
order.Notes = model.note;
|
||||
order.BookerName = model.bookerName;
|
||||
order.BookerPhone = model.bookerPhone;
|
||||
await _db.SaveChangesAsync();
|
||||
return Ok(model);
|
||||
}
|
||||
[HttpPost]
|
||||
[Route("api/guadan/delete")]
|
||||
public async Task<IHttpActionResult> deleteGuadanOrder([FromUri] Guid uuid)
|
||||
{
|
||||
var guadan = await _db.GuaDanOrder.FindAsync(uuid);
|
||||
if (guadan == null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
using (var transaction = _db.Database.BeginTransaction())
|
||||
{
|
||||
try
|
||||
{
|
||||
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);
|
||||
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);
|
||||
await _db.SaveChangesAsync();
|
||||
transaction.Commit();
|
||||
|
||||
return Ok(new { message = "删除成功" });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
transaction.Rollback();
|
||||
return InternalServerError(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class guadan_order_dto
|
||||
{
|
||||
public int id { get; set; }
|
||||
public int room_id { get; set; }
|
||||
public int bed_id { get; set; }
|
||||
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; }
|
||||
public string notes { get; set; }
|
||||
public int? follower_num { get; set; }
|
||||
|
||||
public Room room { get; set; } = null;
|
||||
public RegionRoomBed bed { get; set; } = null;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user