migrate to new git
This commit is contained in:
574
web/App_Code/appapi/appFollowerController.cs
Normal file
574
web/App_Code/appapi/appFollowerController.cs
Normal file
@@ -0,0 +1,574 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using PagedList;
|
||||
using Newtonsoft.Json;
|
||||
using System.Collections;
|
||||
using DocumentFormat.OpenXml.Office2010.Excel;
|
||||
using MyWeb;
|
||||
|
||||
// api/appfollower
|
||||
//[ezAuthorize(Roles = "admin")]//群組:*
|
||||
//[ezAuthorize]
|
||||
//[RoutePrefix("api/appfollower")]
|
||||
public class appFollowerController : ApiController
|
||||
{
|
||||
private Model.ezEntities _db = new Model.ezEntities();
|
||||
// GET api/<controller>
|
||||
public IEnumerable<Model.follower> Get()
|
||||
{
|
||||
var list = _db.followers.ToList();
|
||||
if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return list;
|
||||
}
|
||||
|
||||
public IEnumerable<Model.follower> Get(int page, int pageSize = 10,
|
||||
string sortBy="", bool sortDesc=false)
|
||||
{
|
||||
var list = _db.followers.OrderBy(o=>o.f_number).ToPagedList(page, pageSize);
|
||||
if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return list;
|
||||
}
|
||||
|
||||
// GET api/<controller>/5
|
||||
public Model.follower Get(int id)
|
||||
{
|
||||
var item = _db.followers.Where(q => q.num == id).FirstOrDefault();
|
||||
//if (item == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return item;
|
||||
}
|
||||
|
||||
// POST api/<controller>
|
||||
public void Post([FromBody] Model.follower item)
|
||||
{
|
||||
}
|
||||
|
||||
// PUT api/<controller>/5
|
||||
public void Put(int id, [FromBody] Model.follower item)
|
||||
{
|
||||
}
|
||||
|
||||
// DELETE api/<controller>/5
|
||||
public void Delete(int id)
|
||||
{
|
||||
var prod = _db.followers.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
|
||||
prod.pro_order_detail.Clear(); // Clear 方法來清除相關聯的 Child 資料,針對選擇性關聯欄位,它就會自動將欄位值更新成 null。
|
||||
prod.pro_order.Clear();
|
||||
|
||||
prod.leader = null;//清空leader
|
||||
|
||||
_db.followers.Remove(prod);
|
||||
_db.SaveChanges();//執行
|
||||
|
||||
Model.admin_log admin_log = new Model.admin_log();
|
||||
MyWeb.admin admin = new MyWeb.admin();//api裡不可以用MyWeb
|
||||
if (admin.isLoign())
|
||||
{
|
||||
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Follower, (int)Model.admin_log.Status.Delete, prod.f_number+prod.u_name);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/appfollower/Delete/{nums}")]
|
||||
public void Delete(string nums)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(nums))
|
||||
{
|
||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
||||
|
||||
var prod = _db.followers.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
||||
if (prod.Count() > 0)
|
||||
{
|
||||
foreach (var item in prod)
|
||||
{
|
||||
foreach (var item2 in item.pro_order_detail1)
|
||||
item2.from_id = null; //清空訂單明細的陽上報恩者from_id //f_num設定串聯刪除
|
||||
|
||||
foreach (var item2 in item.pro_order)
|
||||
item2.introducer = null;
|
||||
|
||||
item.leader = null;//清空leader
|
||||
|
||||
}
|
||||
|
||||
_db.followers.RemoveRange(prod);
|
||||
_db.SaveChanges();
|
||||
|
||||
Model.admin_log admin_log = new Model.admin_log();
|
||||
MyWeb.admin admin = new MyWeb.admin();//api裡不可以用MyWeb
|
||||
if (admin.isLoign())
|
||||
{
|
||||
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Follower, (int)Model.admin_log.Status.Delete, admin_log.LogViewBtn(prod.Select(x => x.f_number + x.u_name).ToList()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpGet]
|
||||
[Route("api/appfollower/count")]
|
||||
public int Count()
|
||||
{
|
||||
var count = _db.followers.Count();
|
||||
return count;
|
||||
}
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetList")]
|
||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.follower q,
|
||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.followers.AsEnumerable();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.f_number))
|
||||
qry = qry.Where(o => o.f_number.Contains(q.f_number.Trim()));
|
||||
if (!string.IsNullOrEmpty(q.u_name))
|
||||
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
||||
if (q.birthday.HasValue)
|
||||
qry = qry.Where(o => o.birthday >= q.birthday.Value);
|
||||
if (q.birthday2.HasValue)
|
||||
qry = qry.Where(o => o.birthday < Convert.ToDateTime(q.birthday2.Value).AddDays(1));
|
||||
if (!string.IsNullOrEmpty(q.address))
|
||||
qry = qry.Where(o => o.address !=null && o.address.Contains(q.address?.Trim()));
|
||||
//if (q.num.HasValue && q.num.Value>0)
|
||||
// qry = qry.Where(o => o.num==q.num.Value);
|
||||
if (q.ept_self.HasValue && q.ept_self.Value )//排除自己
|
||||
{
|
||||
qry = qry.Where(o => o.num != q.num.Value);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(q.country))
|
||||
qry = qry.Where(o => o.country== q.country);
|
||||
if (!string.IsNullOrEmpty(q.country2))
|
||||
{
|
||||
if (q.country2 == "1")
|
||||
{
|
||||
qry = qry.Where(o => o.country == "158");
|
||||
}else if (q.country2 == "2")
|
||||
{
|
||||
qry = qry.Where(o => o.country != "158");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (sortBy.Equals("f_number"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.f_number);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.f_number);
|
||||
}
|
||||
else if (sortBy.Equals("u_name"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.u_name);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.u_name);
|
||||
}
|
||||
else if (sortBy.Equals("identity_type_desc"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.identity_type);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.identity_type);
|
||||
}
|
||||
else if (sortBy.Equals("sex"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.sex);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.sex);
|
||||
}
|
||||
else if (sortBy.Equals("birthday"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.birthday);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.birthday);
|
||||
}
|
||||
else
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
|
||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||
|
||||
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
num = x.num,
|
||||
f_number = x.f_number,
|
||||
u_name = x.u_name,
|
||||
sex = x.sex,
|
||||
birthday = x.birthday, //?.ToString("yyyy/MM/dd"),
|
||||
birthday2 = publicFun.chagenDate(x.birthday), //?.ToString("yyyy/MM/dd"),
|
||||
sign = Model.follower.chagenSign(x.birthday), //NULL??
|
||||
sexagenary = Model.follower.sexagenary(x.birthday),
|
||||
identity_type = x.identity_type,
|
||||
//identity_type_string = Enum.GetName( typeof(Model.follower.type), x.identity_type),
|
||||
//identity_type_string1 = ((Model.follower.type)(x.identity_type??0)).ToString(),
|
||||
identity_type_desc = tdesc[x.identity_type ?? 1] ,//TryGetValue..
|
||||
|
||||
phone = x.phone,
|
||||
phoneDes = encrypt.DecryptAutoKey(x.phone), //--MyWeb.function X
|
||||
refugedate=x.refugedate,
|
||||
refuge_name = x.refuge_name,
|
||||
email = x.email,
|
||||
address = x.address,
|
||||
|
||||
}),
|
||||
count = qry.Count()
|
||||
|
||||
};
|
||||
//日期轉字串: 如要用VUE做, 傳回date而不要tostring, 用filter + moment.js做
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetFamilyList")]
|
||||
public IHttpActionResult GetFamilyList([FromBody] Model.ViewModel.follower q,
|
||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
int _follower = q.num.HasValue && q.num.Value > 0 ? q.num.Value : 0;
|
||||
if (_follower > 0)
|
||||
{
|
||||
//家族 : 家長是我的人,跟我同家長的人,我的家長本人,我本人
|
||||
//var cc = _db.followers.AsEnumerable().Where(x => x.num == 103 || x.leader == 103).Select(x => x.num);
|
||||
//var aa = _db.followers.Where(x => x.num == 103 || x.leader == 103).Select(x => x.num);
|
||||
//var bb = _db.followers.Where(i => aa.Any(x => x == i.num) || aa.Any(x => x == i.leader)).ToList();
|
||||
|
||||
int myLeader = _db.followers.Where(x => x.num == _follower).Select(x => x.leader??0).FirstOrDefault(); //我的家長
|
||||
|
||||
var cc = _db.followers.Where(x => x.num == _follower || x.leader == _follower).Select(x => x.num);
|
||||
|
||||
//var qry =
|
||||
//from c in foDt
|
||||
//where c.leader == _follower ||
|
||||
// ((from o in foDt
|
||||
// where o.num == _follower
|
||||
// select o.leader).Contains(c.leader) && c.leader != null) ||
|
||||
// (from o in foDt
|
||||
// where o.num == _follower
|
||||
// select o.leader).Contains(c.num) ||
|
||||
// c.num == _follower
|
||||
//select c;
|
||||
|
||||
if (q.ept_self.HasValue && q.ept_self.Value) //排除自己
|
||||
{
|
||||
//qry =
|
||||
//from c in foDt
|
||||
//where c.leader == _follower ||
|
||||
// ((from o in foDt
|
||||
// where o.num == _follower
|
||||
// select o.leader).Contains(c.leader) && c.leader != null)
|
||||
// && c.num != _follower
|
||||
//select c;
|
||||
|
||||
if (myLeader > 0)//有家長
|
||||
{
|
||||
//跟我同家長的人
|
||||
cc = _db.followers.Where(x => x.num != _follower && (x.leader == _follower || x.leader == myLeader)).Select(x => x.num);
|
||||
}
|
||||
else
|
||||
{
|
||||
cc = _db.followers.Where(x => x.num != _follower && x.leader == _follower).Select(x => x.num);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//int ccc = cc.Count();
|
||||
|
||||
|
||||
|
||||
var qry = _db.followers.AsEnumerable().Where(f => cc.Any(x => x == f.num) || cc.Any(x => x == f.leader));
|
||||
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(q.f_number))
|
||||
qry = qry.Where(o => o.f_number.Contains(q.f_number.Trim()));
|
||||
if (!string.IsNullOrEmpty(q.u_name))
|
||||
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
||||
if (q.birthday.HasValue)
|
||||
qry = qry.Where(o => o.birthday >= q.birthday.Value);
|
||||
if (q.birthday2.HasValue)
|
||||
qry = qry.Where(o => o.birthday < Convert.ToDateTime(q.birthday2.Value).AddDays(1));
|
||||
if (!string.IsNullOrEmpty(q.address))
|
||||
qry = qry.Where(o => o.address.Contains(q.address.Trim()));
|
||||
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
||||
int i = 1;
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
id = i++,
|
||||
num = x.num,
|
||||
f_number = x.f_number,
|
||||
u_name = x.u_name,
|
||||
address = x.address,
|
||||
birthday = x.birthday,
|
||||
phone = x.phone,
|
||||
phoneDes = encrypt.DecryptAutoKey(x.phone),
|
||||
demo = x.demo,
|
||||
identity_type_desc = tdesc[x.identity_type ?? 1],
|
||||
f_num_selected = new
|
||||
{
|
||||
text = x.u_name,
|
||||
val = x.num,
|
||||
},
|
||||
//data_tmp = new //tmp 暫存用
|
||||
//{
|
||||
// f_num_selected = new
|
||||
// {
|
||||
// text = x.u_name,
|
||||
// val = x.num,
|
||||
// },
|
||||
// identity_type_desc = tdesc[x.identity_type ?? 1],
|
||||
// birthday = x.birthday,
|
||||
// phoneDes = encrypt.DecryptAutoKey(x.phone),
|
||||
// demo = x.demo,
|
||||
//},
|
||||
appellation_id_selected = new
|
||||
{
|
||||
text = x.appellation?.title,
|
||||
val = x.appellation_id,
|
||||
},
|
||||
|
||||
}),
|
||||
count = qry.Count()
|
||||
|
||||
};
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Ok("此訂單沒有姓名/名稱");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/familySave")]
|
||||
public IHttpActionResult SaveDetailData([FromBody] Model.ViewModel.follower item)
|
||||
{
|
||||
if (item.leader.HasValue && item.leader.Value > 0 && item.f_num.HasValue && item.f_num.Value > 0)
|
||||
{
|
||||
if (item.num.HasValue && item.num.Value > 0)
|
||||
{
|
||||
//原先就有設定家長 , -> 家人 :不變 or 變更
|
||||
if (item.num.Value == item.f_num.Value)
|
||||
{
|
||||
//變更其家人稱謂
|
||||
Model.follower _data = _db.followers.Where(q => q.num == item.f_num.Value).FirstOrDefault();//修改
|
||||
if (_data != null)
|
||||
{
|
||||
_data.appellation_id = item.appellation_id.Value;
|
||||
_db.SaveChanges();
|
||||
var ret = _data.num;
|
||||
return Ok(ret);
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
}
|
||||
else
|
||||
{
|
||||
//移除原先的家長設定
|
||||
Model.follower _data2 = _db.followers.Where(q => q.num == item.num.Value).FirstOrDefault();//修改
|
||||
if (_data2 != null)
|
||||
{
|
||||
_data2.leader = null;
|
||||
_data2.appellation_id = null;
|
||||
_db.SaveChanges();
|
||||
}
|
||||
|
||||
//變更其家長設定
|
||||
Model.follower _data = _db.followers.Where(q => q.num == item.f_num.Value).FirstOrDefault();//修改
|
||||
if (_data != null)
|
||||
{
|
||||
_data.leader = item.leader.Value;
|
||||
_data.appellation_id = item.appellation_id.Value;
|
||||
_db.SaveChanges();
|
||||
var ret = _data.num;
|
||||
return Ok(ret);
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//新增家人
|
||||
//變更其家長設定
|
||||
Model.follower _data = _db.followers.Where(q => q.num == item.f_num.Value).FirstOrDefault();//修改
|
||||
if (_data != null)
|
||||
{
|
||||
_data.leader = item.leader.Value;
|
||||
_data.appellation_id = item.appellation_id.Value;
|
||||
_db.SaveChanges();
|
||||
|
||||
var ret = _data.num;
|
||||
return Ok(ret);
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/familyDelete")]
|
||||
public IHttpActionResult familyDelete([FromBody] Model.ViewModel.follower item)
|
||||
{
|
||||
if (item.leader.HasValue && item.leader.Value > 0 && item.num.HasValue && item.num.Value > 0)
|
||||
{
|
||||
//移除原先的家長設定
|
||||
Model.follower _data2 = _db.followers.Where(q => q.num == item.num.Value).FirstOrDefault();//修改
|
||||
if (_data2 != null)
|
||||
{
|
||||
_data2.leader = null;
|
||||
_db.SaveChanges();
|
||||
return Ok();
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetTabletList")]
|
||||
public IHttpActionResult GetTabletList([FromBody] Model.follower q,
|
||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
int _follower = q.num;
|
||||
pageSize = (pageSize < 0) ? 0 : pageSize;
|
||||
if (_follower > 0)
|
||||
{
|
||||
|
||||
var qry = _db.followers_tablet.AsEnumerable().Where(x=>( x.f_num??0) == _follower);
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
int i = 1;
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
id = i++,
|
||||
num = x.num,
|
||||
f_num = x.f_num,
|
||||
type = x.type,
|
||||
title = x.title,
|
||||
}),
|
||||
count = qry.Count()
|
||||
|
||||
};
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
|
||||
return Ok(ret);
|
||||
|
||||
}
|
||||
|
||||
return NotFound();
|
||||
|
||||
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/tabletSave")]
|
||||
public IHttpActionResult tabletSave([FromBody] Model.ViewModel.followers_tablet item)
|
||||
{
|
||||
if (item.num.HasValue && item.num.Value > 0)
|
||||
{
|
||||
//變更
|
||||
Model.followers_tablet _data = _db.followers_tablet.Where(q => q.num == item.num.Value).FirstOrDefault();//修改
|
||||
if (_data != null)
|
||||
{
|
||||
_data.type = item.type;
|
||||
_data.title = item.title;
|
||||
_db.SaveChanges();
|
||||
var ret = _data.num;
|
||||
return Ok(ret);
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//新增
|
||||
Model.followers_tablet _data = new Model.followers_tablet();
|
||||
_data.f_num = item.f_num;
|
||||
_data.type = item.type;
|
||||
_data.title = item.title;
|
||||
_db.followers_tablet.Add(_data);
|
||||
_db.SaveChanges();
|
||||
var ret = _data.num;
|
||||
return Ok(ret);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/appfollower/tabletDelete/{id}")]
|
||||
public void tabletDelete(int id)
|
||||
{
|
||||
var prod = _db.followers_tablet.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
_db.followers_tablet.Remove(prod);
|
||||
_db.SaveChanges();//執行
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/checkHashFollower")]
|
||||
public IHttpActionResult CheckHashFollower([FromBody] Model.ViewModel.follower q)
|
||||
{
|
||||
if (q == null || string.IsNullOrEmpty(q.phone) || string.IsNullOrEmpty(q.id_code))
|
||||
{
|
||||
return BadRequest("Invalid input");
|
||||
}
|
||||
|
||||
// Pass phone and idcode to encrypt.cs to get the followerHash
|
||||
encrypt enc = new encrypt();
|
||||
string followerHash = enc.followerHash(q.phone, q.id_code);
|
||||
|
||||
// Query the database for followers where follower_hash == followerHash
|
||||
var follower = _db.followers.FirstOrDefault(f => f.follower_hash == followerHash);
|
||||
|
||||
// Return the follower or null
|
||||
return Ok(follower);
|
||||
}
|
||||
}
|
||||
|
||||
237
web/App_Code/appapi/appFollowerController.md
Normal file
237
web/App_Code/appapi/appFollowerController.md
Normal file
@@ -0,0 +1,237 @@
|
||||
|
||||
# appapi/appfollower (信眾管理)
|
||||
|
||||
```C#
|
||||
[RoutePrefix("api/appfollower")]
|
||||
public class appFollowerController : ApiController
|
||||
```
|
||||
|
||||
## Get()
|
||||
### 介面
|
||||
``` C#
|
||||
public IEnumerable<Model.follower> Get()
|
||||
```
|
||||
取得所有信眾資料列表
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
IEnumerable<Model.follower>
|
||||
```
|
||||
### 介面
|
||||
``` C#
|
||||
public IEnumerable<Model.follower> Get
|
||||
(int page, int pageSize = 10,
|
||||
string sortBy="", bool sortDesc=false)
|
||||
```
|
||||
取得指定分頁信眾資料列表
|
||||
### 傳回
|
||||
``` C#
|
||||
IEnumerable<Model.follower>
|
||||
```
|
||||
### 介面
|
||||
``` C#
|
||||
// GET appapi/<controller>/5
|
||||
public Model.follower Get(int id)
|
||||
```
|
||||
依ID取得指定單筆信眾
|
||||
### 傳回
|
||||
``` C#
|
||||
Model.follower
|
||||
```
|
||||
## Post()
|
||||
### 介面
|
||||
``` C#
|
||||
// POST appapi/<controller>
|
||||
public void Post([FromBody] Model.follower item)
|
||||
```
|
||||
新增信眾
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## Put()
|
||||
### 介面
|
||||
``` C#
|
||||
// PUT appapi/<controller>/5
|
||||
public void Put(int id, [FromBody] Model.follower item)
|
||||
```
|
||||
修改信眾
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## Delete()
|
||||
### 介面
|
||||
``` C#
|
||||
// DELETE appapi/<controller>/5
|
||||
public void Delete(int id)
|
||||
```
|
||||
刪除指定ID信眾
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
|
||||
## [HttpDelete] api/appfollower/Delete/{nums}
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpDelete]
|
||||
[Route("api/appfollower/Delete/{nums}")]
|
||||
public void Delete(string nums)
|
||||
```
|
||||
刪除指定信眾編號信眾
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
|
||||
## [HttpGet] api/appfollower/count
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpGet]
|
||||
[Route("api/appfollower/count")]
|
||||
public int Count()
|
||||
```
|
||||
傳回筆數
|
||||
### 傳回
|
||||
``` C#
|
||||
int
|
||||
```
|
||||
|
||||
## [HttpPost] api/appfollower/GetList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetList")]
|
||||
public IHttpActionResult GetList(
|
||||
[FromBody] Model.ViewModel.follower q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
對信眾資料:分頁查詢, 排序, 傳回列表
|
||||
### 傳回
|
||||
``` C#
|
||||
{
|
||||
list = IEnumerable<Model.follower>, //分頁列表
|
||||
count = int //筆數
|
||||
}
|
||||
```
|
||||
<!--
|
||||
## [HttpPost] api/appfollower/GetFamilyList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetFamilyList")]
|
||||
public IHttpActionResult GetFamilyList([FromBody] Model.ViewModel.follower q,
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
||||
```
|
||||
取得指定信眾的家人資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
IEnumerable<Model.follower>
|
||||
```
|
||||
|
||||
## [HttpPost] api/appfollower/familySave
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/familySave")]
|
||||
public IHttpActionResult SaveDetailData([FromBody] Model.ViewModel.follower item)
|
||||
```
|
||||
取得指定信眾的家人資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
|
||||
## [HttpPost] api/appfollower/familyDelete
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/familyDelete")]
|
||||
public IHttpActionResult familyDelete([FromBody] Model.ViewModel.follower item)
|
||||
```
|
||||
移陁指定信眾的家人資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
-->
|
||||
|
||||
## [HttpPost] api/appfollower/GetTabletList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/GetTabletList")]
|
||||
public IHttpActionResult GetTabletList([FromBody] Model.follower q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
取得牌位資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
List of: new
|
||||
{
|
||||
id = i++,
|
||||
num = x.num,
|
||||
f_num = x.f_num,
|
||||
type = x.type, //型式
|
||||
title = x.title, //標題
|
||||
})
|
||||
```
|
||||
## [HttpPost] api/appfollower/tabletSave
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/tabletSave")]
|
||||
public IHttpActionResult tabletSave([FromBody] Model.ViewModel.followers_tablet item)
|
||||
```
|
||||
儲存牌位資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
int //牌位編號
|
||||
```
|
||||
## [HttpDelete] api/appfollower/tabletDelete/{id}
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpDelete]
|
||||
[Route("api/appfollower/tabletDelete/{id}")]
|
||||
public void tabletDelete(int id)
|
||||
```
|
||||
刪除牌位資訊
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
|
||||
## [HttpPost] CheckHashFollower
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/appfollower/checkHashFollower")]
|
||||
public IHttpActionResult CheckHashFollower([FromBody] Model.ViewModel.follower q)
|
||||
```
|
||||
取得用戶資訊
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
|
||||
### 例:
|
||||
#### Request:
|
||||
```
|
||||
curl --location 'http://<SERVER_URL>/api/appfollower/checkHashFollower' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"phone":"0987456321",
|
||||
"id_code":"A123456789"
|
||||
}'
|
||||
```
|
||||
#### Response:
|
||||
JSON: 用戶資訊, 可討論只要哪些欄位
|
||||
1051
web/App_Code/appapi/apporderController.cs
Normal file
1051
web/App_Code/appapi/apporderController.cs
Normal file
File diff suppressed because it is too large
Load Diff
366
web/App_Code/appapi/apporderController.md
Normal file
366
web/App_Code/appapi/apporderController.md
Normal file
@@ -0,0 +1,366 @@
|
||||
|
||||
# appapi/apporder (報名管理)
|
||||
|
||||
### 介面
|
||||
``` C#
|
||||
public class apporderController : ApiController
|
||||
```
|
||||
## Get()
|
||||
### 介面
|
||||
```
|
||||
// GET appapi/<controller>
|
||||
public IEnumerable<Model.pro_order> Get()
|
||||
```
|
||||
取得全部報名資料列表
|
||||
### 傳回
|
||||
``` C#
|
||||
IEnumerable<Model.pro_order>
|
||||
```
|
||||
### 介面
|
||||
``` C#
|
||||
public IEnumerable<Model.pro_order> Get(int page, int pageSize = 10,
|
||||
string sortBy="", bool sortDesc=false)
|
||||
```
|
||||
取得指定分頁報名資料列表
|
||||
### 傳回
|
||||
``` C#
|
||||
IEnumerable<Model.pro_order>
|
||||
```
|
||||
### 介面
|
||||
``` C#
|
||||
// GET appapi/<controller>/5
|
||||
public Model.pro_order Get(string id)
|
||||
```
|
||||
取得指定ID(報名編號)分頁報名
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
Model.pro_order
|
||||
```
|
||||
## Post()
|
||||
### 介面
|
||||
``` C#
|
||||
// POST appapi/<controller>
|
||||
public void Post([FromBody] Model.pro_order item)
|
||||
```
|
||||
新增報名資料
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
void
|
||||
```
|
||||
## Put()
|
||||
### 介面
|
||||
``` C#
|
||||
// PUT appapi/<controller>/5
|
||||
public void Put(int id, [FromBody] Model.pro_order item)
|
||||
```
|
||||
修改報名資料
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## Delete()
|
||||
### 介面
|
||||
``` C#
|
||||
// DELETE appapi/<controller>/5
|
||||
public void Delete(string id)
|
||||
```
|
||||
刪除指定ID(報名編號)報名資料(主檔)
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpDelete] api/apporder/DeleteItem/{id}
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpDelete]
|
||||
[Route("api/apporder/DeleteItem/{id}")]
|
||||
public void DeleteDetail(int id) //刪除訂單明細
|
||||
```
|
||||
刪除指定ID(報名編號)報名資料(明細)
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpDelete] api/apporder/DeleteAll/{nums}
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpDelete]
|
||||
[Route("api/apporder/DeleteAll/{nums}")]
|
||||
public void DeleteAll(string nums)
|
||||
```
|
||||
刪除指定ID(報名編號)報名資料(整筆)
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpGet] api/apporder/count
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpGet]
|
||||
[Route("api/apporder/count")]
|
||||
public int Count()
|
||||
```
|
||||
傳回筆數
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
int
|
||||
```
|
||||
## [HttpPost] api/apporder/GetList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetList")]
|
||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
對報名資料:分頁查詢, 排序, 傳回列表
|
||||
|
||||
### 傳回
|
||||
``` C#
|
||||
{
|
||||
list = IEnumerable<Model.pro_order>, //分頁列表
|
||||
count = int //筆數
|
||||
}
|
||||
```
|
||||
|
||||
## [HttpPost] api/apporder/GetItemList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetItemList")]
|
||||
public IHttpActionResult GetItemList(
|
||||
[FromBody] Model.ViewModel.pro_order_detail q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
取得報名明細
|
||||
### 傳回
|
||||
``` C#
|
||||
new{
|
||||
list = List of pro_order_detail
|
||||
count = int
|
||||
}
|
||||
```
|
||||
|
||||
## [HttpPost] api/apporder/SaveDetailData
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/SaveDetailData")]
|
||||
public IHttpActionResult SaveDetailData([FromBody] Model.pro_order_detail item)
|
||||
```
|
||||
儲存報名明細
|
||||
### 傳回
|
||||
``` C#
|
||||
new
|
||||
{
|
||||
num = order.num,
|
||||
customize_data = order.customize_data,
|
||||
}
|
||||
```
|
||||
## [HttpPost] api/apporder/GetUnpayList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetUnpayList")]
|
||||
public IHttpActionResult GetUnpayList([FromBody] Model.ViewModel.follower q,
|
||||
string order_no , int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
傳回未付款的訂單列表
|
||||
### 傳回
|
||||
``` C#
|
||||
new
|
||||
{
|
||||
list = List of new
|
||||
{
|
||||
id ,
|
||||
order_no ,
|
||||
up_time ,
|
||||
reg_time ,
|
||||
f_num ,
|
||||
u_name ,
|
||||
totalPrice , //訂單金額
|
||||
payPrice = , //已收金額
|
||||
}),
|
||||
count = orderDt.Count(),
|
||||
}
|
||||
```
|
||||
## [HttpPost] api/apporder/GetUnpayDetail
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetUnpayDetail")]
|
||||
public IHttpActionResult GetUnpayDetail([FromBody] Model.ViewModel.pro_order q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
傳回未付款的訂單明細
|
||||
### 傳回
|
||||
``` C#
|
||||
new {
|
||||
list = List of new {
|
||||
id,
|
||||
order_no,
|
||||
actItem_num,
|
||||
actItem_numTxt,
|
||||
f_num,
|
||||
u_name,
|
||||
price, //訂單金額
|
||||
pay, //已收金額
|
||||
|
||||
},
|
||||
count = unpayDt.Count(),
|
||||
}
|
||||
```
|
||||
##
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpGet]
|
||||
[Route("api/apporder/printFileLog/{num}/{detail}")]
|
||||
public IHttpActionResult printFileLog(int num , int detail)
|
||||
```
|
||||
更新已列印記錄
|
||||
### 傳回
|
||||
``` C#
|
||||
order.printed_files //已列印記錄
|
||||
```
|
||||
## [HttpPost] api/apporder/printMultiFileLog
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/printMultiFileLog")]
|
||||
public IHttpActionResult printMultiFileLog([FromBody] List<int> list,
|
||||
int item, int file)
|
||||
```
|
||||
更新多筆列印記錄
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpGet] api/apporder/copyDetailData/{num}/{qty}
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpGet]
|
||||
[Route("api/apporder/copyDetailData/{num}/{qty}")]
|
||||
public IHttpActionResult copyDetailData(int num, int qty)
|
||||
```
|
||||
複製指定的報名項目
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpPost] api/apporder/GetPastOrderList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetPastOrderList")]
|
||||
public IHttpActionResult GetPastOrderList([FromBody] Model.pro_order q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
複製以往報名
|
||||
### 傳回
|
||||
``` C#
|
||||
new
|
||||
{
|
||||
list = List of new
|
||||
{
|
||||
id,
|
||||
num,
|
||||
order_no,
|
||||
up_time,
|
||||
activity_selected = new
|
||||
{
|
||||
text,
|
||||
val,
|
||||
},
|
||||
actitem_num_selected = new
|
||||
{
|
||||
text,
|
||||
val,
|
||||
},
|
||||
}),
|
||||
count = qry.Count(),
|
||||
}
|
||||
```
|
||||
<!--
|
||||
-->
|
||||
|
||||
## [HttpPost] api/apporder/copyMultiPastItem
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/copyMultiPastItem")]
|
||||
public IHttpActionResult copyMultiPastItem([FromBody] List<int> list,
|
||||
string order_no)
|
||||
```
|
||||
複製以往報名(勾選多筆)
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpPost] api/apporder/GetPayOrderList
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/GetPayOrderList")]
|
||||
public IHttpActionResult GetPayOrderList([FromBody] Model.pro_order_record q,
|
||||
int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
```
|
||||
收款註記
|
||||
### 傳回
|
||||
``` C#
|
||||
new
|
||||
{
|
||||
list = List of new
|
||||
{
|
||||
id ,
|
||||
num ,
|
||||
order_no ,
|
||||
pay_date ,
|
||||
payment_selected = new
|
||||
{
|
||||
text,
|
||||
val ,
|
||||
},
|
||||
price,
|
||||
organization,
|
||||
bank_code,
|
||||
}),
|
||||
count,
|
||||
}
|
||||
```
|
||||
## [HttpDelete] api/apporder/DeleteRecordDetail/{id}")]
|
||||
刪除收款註記
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpDelete]
|
||||
[Route("api/apporder/DeleteRecordDetail/{id}")]//刪除收款註記
|
||||
public void DeleteRecordDetail(int id)
|
||||
```
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
## [HttpPost] api/apporder/SaveRecordDetail
|
||||
### 介面
|
||||
``` C#
|
||||
[HttpPost]
|
||||
[Route("api/apporder/SaveRecordDetail")]
|
||||
public IHttpActionResult SaveRecordDetail([FromBody] Model.pro_order_record item)
|
||||
```
|
||||
儲存收款紀錄
|
||||
### 傳回
|
||||
``` C#
|
||||
|
||||
```
|
||||
44
web/App_Code/appapi/index.html
Normal file
44
web/App_Code/appapi/index.html
Normal file
File diff suppressed because one or more lines are too long
4
web/App_Code/appapi/index.md
Normal file
4
web/App_Code/appapi/index.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 17168 API DOOC
|
||||
|
||||
* [信眾API](./appFollowerController.html)
|
||||
* [報名API](./apporderController.html.html)
|
||||
1
web/App_Code/appapi/index_files/katex.min.css
vendored
Normal file
1
web/App_Code/appapi/index_files/katex.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user