快速報名

This commit is contained in:
2026-05-22 17:51:57 +08:00
parent 77f642b2d2
commit ccc188013b
7 changed files with 617 additions and 4 deletions
+1
View File
@@ -43,6 +43,7 @@ namespace Model.ViewModel
public string country { get; set; }
public string country2 { get; set; }
public string phone_idcode { get; set; } // 電話/證號搜尋欄位
public string cellphone { get; set; }
}
public class followers_tablet
{
+6
View File
@@ -43,6 +43,8 @@ namespace Model.ViewModel
public List<pro_order_detail> details { get; set; }
public follower f_user { get; set; }
}
public class pro_order_detail
@@ -85,6 +87,10 @@ namespace Model.ViewModel
public string follower_name { get; set; }
public string full_description { get; set; }
public string order_info { get; set; }
public string style { get; set; }
public List<family_members> mid_items { get; set; }
public List<family_members> left_items { get; set; }
}
}
+1
View File
@@ -1008,6 +1008,7 @@ public class activityController : ApiController
{
text = x.actItem?.subject,
val = x.actItem_num,
style=x.actItem.defaultStyle
},
price = x.price ?? 0,
qty = x.qty ?? 0,
+138
View File
@@ -2,6 +2,8 @@
using Model;
using MyWeb;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using Org.BouncyCastle.Utilities.Encoders;
using PagedList;
using System;
using System.Activities.Expressions;
@@ -202,6 +204,142 @@ public class orderController : ApiController
var count = _db.pro_order.Count();
return count;
}
[HttpPost]
[Route("api/order/AddOrderWithDetail")]
public IHttpActionResult AddOrderWithDetail([FromBody] Model.ViewModel.pro_order q)
{
try
{
MyWeb.encrypt encrypt = new MyWeb.encrypt();
//先塞信眾
Model.follower follower = new Model.follower();
follower.u_name = q.f_user.u_name;
follower.phone = encrypt.EncryptAutoKey(q.f_user.phone);
follower.cellphone = encrypt.EncryptAutoKey(q.f_user.cellphone);
follower.country = q.f_user.country;
follower.id_code = q.f_user.id_code;
follower.sex = q.f_user.sex;
follower.identity_type = q.f_user.identity_type;
follower.birthday = q.f_user.birthday;
string sex = q.f_user.sex;
follower.f_number = Model.follower.generate_f_number(sex);
_db.followers.Add(follower);
_db.SaveChanges();
int _id = follower.num;//取回信眾的sql server自動編號
Hashtable ht= new Hashtable();
//再塞親友
foreach (var detail in q.details)
{
//要考慮相同名字只能塞一次,下一個遇到要幫他塞回num
foreach (var mid in detail.mid_items)
{
if (ht.ContainsKey(mid.fam_name))
{
mid.num = int.Parse(ht[mid.fam_name].ToString());
continue;
}
Model.family_members fam = new Model.family_members();
fam.follower_num = _id;
fam.fam_name = mid.fam_name;
fam.deceased = mid.deceased;
_db.family_members.Add(fam);
_db.SaveChanges();
mid.num = fam.num;
ht.Add(mid.fam_name, fam.num);
}
foreach (var left in detail.left_items)
{
if (ht.ContainsKey(left.fam_name))
{
left.num =int.Parse( ht[left.fam_name].ToString());
continue;
}
Model.family_members fam = new Model.family_members();
fam.follower_num = _id;
fam.fam_name = left.fam_name;
fam.deceased = left.deceased;
_db.family_members.Add(fam);
_db.SaveChanges();
left.num = fam.num;
ht.Add(left.fam_name, fam.num);
}
}
//再來報名主檔
Model.pro_order order = new Model.pro_order();
order.order_no = createOrderNumber();
order.up_time = DateTime.Now;
order.reg_time = DateTime.Now;
order.keyin1 = "A01";
order.f_num = _id;
order.phone = !string.IsNullOrEmpty(q.f_user.phone)?
encrypt.EncryptAutoKey(q.f_user.phone): encrypt.EncryptAutoKey(q.f_user.cellphone);
order.activity_num = q.activity_num;
order.address = q.f_user.address;
order.demo = "";
order.send_receipt=false;
_db.pro_order.Add(order);
//最後功德項目
foreach (var detail in q.details)
{
Model.pro_order_detail o_detail = new Model.pro_order_detail();
o_detail.order_no = order.order_no;
o_detail.actItem_num = detail.actItem_num;
o_detail.price = detail.price;
o_detail.qty = detail.qty;
o_detail.printed_files = detail.printed_files;
o_detail.style = detail.style;
Newtonsoft.Json.Linq.JArray mid_items = new Newtonsoft.Json.Linq.JArray();
foreach (var data in detail.mid_items)
{
Newtonsoft.Json.Linq.JObject item = new Newtonsoft.Json.Linq.JObject();
item["num"] = data.num;
item["fam_name"] = data.fam_name;
item["fam_gender"] = "";
item["deceased"] = data.deceased;
item["fam_title"] = "";
item["option_break"] = false;
item["IsShuWen"] = false;
mid_items.Add(item);
}
Newtonsoft.Json.Linq.JArray left_items = new Newtonsoft.Json.Linq.JArray();
foreach (var data in detail.left_items)
{
Newtonsoft.Json.Linq.JObject item = new Newtonsoft.Json.Linq.JObject();
item["num"] = data.num;
item["fam_name"] = data.fam_name;
item["fam_gender"] = "";
item["deceased"] = data.deceased;
item["fam_title"] = "";
item["option_break"] = false;
item["IsShuWen"] = false;
left_items.Add(item);
}
Newtonsoft.Json.Linq.JObject tablet = new Newtonsoft.Json.Linq.JObject();
tablet["mid_items"] = mid_items;
tablet["left_items"] = left_items;
o_detail.f_num_tablet = tablet.ToString();
_db.pro_order_detail.Add(o_detail);
}
_db.SaveChanges();
return Ok(new
{
result = "Y",message="報名成功"
});
}
catch (Exception ex)
{
return Ok(new
{
result = "N",message=ex.Message
});
}
}
[HttpPost]
[Route("api/order/GetList")]
public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q, int page, int pageSize = 10,