using System; using System.Collections.Generic; using CB.Cache; using CB.Entity; using CB.Interface.Infrastructure; namespace CB.Data { /// /// 基本权限导航配置 by JNswins /// public class SysAuthorityService { /// /// 移除缓存 /// protected static void RemoveCache() { CB.Cache.CBCache.GetCacheService().RemoveObject(CB.Cache.CacheKeys.SysAuthorityInfo); } /// /// 新增保存 /// /// /// public static bool Save(SysAuthorityInfo entity) { bool yes = DatabaseProvider.GetDbProvider().Save(entity); if (yes) { RemoveCache(); return true; } return false; } /// /// 更新信息 /// /// /// public static bool Update(SysAuthorityInfo entity) { bool yes = DatabaseProvider.GetDbProvider().Update(entity); if (yes) { RemoveCache(); return true; } return false; } /// /// 删除 /// /// /// public static bool Delete(int id) { bool yes = DatabaseProvider.GetDbProvider().Delete(id); if (yes) { RemoveCache(); return true; } return false; } /// /// 获取详细 /// /// 用户组ID /// public static SysAuthorityInfo Get(int id) { var list = ToList(); if (null == list || 0 >= list.Count) return null; SysAuthorityInfo entity = null; for (int i = list.Count - 1; i >= 0; i--) { if (id == list[i].AId) entity = list[i]; } return entity; } /// /// 所有数据列表 /// /// public static IList ToList() { var list = CB.Cache.CBCache.GetCacheService().GetObject(CB.Cache.CacheKeys.SysAuthorityInfo) as IList; if (null == list || 0 >= list.Count) { list = DatabaseProvider.GetDbProvider().ToList(); CB.Cache.CBCache.GetCacheService().AddObject(CB.Cache.CacheKeys.SysAuthorityInfo, list); } return list; } /// /// 数据列表 /// /// /// public static IList ToList(int parentId) { var list = ToList(); if (null == list || 0 >= list.Count) return null; IList rlist = new List(); foreach (var item in list) { if (parentId == item.ParentId) rlist.Add(item); } return rlist; } /// /// 查询所有数据 /// /// /// public static IList ToList(SysAuthorityInfo entity) { var list = ToList(); if (null == list || 0 >= list.Count) return null; if (null == entity) return list; IList rlist = new List(); foreach (var item in list) { if (0 <= entity.ParentId && item.ParentId != entity.ParentId) continue; if (0 < entity.AuthorType && item.AuthorType != entity.AuthorType) continue; rlist.Add(item); } return rlist; } /// /// 翻页 /// /// /// /// /// /// public static IList ToPaging(SysAuthorityInfo entity, int pageSize, int pageIndex, out int recordCount) { recordCount = 0; var list = ToList(entity); if (null == list || 0 >= list.Count) return null; recordCount = list.Count; int end = (pageIndex - 1) * pageSize + pageSize; int start = pageIndex == 1 ? 0 : (pageIndex - 1) * pageSize; if (start > list.Count) return null; end = end > list.Count ? list.Count : end; IList rlist = new List(); for (int i = start; i < end; i++) { rlist.Add(list[i]); } return rlist; } /// /// 获取用户组对应的权限导航; /// 超级管理员直接获取所有权限导航 /// /// 用户组ID /// 是否超级管理员 /// public static IList GetUserGroupAuthorityList(int groupId, bool superAdmin) { if (superAdmin) return ToList(); var authorList = DatabaseProvider.GetDbProvider().GetUserGroupAuthorityList(groupId); if (null == authorList || 0 >= authorList.Count) return null; IList rlist = new List(); var list = ToList(); foreach (var item in list) { if (authorList.Contains(item.AId)) rlist.Add(item); } return rlist; } /// /// 获取用户组对应的权限导航; /// 超级管理员直接获取所有权限导航 /// /// 用户组ID /// 是否超级管理员 /// 父ID /// public static IList GetUserGroupAuthorityList(int groupId, bool superAdmin, int parentId) { if (superAdmin) return ToList(parentId); var authorList = DatabaseProvider.GetDbProvider().GetUserGroupAuthorityList(groupId); if (null == authorList || 0 >= authorList.Count) return null; IList rlist = new List(); var list = ToList(parentId); foreach (var item in list) { if (authorList.Contains(item.AId)) rlist.Add(item); } return rlist; } /// /// 更新用户组导航权限 /// /// /// /// public static bool UpdateUserGroupAuthority(int groupId, string authority) { return DatabaseProvider.GetDbProvider().UpdateUserGroupAuthority(groupId, authority); } } }