duheng
2025-02-19 a5b25c4f314079d293bf159ed6f0d7dcbadadbb7
Service/PBS.Service.Core/05-service/03-model-template/ModelTemplateGroup.cs
@@ -5,71 +5,71 @@
    /// <summary>
    /// 模型模板组
    ///</summary>    
    public partial class ModelTemplateGroup
    public partial class ModelTemplateGroup
    {
        #region Cache
        //获取缓存
        private static List<PBS.Model.ModelTemplateGroup> GetCache()
        {
           var all = ModelTemplateGroupCacheHelper.GetSet(() =>
           {
              var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
              var entity_list = dal.GetAll();
              var model_list = Entity2Models(entity_list);
              if (model_list == null)
              {
                 model_list = new List<PBS.Model.ModelTemplateGroup>();
              }
              return model_list;
           }, Yw.Service.ConfigHelper.CacheKeepTime, Yw.Service.ConfigHelper.CacheRandomTime);
           return all;
            var all = ModelTemplateGroupCacheHelper.GetSet(() =>
            {
                var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
                var entity_list = dal.GetAll();
                var model_list = Entity2Models(entity_list);
                if (model_list == null)
                {
                    model_list = new List<PBS.Model.ModelTemplateGroup>();
                }
                return model_list;
            }, Yw.Service.ConfigHelper.CacheKeepTime, Yw.Service.ConfigHelper.CacheRandomTime);
            return all;
        }
        //通过 ID 更新缓存
        private static void UpdateCache(long ID)
        {
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var entity_ds = dal.GetByID(ID);
           var model_ds = Entity2Model(entity_ds);
           var all = GetCache();
           var model = all.Find(x => x.ID == ID);
           if (model == null)
           {
              all.Add(model_ds);
           }
           else
           {
              model.Reset(model_ds);
           }
           ModelTemplateGroupCacheHelper.Trigger();
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var entity_ds = dal.GetByID(ID);
            var model_ds = Entity2Model(entity_ds);
            var all = GetCache();
            var model = all.Find(x => x.ID == ID);
            if (model == null)
            {
                all.Add(model_ds);
            }
            else
            {
                model.Reset(model_ds);
            }
            ModelTemplateGroupCacheHelper.Trigger();
        }
        //通过 Ids 更新缓存
        private static void UpdateCache(List<long> Ids)
        {
           if (Ids == null || Ids.Count < 1)
           {
              return;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var entity_list = dal.GetByIds(Ids);
           var model_list = Entity2Models(entity_list);
           var all = GetCache();
           all.RemoveAll(x => Ids.Contains(x.ID));
           if (model_list != null && model_list.Count > 0)
           {
              all.AddRange(model_list);
           }
           ModelTemplateGroupCacheHelper.Trigger();
            if (Ids == null || Ids.Count < 1)
            {
                return;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var entity_list = dal.GetByIds(Ids);
            var model_list = Entity2Models(entity_list);
            var all = GetCache();
            all.RemoveAll(x => Ids.Contains(x.ID));
            if (model_list != null && model_list.Count > 0)
            {
                all.AddRange(model_list);
            }
            ModelTemplateGroupCacheHelper.Trigger();
        }
        //移除缓存
        private static void RemoveCache(long ID)
        {
           var all = GetCache();
           all.RemoveAll(x => x.ID == ID);
           ModelTemplateGroupCacheHelper.Trigger();
            var all = GetCache();
            all.RemoveAll(x => x.ID == ID);
            ModelTemplateGroupCacheHelper.Trigger();
        }
        /// <summary>
@@ -77,7 +77,7 @@
        /// </summary>
        public static void PublishCache(string key)
        {
           ModelTemplateGroupCacheHelper.Publish(key);
            ModelTemplateGroupCacheHelper.Publish(key);
        }
        #endregion 
@@ -89,8 +89,8 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> GetAll()
        {
           var all = GetCache();
           return all.OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
            var all = GetCache();
            return all.OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
@@ -98,8 +98,8 @@
        /// </summary>
        public PBS.Model.ModelTemplateGroup GetByID(long ID)
        {
           var all = GetAll();
           return all.Find(x => x.ID == ID);
            var all = GetAll();
            return all.Find(x => x.ID == ID);
        }
        /// <summary>
@@ -107,22 +107,22 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> GetByIds(List<long> Ids)
        {
           if (Ids == null || Ids.Count < 1)
           {
              return default;
           }
           var all = GetAll();
           return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
            if (Ids == null || Ids.Count < 1)
            {
                return default;
            }
            var all = GetAll();
            return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.ParentIds.Count).ThenBy(x => x.SortCode).ToList();
        }
        /// <summary>
        /// 通过 ID 获取子级及自身
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> 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;
            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>
@@ -130,9 +130,9 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> 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;
            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>
@@ -140,13 +140,13 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> 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();
            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>
@@ -154,13 +154,13 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> 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();
            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>
@@ -168,8 +168,8 @@
        /// </summary>
        public List<PBS.Model.ModelTemplateGroup> GetByParentID(long ParentID)
        {
           var all = GetAll();
           return all.Where(x => x.ParentIds.LastOrDefault() == ParentID).OrderBy(x => x.SortCode).ToList();
            var all = GetAll();
            return all.Where(x => x.ParentIds.LastOrDefault() == ParentID).OrderBy(x => x.SortCode).ToList();
        }
        /// <summary>
@@ -177,37 +177,37 @@
        /// </summary>
        public bool HasChildren(long ID)
        {
           var all = GetAll();
           return all.Exists(x => x.ParentIds.Contains(ID));
        }
            var all = GetAll();
            return all.Exists(x => x.ParentIds.Contains(ID));
        }
        /// <summary>
        /// 获取最大排序码
        /// </summary>
        public int GetMaxSortCode()
        {
            var list = GetAll();
            var list = GetAll();
            if (list == null || list.Count < 1)
            {
                return 0;
            }
            return list.Max(x => x.SortCode);
        }
        /// <summary>
        /// 获取最大排序码
        /// </summary>
        public int GetMaxSortCode(long ParentID)
        {
            var list = GetByParentID(ParentID);
            var list = GetByParentID(ParentID);
            if (list == null || list.Count < 1)
            {
                return 0;
            }
            return list.Max(x => x.SortCode);
        }
        #endregion
        #endregion
        #region Insert
@@ -216,18 +216,18 @@
        /// </summary>
        public long Insert(PBS.Model.ModelTemplateGroup model)
        {
           if (model == null)
           {
              return default;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var entity = Model2Entity(model);
           var id = dal.Insert(entity);
           if (id > 0)
           {
              UpdateCache(id);
           }
           return id;
            if (model == null)
            {
                return default;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var entity = Model2Entity(model);
            var id = dal.Insert(entity);
            if (id > 0)
            {
                UpdateCache(id);
            }
            return id;
        }
        /// <summary>
@@ -235,22 +235,22 @@
        /// </summary>
        public bool Inserts(List<PBS.Model.ModelTemplateGroup> list)
        {
           if (list == null || list.Count < 1)
           {
              return false;
            if (list == null || list.Count < 1)
            {
                return false;
            }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var entity_list = Model2Entities(list);
           var ids = dal.InsertsR(entity_list);
           if (ids != null && ids.Count > 0)
           {
              UpdateCache(ids);
              return true;
           }
           return false;
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var entity_list = Model2Entities(list);
            var ids = dal.InsertsR(entity_list);
            if (ids != null && ids.Count > 0)
            {
                UpdateCache(ids);
                return true;
            }
            return false;
        }
        #endregion
        #endregion
        #region Update
@@ -259,18 +259,18 @@
        /// </summary>
        public bool Update(PBS.Model.ModelTemplateGroup model)
        {
           if (model == null)
           {
              return false;
           }
           var entity = Model2Entity(model);
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.Update(entity);
           if (bol)
           {
              UpdateCache(model.ID);
           }
           return bol;
            if (model == null)
            {
                return false;
            }
            var entity = Model2Entity(model);
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.Update(entity);
            if (bol)
            {
                UpdateCache(model.ID);
            }
            return bol;
        }
        /// <summary>
@@ -278,41 +278,41 @@
        /// </summary>
        public bool Updates(List<PBS.Model.ModelTemplateGroup> list)
        {
           if (list == null || list.Count < 1)
           {
              return false;
           }
           if (list.Exists(x => x.ID < 1))
           {
              return false;
           }
           var entity_list = Model2Entities(list);
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.Updates(entity_list);
           if (bol)
           {
              UpdateCache(list.Select(x => x.ID).ToList());
           }
           return bol;
            if (list == null || list.Count < 1)
            {
                return false;
            }
            if (list.Exists(x => x.ID < 1))
            {
                return false;
            }
            var entity_list = Model2Entities(list);
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.Updates(entity_list);
            if (bol)
            {
                UpdateCache(list.Select(x => x.ID).ToList());
            }
            return bol;
        }
        /// <summary>
        /// 更新排序码
        /// </summary>
        public bool UpdateSortCode(long ID, int SortCode)
        {
           if (ID < 1)
           {
              return false;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateSortCode(ID, SortCode);
           if (bol)
           {
              UpdateCache(ID);
           }
           return bol;
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateSortCode(ID, SortCode);
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
@@ -320,40 +320,40 @@
        /// </summary>
        public bool UpdateSorter(List<Yw.Model.Sorter> sorters)
        {
           if (sorters == null || sorters.Count < 1)
           {
              return false;
           }
           if (sorters.Exists(x => x.ID < 1))
           {
              return false;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateSorter(sorters.ToEntityList());
           if (bol)
           {
              UpdateCache(sorters.Select(x => x.ID).ToList());
           }
           return bol;
            if (sorters == null || sorters.Count < 1)
            {
                return false;
            }
            if (sorters.Exists(x => x.ID < 1))
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            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<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateTreeSortCode(ID, TreeParentIdsHelper.ToString(ParentIds), SortCode);
           if (bol)
           {
              UpdateCache(ID);
           }
           return bol;
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateTreeSortCode(ID, TreeParentIdsHelper.ToString(ParentIds), SortCode);
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
@@ -361,77 +361,77 @@
        /// </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<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateTreeSorter(sorters.ToEntityList());
           if (bol)
           {
              UpdateCache(sorters.Select(x => x.ID).ToList());
           }
           return bol;
            if (sorters == null || sorters.Count < 1)
            {
                return false;
            }
            if (sorters.Exists(x => x.ID < 1))
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateTreeSorter(sorters.ToEntityList());
            if (bol)
            {
                UpdateCache(sorters.Select(x => x.ID).ToList());
            }
            return bol;
        }
        /// <summary>
        /// 更新 Paras
        /// </summary>
        public bool UpdateParas(long ID, Dictionary<string, string> Paras)
        {
           if (ID < 1)
           {
              return false;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateParas(ID, ParasHelper.ToString(Paras));
           if (bol)
           {
              UpdateCache(ID);
           }
           return bol;
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateParas(ID, ParasHelper.ToString(Paras));
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
        /// 更新 Flags
        /// </summary>
        public bool UpdateFlags(long ID, List<string> Flags)
        {
           if (ID < 1)
           {
              return false;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateFlags(ID, FlagsHelper.ToString(Flags));
           if (bol)
           {
              UpdateCache(ID);
           }
           return bol;
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateFlags(ID, FlagsHelper.ToString(Flags));
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
        /// 更新 TagName
        /// </summary>
        public bool UpdateTagName(long ID, string TagName)
        {
           if (ID < 1)
           {
              return false;
           }
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.UpdateTagName(ID, TagName);
           if (bol)
           {
              UpdateCache(ID);
           }
           return bol;
            if (ID < 1)
            {
                return false;
            }
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.UpdateTagName(ID, TagName);
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
        /// 更新 UseStatus
        /// </summary>
@@ -445,7 +445,7 @@
            }
            return bol;
        }
            #endregion
        #endregion
        #region Exist
@@ -454,12 +454,12 @@
        /// </summary>
        public bool IsExistTagName(string TagName)
        {
           if (string.IsNullOrEmpty(TagName))
           {
              return false;
           }
           var all = GetAll();
           return all.Exists(x => x.TagName == TagName);
            if (string.IsNullOrEmpty(TagName))
            {
                return false;
            }
            var all = GetAll();
            return all.Exists(x => x.TagName == TagName);
        }
        /// <summary>
@@ -467,12 +467,12 @@
        /// </summary>
        public bool IsExistTagNameExceptID(string TagName, long ExceptID)
        {
           if (string.IsNullOrEmpty(TagName))
           {
              return false;
           }
           var all = GetAll();
           return all.Exists(x => x.TagName == TagName && x.ID != ExceptID);
            if (string.IsNullOrEmpty(TagName))
            {
                return false;
            }
            var all = GetAll();
            return all.Exists(x => x.TagName == TagName && x.ID != ExceptID);
        }
        #endregion 
@@ -484,18 +484,18 @@
        /// </summary>
        public bool DeleteByID(long ID, out string Msg)
        {
           Msg = string.Empty;
           var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
           var bol = dal.DeleteByID(ID);
           if (bol)
           {
              RemoveCache(ID);
           }
           return bol;
            Msg = string.Empty;
            var dal = DALCreateHelper.CreateDAL<PBS.DAL.IModelTemplateGroup>();
            var bol = dal.DeleteByID(ID);
            if (bol)
            {
                RemoveCache(ID);
            }
            return bol;
        }
        #endregion
        #endregion
    }
}