migrate to new git
This commit is contained in:
434
web/App_Code/api/memberController.cs
Normal file
434
web/App_Code/api/memberController.cs
Normal file
@@ -0,0 +1,434 @@
|
||||
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 static TreeView;
|
||||
|
||||
[ezAuthorize]
|
||||
public class memberController : BaseApiController
|
||||
{
|
||||
// GET api/<controller>
|
||||
public IEnumerable<Model.member> Get()
|
||||
{
|
||||
var list = _db.members.ToList();
|
||||
if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return list;
|
||||
}
|
||||
|
||||
// GET api/<controller>/5
|
||||
public Model.member Get(int id)
|
||||
{
|
||||
var item = _db.members.Where(q => q.num == id).FirstOrDefault();
|
||||
if (item == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return item;
|
||||
}
|
||||
|
||||
// GET api/<controller>/5
|
||||
public IEnumerable<Model.member> GetPage(int page)
|
||||
{
|
||||
var list = _db.members.Where(q => q.num < 10).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
// POST api/<controller>
|
||||
public void Post([FromBody] string value)
|
||||
{
|
||||
}
|
||||
|
||||
// PUT api/<controller>/5
|
||||
public void Put(int id, [FromBody] string value)
|
||||
{
|
||||
}
|
||||
|
||||
// DELETE api/<controller>/5
|
||||
public void Delete(int id)
|
||||
{
|
||||
var prod = _db.members.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
if(!string.IsNullOrEmpty(prod.pic1))
|
||||
{
|
||||
publicFun publicFun = new publicFun();
|
||||
publicFun.DeleteFile(Model.member.Dir + "/" + prod.pic1);
|
||||
}
|
||||
|
||||
//刪除考勤資料
|
||||
_db.member_check.RemoveRange(prod.member_check);
|
||||
|
||||
_db.members.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.HR, (int)Model.admin_log.Status.Delete, prod.m_number+ prod.u_name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/member/DeleteCheck/{id}")]
|
||||
public void DeleteCheck(int id) //刪除考勤資料
|
||||
{
|
||||
var prod = _db.member_check.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
_db.member_check.Remove(prod);
|
||||
_db.SaveChanges(); //執行
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/member/Delete/{nums}")]
|
||||
public void Delete(string nums)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(nums))
|
||||
{
|
||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
||||
|
||||
var prod = _db.members.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
||||
if (prod.Count() > 0)
|
||||
{
|
||||
publicFun publicFun = new publicFun();
|
||||
foreach (var item in prod)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.pic1))
|
||||
{
|
||||
publicFun.DeleteFile(Model.member.Dir + "/" + item.pic1);
|
||||
}
|
||||
}
|
||||
|
||||
var prod2 = _db.member_check.AsEnumerable().Where(q => getDelItem.Contains(Convert.ToInt32(q.mem_num))).ToList();
|
||||
if (prod2.Count > 0)
|
||||
{
|
||||
_db.member_check.RemoveRange(prod2);
|
||||
//_db.SaveChanges();
|
||||
}
|
||||
|
||||
_db.members.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.HR, (int)Model.admin_log.Status.Delete, admin_log.LogViewBtn(prod.Select(x => x.m_number+x.u_name).ToList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/member/DeleteAllCheck/{nums}")]
|
||||
public void DeleteAllCheck(string nums)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(nums))
|
||||
{
|
||||
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
||||
var prod = _db.member_check.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
|
||||
if (prod.Count() > 0)
|
||||
{
|
||||
_db.member_check.RemoveRange(prod);
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/member/GetList")]
|
||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.member q, int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.members.AsEnumerable();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.u_name))
|
||||
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
||||
if (q.group_kind.HasValue && q.group_kind.Value > 0)
|
||||
{
|
||||
var _subKinds = new TreeView().subKinds(_db.member_group.Select(o => new TreeItem()
|
||||
{
|
||||
num = o.num,
|
||||
root = o.root,
|
||||
}).ToList(), q.group_kind.Value);
|
||||
|
||||
qry = qry.Where(o => o.group_kind == q.group_kind.Value || _subKinds.Any(s => s == o.group_kind));
|
||||
}
|
||||
if (q.title_kind.HasValue && q.title_kind.Value > 0)
|
||||
qry = qry.Where(o => o.title_kind == q.title_kind.Value);
|
||||
if (q.starttime.HasValue)
|
||||
qry = qry.Where(o => o.group_kind.HasValue && o.member_group.starttime >= q.starttime.Value);
|
||||
if (q.offtime.HasValue)
|
||||
qry = qry.Where(o => o.group_kind.HasValue && o.member_group.starttime <= q.offtime.Value);
|
||||
if (!string.IsNullOrEmpty(q.sex))
|
||||
qry = qry.Where(o => o.sex==q.sex.Trim());
|
||||
if (!string.IsNullOrEmpty(q.m_number))
|
||||
qry = qry.Where(o => o.m_number.Contains(q.m_number.Trim()));
|
||||
|
||||
if (sortBy.Equals("m_number"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.m_number);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.m_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("sex"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.sex);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.sex);
|
||||
}
|
||||
else if (sortBy.Equals("group_kind"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.group_kind);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.group_kind);
|
||||
}
|
||||
else if (sortBy.Equals("title_kind"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.title_kind);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.title_kind);
|
||||
}
|
||||
else if (sortBy.Equals("starttime"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.member_group.starttime);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.member_group.starttime);
|
||||
}
|
||||
else
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
|
||||
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
num = x.num,
|
||||
m_number = x.m_number,
|
||||
u_name = x.u_name,
|
||||
sex = x.sex,
|
||||
group_kind = x.group_kind,
|
||||
group_kindTxt = x.group_kind.HasValue ? x.member_group.kind : "",
|
||||
group_kindTxt2 = x.group_kind.HasValue ? new TreeView().kindText(_db.member_group.Select(o => new TreeItem()
|
||||
{
|
||||
kind = o.kind,
|
||||
num = o.num,
|
||||
root = o.root,
|
||||
}).ToList(), x.group_kind) : "",
|
||||
title_kind = x.title_kind,
|
||||
title_kindTxt = x.title_kind.HasValue ? x.member_title.kind : "",
|
||||
starttime = x.group_kind.HasValue ? x.member_group.starttime : (object)null,
|
||||
demo = x.demo,
|
||||
}),
|
||||
count = qry.Count()
|
||||
};
|
||||
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/member/GetCheckList")]
|
||||
public IHttpActionResult GetCheckList([FromBody] Model.ViewModel.member_check q, int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.member_check.AsEnumerable();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.u_name))
|
||||
qry = qry.Where(o => o.member.u_name.Contains(q.u_name));
|
||||
if (q.group_kind.HasValue && q.group_kind.Value > 0)
|
||||
qry = qry.Where(o => o.member.group_kind == q.group_kind.Value);
|
||||
|
||||
if (q.check_date_year.HasValue && q.check_date_year.Value > 0 )
|
||||
qry = qry.Where(o => o.check_date.Value.Year == q.check_date_year.Value);
|
||||
|
||||
if (q.check_date_month.HasValue && q.check_date_month.Value > 0)
|
||||
qry = qry.Where(o => o.check_date.Value.Month == q.check_date_month.Value);
|
||||
|
||||
|
||||
if (sortBy.Equals("m_number"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.member.m_number);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.member.m_number);
|
||||
}
|
||||
else if (sortBy.Equals("u_name"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.member.u_name);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.member.u_name);
|
||||
}
|
||||
else if (sortBy.Equals("check_date"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.check_date);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.check_date);
|
||||
}
|
||||
else if (sortBy.Equals("check_time"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.check_time);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.check_time);
|
||||
}
|
||||
else if (sortBy.Equals("check_type"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.check_type);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.check_type);
|
||||
}
|
||||
else if (sortBy.Equals("login_type"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.login_type);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.login_type);
|
||||
}
|
||||
else
|
||||
qry = qry.OrderByDescending(o => o.num);
|
||||
|
||||
var tdesc = publicFun.enum_desc<Model.member.attendances.type>();
|
||||
var tdesc2 = publicFun.enum_desc<Model.member.attendances.login>();
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
num = x.num,
|
||||
m_number = x.member.m_number,
|
||||
u_name = x.member.u_name,
|
||||
check_date = x.check_date,
|
||||
check_time = x.check_time,
|
||||
check_type = x.check_type,
|
||||
check_type_desc = tdesc[x.check_type ?? 1],
|
||||
login_type = x.login_type,
|
||||
login_type_desc = tdesc2[x.login_type ?? 1]
|
||||
|
||||
}),
|
||||
count = qry.Count()
|
||||
};
|
||||
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/member/GetGroupList")]
|
||||
public IHttpActionResult GetGroupList([FromBody] Model.ViewModel.member_group q, int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.member_group.AsEnumerable();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.kind))
|
||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||
|
||||
|
||||
//if (sortBy.Equals("kind"))
|
||||
//{
|
||||
// if (sortDesc)
|
||||
// qry = qry.OrderByDescending(o => o.kind);
|
||||
// else
|
||||
// qry = qry.OrderBy(o => o.kind);
|
||||
//}
|
||||
|
||||
//else
|
||||
// qry = qry = qry.OrderBy(o => o.kind);
|
||||
|
||||
|
||||
|
||||
var qry2 = new TreeView().get_data2(qry.Select(o => new TreeItem()
|
||||
{
|
||||
kind = o.kind,
|
||||
num = o.num,
|
||||
root = o.root,
|
||||
range = o.range,
|
||||
}).OrderBy(x => x.root).ThenBy(x => x.kind).ToList(), 0, 0);
|
||||
|
||||
|
||||
var ret = new
|
||||
{
|
||||
list = qry2.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
num = x.num,
|
||||
kind = new TreeView().RptDash(x.Level) + x.kind,
|
||||
|
||||
}),
|
||||
count = qry.Count()
|
||||
};
|
||||
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
[HttpPost]
|
||||
[Route("api/member/GetTitleList")]
|
||||
public IHttpActionResult GetTitleList([FromBody] Model.ViewModel.member_title q, int page, int pageSize = 10,
|
||||
string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.member_title.AsEnumerable();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.kind))
|
||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||
|
||||
if (q.inTime)
|
||||
qry = qry.Where(o => o.status == "Y");
|
||||
|
||||
|
||||
if (sortBy.Equals("kind"))
|
||||
{
|
||||
if (sortDesc)
|
||||
qry = qry.OrderByDescending(o => o.kind);
|
||||
else
|
||||
qry = qry.OrderBy(o => o.kind);
|
||||
}
|
||||
|
||||
else
|
||||
qry = qry = qry.OrderBy(o => o.kind);
|
||||
|
||||
var tdesc = publicFun.enum_desc<Model.member.attendances.type>();
|
||||
var tdesc2 = publicFun.enum_desc<Model.member.attendances.login>();
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
num = x.num,
|
||||
kind = x.kind,
|
||||
|
||||
}),
|
||||
count = qry.Count()
|
||||
};
|
||||
|
||||
|
||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return Ok(ret);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user