| | |
| | | XhsProjectCacheHelper.Publish(key); |
| | | } |
| | | |
| | | #endregion Cache |
| | | #endregion |
| | | |
| | | #region Query |
| | | |
| | |
| | | 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> |
| | |
| | | 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 |
| | | |
| | |
| | | if (model == null) |
| | | { |
| | | return default; |
| | | } |
| | | if (string.IsNullOrEmpty(model.NO)) |
| | | { |
| | | model.NO = CreateNO(); |
| | | } |
| | | var dal = DALCreateHelper.CreateDAL<HStation.DAL.IXhsProject>(); |
| | | var entity = Model2Entity(model); |
| | |
| | | { |
| | | 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); |
| | |
| | | } |
| | | |
| | | /// <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 |
| | | |
| | |
| | | } |
| | | |
| | | /// <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) |
| | |
| | | } |
| | | 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()); |
| | |
| | | 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 |
| | | |
| | |
| | | return all.Exists(x => x.TagName == TagName && x.ID != ExceptID); |
| | | } |
| | | |
| | | #endregion Exist |
| | | #endregion |
| | | |
| | | #region Delete |
| | | |
| | |
| | | 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) |
| | |
| | | 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 |
| | | |
| | | |
| | | } |
| | | } |