From 6615c2a4be41dc0eb8d0c575593a726b64661e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E7=A5=A5=20=E8=A9=B9?= Date: Sun, 28 Jul 2024 00:58:36 +0800 Subject: [PATCH] updates --- Controllers/AuthApiController.cs | 78 ++++++++++++++ Modals/DbTableClass.cs | 2 +- Modals/resultClass.cs | 17 ++- Views/Home/GroupList.cshtml | 33 ++---- wwwroot/assets/javascript/custom/grouplist.js | 101 +++++++++++++++++- 5 files changed, 199 insertions(+), 32 deletions(-) diff --git a/Controllers/AuthApiController.cs b/Controllers/AuthApiController.cs index 6288fbc9..b15eab09 100644 --- a/Controllers/AuthApiController.cs +++ b/Controllers/AuthApiController.cs @@ -25,6 +25,84 @@ namespace QuotationMaker.Controllers } + [Route("addNewGroup")] + public ActionResult AddNewGroup(IFormCollection obj) { + groupListResult ret = new groupListResult(); + + authToken token = new authToken(this._httpContextAccessor); + if (token.user_isLogin == false) + { + HttpContext.Response.Cookies.Delete("token_key"); + ret.ret = "no"; + ret.err_code = "99999"; + ret.message = "非登入狀態!"; + return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); + } + + if (token.user_perm != "system") + { + ret.ret = "no"; + ret.err_code = "90001"; + ret.message = "此帳號無此api使用權限!"; + return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); + } + + string dept_uid = obj["dept_uid"].ToString(); + string group_name = obj["group_name"].ToString(); + string users_json_str = obj["users_json"].ToString(); + string group_uid = GlobalClass.CreateRandomCode(10); + + group newGroup = new group(); + newGroup.group_uid = group_uid; + newGroup.group_name = group_name; + newGroup.dept_uid = dept_uid; + + + dynamic usersJsonObj; + + try + { + usersJsonObj = JsonConvert.DeserializeObject(users_json_str); + conn.Insert(newGroup); + + + } + catch (Exception ex) { + ret.ret = "no"; + ret.err_code = "0003"; + ret.message = "使用者列表資料錯誤 users json error," + ex.Message; + return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); + } + + string nowrite_msg = ""; + + foreach (dynamic item in usersJsonObj) { + string user_uid = item.user_uid; + string user_name = item.user_name; + groupUser chk_user = conn.QueryFirstOrDefault("select * from groupUser where user_uid = @user_uid", new { user_uid = user_uid}); + + if (chk_user == null) + { + groupUser newGU = new groupUser(); + newGU.group_uid = group_uid; + newGU.user_uid = user_uid; + newGU.groupUser_uid = GlobalClass.CreateRandomCode(16); + + conn.Insert(newGU); + } + else { + nowrite_msg += user_name + " 此用戶已經是其他群組的成員,故此員取消加入!\n"; + } + } + + ret.groups.Add(new groupDetail(newGroup)); + + ret.message = nowrite_msg; + + + return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); + } + [Route("noGroupUserList")] public ActionResult NoGroupUserList(IFormCollection obj) { userListResult ret = new userListResult(); diff --git a/Modals/DbTableClass.cs b/Modals/DbTableClass.cs index 03aff8e1..f918278f 100644 --- a/Modals/DbTableClass.cs +++ b/Modals/DbTableClass.cs @@ -44,7 +44,7 @@ public class DbTableClass public DateTime groupUser_createdate { get; set; } = DateTime.Now; } - [Table("group")] + [Table("[group]")] public class group { [JsonIgnore] diff --git a/Modals/resultClass.cs b/Modals/resultClass.cs index e3a5164a..81e0486f 100644 --- a/Modals/resultClass.cs +++ b/Modals/resultClass.cs @@ -12,6 +12,8 @@ public class resultClass public List depts = new List(); } + + public class groupListResult { public string ret = "no"; @@ -30,8 +32,19 @@ public class resultClass public groupDetail() { } - public groupDetail(group group) { - users = conn.Query("select B.* from groupUser A, users B where A.user_uid = B.user_uid and A.group_uid = @group_uid", new {group_uid = group.group_uid}).ToList(); + public groupDetail(group objData) { + Type projectType = objData.GetType(); + + foreach (var prop in projectType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = projectType.GetProperty(propName); + object propValue = valueProperty.GetValue(objData, null); + + this.GetType().GetProperty(propName).SetValue(this, propValue); + } + + users = conn.Query("select B.* from groupUser A, users B where A.user_uid = B.user_uid and A.group_uid = @group_uid", new {group_uid = objData.group_uid}).ToList(); } } diff --git a/Views/Home/GroupList.cshtml b/Views/Home/GroupList.cshtml index 666cd193..f2eb7ac0 100644 --- a/Views/Home/GroupList.cshtml +++ b/Views/Home/GroupList.cshtml @@ -68,7 +68,7 @@ -
+
  1. @@ -108,7 +108,7 @@
@@ -181,9 +164,9 @@