From 85547d93c3d57de82af6a6e16301218ffd1e89f3 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 04 十二月 2024 17:40:57 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- Service/HStation.Service.Xhs.Core/05-service/01-project/XhsProject.cs | 296 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 215 insertions(+), 81 deletions(-) diff --git a/Service/HStation.Service.Xhs.Core/05-service/01-project/XhsProject.cs b/Service/HStation.Service.Xhs.Core/05-service/01-project/XhsProject.cs index 4976f43..cc9042b 100644 --- a/Service/HStation.Service.Xhs.Core/05-service/01-project/XhsProject.cs +++ b/Service/HStation.Service.Xhs.Core/05-service/01-project/XhsProject.cs @@ -78,7 +78,7 @@ XhsProjectCacheHelper.Publish(key); } - #endregion Cache + #endregion #region Query @@ -88,7 +88,7 @@ public List<Model.XhsProject> GetAll() { var all = GetCache(); - return all.OrderBy(x => x.SortCode).ToList(); + return all.OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); } /// <summary> @@ -110,23 +110,110 @@ return default; } var all = GetAll(); - return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.SortCode).ToList(); + return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); + } + + /// <summary> + /// 閫氳繃 ID 鑾峰彇瀛愮骇鍙婅嚜韬� + /// </summary> + public List<Model.XhsProject> GetChildAndSelfByID(long ID) + { + var all = GetAll(); + var list = all.Where(x => x.ID == ID || x.ParentIds.Contains(ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); + return list; + } + + /// <summary> + /// 閫氳繃 ID 鑾峰彇瀛愮骇 + /// </summary> + public List<Model.XhsProject> GetChildrenByID(long ID) + { + var all = GetAll(); + var list = all.Where(x => x.ParentIds.Contains(ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); + return list; + } + + /// <summary> + /// 閫氳繃 ID 鑾峰彇鐖剁骇 + /// </summary> + public List<Model.XhsProject> GetParentByID(long ID) + { + var all = GetAll(); + var model = all.Find(x => x.ID == ID); + if (model == null) + { + return default; + } + return all.Where(x => model.ParentIds.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); + } + + /// <summary> + /// 閫氳繃 ID 鑾峰彇鐖剁骇鍙婅嚜韬� + /// </summary> + public List<Model.XhsProject> GetParentAndSelfByID(long ID) + { + var all = GetAll(); + var model = all.Find(x => x.ID == ID); + if (model == null) + { + return default; + } + return all.Where(x => model.ParentIds.Contains(x.ID) || x.ID == ID).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); + } + + /// <summary> + /// 閫氳繃 ParentID 鑾峰彇 + /// </summary> + public List<Model.XhsProject> GetByParentID(long ParentID) + { + var all = GetAll(); + return all.Where(x => x.ParentIds.LastOrDefault() == ParentID).OrderBy(x => x.SortCode).ToList(); + } + + /// <summary> + /// 鏄惁鍖呭惈瀛愰」 + /// </summary> + public bool HasChildren(long ID) + { + var all = GetAll(); + return all.Exists(x => x.ParentIds.Contains(ID)); } /// <summary> /// 鑾峰彇鏈�澶ф帓搴忕爜 /// </summary> - public int GetMaxSortCode() + public int GetMaxSortCode(long ParentID) { - var all = GetAll(); - if (all == null || all.Count < 1) + List<Model.XhsProject> list = null; + if (ParentID < 1) + { + list = GetAll(); + list = list?.Where(x => x.ParentIds.Count < 1).ToList(); + } + else + { + list = GetByParentID(ParentID); + } + if (list == null || list.Count < 1) { return 0; } - return all.Max(x => x.SortCode); + return list.Max(x => x.SortCode); } - #endregion Query + /// <summary> + /// 鍒涘缓缂栧彿 + /// </summary> + public string CreateNO() + { + var all = GetAll(); + var allNoList = all.Select(x => x.NO).Distinct().ToList(); + var prefix = $"PRJ-{DateTime.Now:yyyy-MM-dd}"; + var no = new Yw.Untity.UniqueNameCreater().Create(prefix, allNoList, "-"); + return no; + } + + #endregion #region Insert @@ -138,6 +225,10 @@ if (model == null) { return default; + } + if (string.IsNullOrEmpty(model.NO)) + { + model.NO = CreateNO(); } var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); var entity = Model2Entity(model); @@ -158,6 +249,13 @@ { return false; } + list.ForEach(x => + { + if (string.IsNullOrEmpty(x.NO)) + { + x.NO = CreateNO(); + } + }); var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); var entity_list = Model2Entities(list); var ids = dal.InsertsR(entity_list); @@ -170,71 +268,32 @@ } /// <summary> - /// 鎻掑叆椤圭洰鎷撳睍 + /// 鎻掑叆鎷撳睍 /// </summary> - public long InsertsEx(Model.XhsProject project, Model.XhsProjectItem Item, Model.XhsProjectItemModel Model, Model.XhsProjectItemModelMap Map) + public long InsertEx(Model.XhsProject project, List<Model.XhsProjectSite> siteList) { - if (project == null || Item == null || Model == null || Map == null) + if (project == null) { return default; } + if (string.IsNullOrEmpty(project.NO)) + { + project.NO = CreateNO(); + } var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); - var projectentity = Model2Entity(project); - var itementity = XhsProjectItem.Model2Entity(Item); - var modelentity = XhsProjectItemModel.Model2Entity(Model); - var mapenetity = XhsProjectItemModelMap.Model2Entity(Map); - var id = dal.InsertEx(projectentity, itementity, modelentity, mapenetity); + var entityProject = Model2Entity(project); + var entitySiteList = XhsProjectSite.Model2Entities(siteList); + + var id = dal.InsertEx(entityProject, entitySiteList); if (id > 0) { UpdateCache(id); - XhsProjectItem.UpdateCacheByPrjID(id); - XhsProjectItemModel.UpdateCacheByPrjID(id); - return id; + XhsProjectSite.UpdateCacheByProjectID(id); } - return default; + return id; } - /// <summary> - /// 缂栬緫椤圭洰鎷撳睍 - /// </summary> - public bool UpdateEx(Model.XhsProject project, Model.XhsProjectItem Item) - { - if (project == null || Item == null) - { - return default; - } - var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); - var projectentity = Model2Entity(project); - var itementity = XhsProjectItem.Model2Entity(Item); - var result = dal.UpdateEx(projectentity, itementity); - if (result) - { - UpdateCache(project.ID); - return true; - } - return false; - } - - /// <summary> - /// 鍒犻櫎椤圭洰鎷撳睍 - /// </summary> - public bool DeleteEx(long ID) - { - if (ID < 0) - { - return default; - } - var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); - var result = dal.DeleteEx(ID); - if (result) - { - RemoveCache(ID); - return true; - } - return default; - } - - #endregion Insert + #endregion #region Update @@ -281,6 +340,31 @@ } /// <summary> + /// 鏇存柊鎷撳睍 + /// </summary> + public bool UpdateEx(Model.XhsProject project, List<Model.XhsProjectSite> siteList) + { + if (project == null) + { + return false; + } + if (project.ID < 1) + { + return false; + } + var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); + var entityProject = Model2Entity(project); + var entitySiteList = XhsProjectSite.Model2Entities(siteList); + var bol = dal.UpdateEx(entityProject, entitySiteList); + if (bol) + { + UpdateCache(project.ID); + XhsProjectSite.UpdateCacheByProjectID(project.ID); + } + return bol; + } + + /// <summary> /// 鏇存柊鎺掑簭鐮� /// </summary> public bool UpdateSortCode(long ID, int SortCode) @@ -313,6 +397,46 @@ } var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); var bol = dal.UpdateSorter(sorters.ToEntityList()); + if (bol) + { + UpdateCache(sorters.Select(x => x.ID).ToList()); + } + return bol; + } + + /// <summary> + /// 鏇存柊鏍戞帓搴忕爜 + /// </summary> + public bool UpdateTreeSortCode(long ID, List<long> ParentIds, int SortCode) + { + if (ID < 1) + { + return false; + } + var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); + var bol = dal.UpdateTreeSortCode(ID, TreeParentIdsHelper.ToString(ParentIds), SortCode); + if (bol) + { + UpdateCache(ID); + } + return bol; + } + + /// <summary> + /// 鏇存柊鏍戞帓搴� + /// </summary> + public bool UpdateTreeSorter(List<Yw.Model.TreeSorter> sorters) + { + if (sorters == null || sorters.Count < 1) + { + return false; + } + if (sorters.Exists(x => x.ID < 1)) + { + return false; + } + var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); + var bol = dal.UpdateTreeSorter(sorters.ToEntityList()); if (bol) { UpdateCache(sorters.Select(x => x.ID).ToList()); @@ -374,25 +498,8 @@ return bol; } - /// <summary> - /// 鏇存柊 UseStatus - /// </summary> - public bool UpdateUseStatus(long ID, Yw.Model.eUseStatus UseStatus) - { - if (ID < 1) - { - return false; - } - var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); - var bol = dal.UpdateUseStatus(ID, (int)UseStatus); - if (bol) - { - UpdateCache(ID); - } - return bol; - } - #endregion Update + #endregion #region Exist @@ -422,7 +529,7 @@ return all.Exists(x => x.TagName == TagName && x.ID != ExceptID); } - #endregion Exist + #endregion #region Delete @@ -432,6 +539,15 @@ public bool DeleteByID(long ID, out string Msg) { Msg = string.Empty; + var serviceProjectSite = new HStation.Service.XhsProjectSite(); + if (serviceProjectSite.IsExistTable()) + { + if (serviceProjectSite.IsExistByProjectID(ID)) + { + Msg = "瀛樺湪绔欑偣淇℃伅"; + return false; + } + } var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); var bol = dal.DeleteByID(ID); if (bol) @@ -441,6 +557,24 @@ return bol; } - #endregion Delete + /// <summary> + /// 閫氳繃 ID 鍒犻櫎(鍚屾椂鍒犻櫎 Site) + /// </summary> + public bool DeleteExByID(long ID, out string Msg) + { + Msg = string.Empty; + var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); + var bol = dal.DeleteExByID(ID); + if (bol) + { + RemoveCache(ID); + XhsProjectSite.RemoveCacheByProjectID(ID); + } + return bol; + } + + #endregion + + } } \ No newline at end of file -- Gitblit v1.9.3