客堂登記報名

This commit is contained in:
2026-08-04 18:06:23 +08:00
parent da913d2584
commit d6c817475c
6 changed files with 465 additions and 42 deletions
+99 -2
View File
@@ -5,7 +5,8 @@ using System.Linq;
using System.Net;
using System.Web;
using System.Web.Http;
using MyWeb;
using MINOM.COM.Utility;
// api/pre_order
//[ezAuthorize(Roles = "admin")]//群組:*
//[ezAuthorize]
@@ -30,7 +31,8 @@ public class preOrderController: ApiController
{
qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num));
}
sortBy = sortBy ?? string.Empty;
//sortBy = sortBy ?? string.Empty;
qry=qry.OrderByDescending(x => x.num);
var count = qry.Count(); //pageSize = count;//一次取回??
if (pageSize == -1)
{
@@ -52,4 +54,99 @@ public class preOrderController: ApiController
return Ok(ret);
}
[HttpPost]
[Route("api/preOrder/SavePreOrder")]
public IHttpActionResult SavePreOrder([FromBody] Model.ViewModel.preOrder pre)
{
try
{
//要檢查有無報過名
var qry1 = _db.pro_order.AsQueryable();
qry1 = qry1.Where(y=>y.f_num==pre.f_num&&y.activity_num==pre.act_num);
var o=qry1.FirstOrDefault();
if (o != null && !string.IsNullOrEmpty(o.order_no))
{
throw new Exception("已經報過名,請勿重複報名");
}
var qry = _db.followers.AsQueryable();
qry = qry.Where(x => x.num == pre.f_num);
var f = qry.FirstOrDefault();
//寫入pre_order,同時寫入pro_order
pre.order_no = new MyWeb.autoNum().createOrderNumber();
Model.pre_order preO = new Model.pre_order();
Model.pro_order proO = new Model.pro_order();
preO.order_no = pre.order_no;
preO.act_num = pre.act_num;
preO.f_num = pre.f_num;
preO.item_count = pre.item_count;
preO.total_amt = pre.total_amt;
preO.reg_time = DateTime.Now;
proO.up_time= DateTime.Now;
proO.reg_time = DateTime.Now;
proO.order_no = preO.order_no;
proO.activity_num = pre.act_num;
proO.f_num = pre.f_num;
proO.keyin1 = "A01";
proO.phone = f.phone;
proO.address = f.address??"";
proO.demo = "";
_db.pre_order.Add(preO);
_db.pro_order.Add(proO);
_db.SaveChanges();
return Ok(new {result="Y",message="新增成功"});
}
catch (Exception ex)
{
LogUtility log = new LogUtility();
log.writeErrorPath(ex.Message+ex.StackTrace);
return Ok(new { result = "N", message = $"新增失敗 {ex.Message}" });
}
}
[HttpPost]
[Route("api/preOrder/GetPreOrderByNum")]
public IHttpActionResult GetPreOrderByNum([FromBody] Model.ViewModel.preOrder pre)
{
var qry = _db.pre_order.AsQueryable();
qry = qry.Where(x => x.order_no==pre.order_no);
//sortBy = sortBy ?? string.Empty;
qry = qry.OrderByDescending(x => x.num);
var ret = new
{
data=qry.Select(x => new
{
x.num,
x.f_num,
x.admin_num,
x.order_no,
x.item_count,
x.total_amt,
x.reg_time,
x.receipt_num,
x.act_num,
f_name = _db.followers.Where(z => z.num == x.f_num).Select(z => z.u_name).FirstOrDefault(),
act_name = _db.activities.Where(w => w.num == x.act_num).Select(w => w.subject).FirstOrDefault(),
}).FirstOrDefault()
};
if (ret.data == null) {
return Ok(new {result="N",message=""});
}
;
return Ok(new
{
result = "Y",
ret
});
}
}