migrate to new git
This commit is contained in:
1 parent
946eb9961e
commit
af2c152ef6
8623 files changed
+1000453
-1
No files matched your search
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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: 用戶資訊, 可討論只要哪些欄位
|
||||
File diff suppressed because it is too large.
Load diff
@@ -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#
|
||||
|
||||
```
|
||||
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- saved from url=(0082)file:///C:/Users/yiming/AppData/Local/Temp/crossnote202443-15036-1ivgf3z.h1za.html -->
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>index</title>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="stylesheet" href="./index_files/katex.min.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
code[class*=language-],pre[class*=language-]{color:#333;background:0 0;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.4;-moz-tab-size:8;-o-tab-size:8;tab-size:8;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:.8em;overflow:auto;border-radius:3px;background:#f5f5f5}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal;background:#f5f5f5}.token.blockquote,.token.comment{color:#969896}.token.cdata{color:#183691}.token.doctype,.token.macro.property,.token.punctuation,.token.variable{color:#333}.token.builtin,.token.important,.token.keyword,.token.operator,.token.rule{color:#a71d5d}.token.attr-value,.token.regex,.token.string,.token.url{color:#183691}.token.atrule,.token.boolean,.token.code,.token.command,.token.constant,.token.entity,.token.number,.token.property,.token.symbol{color:#0086b3}.token.prolog,.token.selector,.token.tag{color:#63a35c}.token.attr-name,.token.class,.token.class-name,.token.function,.token.id,.token.namespace,.token.pseudo-class,.token.pseudo-element,.token.url-reference .token.variable{color:#795da3}.token.entity{cursor:help}.token.title,.token.title .token.punctuation{font-weight:700;color:#1d3e81}.token.list{color:#ed6a43}.token.inserted{background-color:#eaffea;color:#55a532}.token.deleted{background-color:#ffecec;color:#bd2c00}.token.bold{font-weight:700}.token.italic{font-style:italic}.language-json .token.property{color:#183691}.language-markup .token.tag .token.punctuation{color:#333}.language-css .token.function,code.language-css{color:#0086b3}.language-yaml .token.atrule{color:#63a35c}code.language-yaml{color:#183691}.language-ruby .token.function{color:#333}.language-markdown .token.url{color:#795da3}.language-makefile .token.symbol{color:#795da3}.language-makefile .token.variable{color:#183691}.language-makefile .token.builtin{color:#0086b3}.language-bash .token.keyword{color:#0086b3}pre[data-line]{position:relative;padding:1em 0 1em 3em}pre[data-line] .line-highlight-wrapper{position:absolute;top:0;left:0;background-color:transparent;display:block;width:100%}pre[data-line] .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}pre[data-line] .line-highlight:before,pre[data-line] .line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}pre[data-line] .line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}html body{font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ol,html body>ul{margin-bottom:16px}html body ol,html body ul{padding-left:2em}html body ol.no-list,html body ul.no-list{padding:0;list-style-type:none}html body ol ol,html body ol ul,html body ul ol,html body ul ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;background-color:#f0f0f0;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:10Line truncated
|
||||
/* Please visit the URL below for more information: */
|
||||
/* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
|
||||
|
||||
</style>
|
||||
<!-- The content below will be included at the end of the <head> element. --><script type="text/javascript">
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
// your code here
|
||||
});
|
||||
</script></head><body for="html-export">
|
||||
|
||||
|
||||
<div class="crossnote markdown-preview ">
|
||||
|
||||
<h1 id="17168-api-dooc">17168 API DOOC </h1>
|
||||
<ul>
|
||||
<li><a href="file:///D:/dev/ez/17168erp/App_Code/appapi/appFollowerController.html">信眾API</a></li>
|
||||
<li><a href="file:///D:/dev/ez/17168erp/App_Code/appapi/apporderController.html.html">報名API</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body></html>
|
||||
@@ -0,0 +1,4 @@
|
||||
# 17168 API DOOC
|
||||
|
||||
* [信眾API](./appFollowerController.html)
|
||||
* [報名API](./apporderController.html.html)
|
||||
@@ -0,0 +1 @@
|
||||
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.9"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pxLine truncated
|
||||
Reference in new issue
Block a user