From d6c7f8d2e8939c667946007b53145b6895757bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E7=A5=A5=20=E8=A9=B9?= Date: Fri, 28 Jun 2024 15:34:36 +0800 Subject: [PATCH] updates --- Controllers/ApiController.cs | 4 +- Models/kolDetial.cs | 77 +++++++------ Models/kolSimpleDetial.cs | 205 +++++++++++++++++++++++++++++++++++ 3 files changed, 250 insertions(+), 36 deletions(-) create mode 100644 Models/kolSimpleDetial.cs diff --git a/Controllers/ApiController.cs b/Controllers/ApiController.cs index 531e2be..84b88c3 100644 --- a/Controllers/ApiController.cs +++ b/Controllers/ApiController.cs @@ -2092,7 +2092,7 @@ namespace Journeys_WantHome.Controllers foreach (kol kolItem in kols) { - kolDetial objItem = new kolDetial(kolItem); + kolSimpleDetial objItem = new kolSimpleDetial(kolItem); ret.kolList.Add(objItem); } @@ -2786,7 +2786,7 @@ namespace Journeys_WantHome.Controllers public string err_code { get; set; } = ""; public string message { get; set; } = ""; - public List kolList { get; set; } = new List(); + public List kolList { get; set; } = new List(); } public class kolResult { public string ret { get; set; } = ""; diff --git a/Models/kolDetial.cs b/Models/kolDetial.cs index eb1d241..6216a90 100644 --- a/Models/kolDetial.cs +++ b/Models/kolDetial.cs @@ -18,7 +18,8 @@ public class kolDetial : kol public string updateResult { get; set; } = ""; private kol _kol; - public kolDetial() { + public kolDetial() + { _kol = new kol(); } @@ -41,9 +42,10 @@ public class kolDetial : kol public kolDetial(string kol_uid) { - _kol = conn.QueryFirstOrDefault("select * from kol where kol_uid = @kol_uid", new { kol_uid = kol_uid}); + _kol = conn.QueryFirstOrDefault("select * from kol where kol_uid = @kol_uid", new { kol_uid = kol_uid }); - if (_kol != null) { + if (_kol != null) + { Type dataType = _kol.GetType(); foreach (var prop in dataType.GetProperties()) @@ -59,8 +61,10 @@ public class kolDetial : kol } } - private void loadList() { - if (this.kol_uid != "") { + private void loadList() + { + if (this.kol_uid != "") + { cooperateTypes.Clear(); fansTypes.Clear(); makeups.Clear(); @@ -68,42 +72,43 @@ public class kolDetial : kol styles.Clear(); tags.Clear(); - List kolCooperateTypes = conn.Query("select A.* from kolCooperateType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid} ).ToList(); - //List kolFansTypes = conn.Query("select A.* from kolFansType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); - //List kolMakeups = conn.Query("select A.* from kolMakeup A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); - //List kolMedias = conn.Query("select A.* from kolMedia A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); - //List kolStyles = conn.Query("select A.* from kolStyle A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolCooperateTypes = conn.Query("select A.* from kolCooperateType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolFansTypes = conn.Query("select A.* from kolFansType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolMakeups = conn.Query("select A.* from kolMakeup A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolMedias = conn.Query("select A.* from kolMedia A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolStyles = conn.Query("select A.* from kolStyle A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); List kolTags = conn.Query("select A.* from kolTag A, tags B where A.tag_uid = B.tag_uid and A.kol_uid = @kol_uid", new { kol_uid = kol_uid }).ToList(); - foreach (kolCooperateType objItem in kolCooperateTypes) + foreach (kolCooperateType objItem in kolCooperateTypes) { kolCooperateTypeDetail objDetail = new kolCooperateTypeDetail(objItem); cooperateTypes.Add(objDetail); } - //foreach (kolFansType objItem in kolFansTypes) { - // kolFansTypeDetail objDetail = new kolFansTypeDetail(objItem); - // fansTypes.Add(objDetail); - //} + foreach (kolFansType objItem in kolFansTypes) + { + kolFansTypeDetail objDetail = new kolFansTypeDetail(objItem); + fansTypes.Add(objDetail); + } - //foreach (kolMakeup objItem in kolMakeups) - //{ - // kolMakeupDetail objDetail = new kolMakeupDetail(objItem); - // makeups.Add(objDetail); - //} + foreach (kolMakeup objItem in kolMakeups) + { + kolMakeupDetail objDetail = new kolMakeupDetail(objItem); + makeups.Add(objDetail); + } - //foreach (kolMedia objItem in kolMedias) - //{ - // kolMediaDetail objDetail = new kolMediaDetail(objItem); - // medias.Add(objDetail); - //} + foreach (kolMedia objItem in kolMedias) + { + kolMediaDetail objDetail = new kolMediaDetail(objItem); + medias.Add(objDetail); + } - //foreach (kolStyle objItem in kolStyles) - //{ - // kolStyleDetail objDetail = new kolStyleDetail(objItem); - // styles.Add(objDetail); - //} + foreach (kolStyle objItem in kolStyles) + { + kolStyleDetail objDetail = new kolStyleDetail(objItem); + styles.Add(objDetail); + } foreach (kolTag objItem in kolTags) { @@ -128,7 +133,8 @@ public class kolDetial : kol _kol.GetType().GetProperty(propName).SetValue(_kol, propValue); } - if (_kol.kol_uid == "") { + if (_kol.kol_uid == "") + { this._kol.kol_uid = "KOL_" + GlobalClass.CreateRandomCode(12); this.kol_uid = this._kol.kol_uid; try @@ -158,7 +164,8 @@ public class kolDetial : kol } } } - else { + else + { updateResult = "null 物件無法更新"; return false; } @@ -166,7 +173,8 @@ public class kolDetial : kol private void updateList() { - foreach (var item in cooperateTypes) { + foreach (var item in cooperateTypes) + { item.dataUpdate(); } @@ -194,5 +202,6 @@ public class kolDetial : kol { item.dataUpdate(); } + } -} +} \ No newline at end of file diff --git a/Models/kolSimpleDetial.cs b/Models/kolSimpleDetial.cs new file mode 100644 index 0000000..a24d233 --- /dev/null +++ b/Models/kolSimpleDetial.cs @@ -0,0 +1,205 @@ +using Dapper; +using Dapper.Contrib.Extensions; +using NPOI.SS.Formula.Functions; +using System.Data.SqlClient; +using static DbTableClass; + +public class kolSimpleDetial : kol +{ + DbConn dbConn = new DbConn(); + SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); + + public List cooperateTypes = new List(); + public List fansTypes = new List(); + public List makeups = new List(); + public List medias = new List(); + public List styles = new List(); + public List tags = new List(); + public string updateResult { get; set; } = ""; + private kol _kol; + + public kolSimpleDetial() + { + _kol = new kol(); + } + + public kolSimpleDetial(kol kolObj) + { + Type kolType = kolObj.GetType(); + + foreach (var prop in kolType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = kolType.GetProperty(propName); + object propValue = valueProperty.GetValue(kolObj, null); + + this.GetType().GetProperty(propName).SetValue(this, propValue); + } + + _kol = kolObj; + loadList(); + } + + public kolSimpleDetial(string kol_uid) + { + _kol = conn.QueryFirstOrDefault("select * from kol where kol_uid = @kol_uid", new { kol_uid = kol_uid }); + + if (_kol != null) + { + Type dataType = _kol.GetType(); + + foreach (var prop in dataType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = dataType.GetProperty(propName); + object propValue = valueProperty.GetValue(_kol, null); + + this.GetType().GetProperty(propName).SetValue(this, propValue); + } + + loadList(); + } + } + + private void loadList() + { + if (this.kol_uid != "") + { + cooperateTypes.Clear(); + fansTypes.Clear(); + makeups.Clear(); + medias.Clear(); + styles.Clear(); + tags.Clear(); + + List kolCooperateTypes = conn.Query("select A.* from kolCooperateType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + //List kolFansTypes = conn.Query("select A.* from kolFansType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + //List kolMakeups = conn.Query("select A.* from kolMakeup A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + //List kolMedias = conn.Query("select A.* from kolMedia A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + //List kolStyles = conn.Query("select A.* from kolStyle A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList(); + List kolTags = conn.Query("select A.* from kolTag A, tags B where A.tag_uid = B.tag_uid and A.kol_uid = @kol_uid", new { kol_uid = kol_uid }).ToList(); + + + foreach (kolCooperateType objItem in kolCooperateTypes) + { + kolCooperateTypeDetail objDetail = new kolCooperateTypeDetail(objItem); + cooperateTypes.Add(objDetail); + } + + //foreach (kolFansType objItem in kolFansTypes) { + // kolFansTypeDetail objDetail = new kolFansTypeDetail(objItem); + // fansTypes.Add(objDetail); + //} + + //foreach (kolMakeup objItem in kolMakeups) + //{ + // kolMakeupDetail objDetail = new kolMakeupDetail(objItem); + // makeups.Add(objDetail); + //} + + //foreach (kolMedia objItem in kolMedias) + //{ + // kolMediaDetail objDetail = new kolMediaDetail(objItem); + // medias.Add(objDetail); + //} + + //foreach (kolStyle objItem in kolStyles) + //{ + // kolStyleDetail objDetail = new kolStyleDetail(objItem); + // styles.Add(objDetail); + //} + + foreach (kolTag objItem in kolTags) + { + kolTagDetail objDetail = new kolTagDetail(objItem); + tags.Add(objDetail); + } + } + } + + public bool dataUpdate() + { + if (_kol != null) + { + Type dataType = _kol.GetType(); + + foreach (var prop in dataType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = dataType.GetProperty(propName); + object propValue = valueProperty.GetValue(this, null); + + _kol.GetType().GetProperty(propName).SetValue(_kol, propValue); + } + + if (_kol.kol_uid == "") + { + this._kol.kol_uid = "KOL_" + GlobalClass.CreateRandomCode(12); + this.kol_uid = this._kol.kol_uid; + try + { + conn.Insert(this._kol); + updateResult = "success"; + return true; + } + catch (Exception ex) + { + updateResult = ex.Message; + return false; + } + } + else + { + try + { + conn.Update(this._kol); + updateResult = "success"; + return true; + } + catch (Exception ex) + { + updateResult = ex.Message; + return false; + } + } + } + else + { + updateResult = "null 物件無法更新"; + return false; + } + } + + private void updateList() + { + foreach (var item in cooperateTypes) + { + item.dataUpdate(); + } + + foreach (var item in fansTypes) + { + item.dataUpdate(); + } + + foreach (var item in makeups) + { + item.dataUpdate(); + } + + foreach (var item in medias) + { + item.dataUpdate(); + } + + foreach (var item in styles) + { + item.dataUpdate(); + } + + foreach (var item in tags) + { + item.dataUpdate(); + } + } +}