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