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);
}
}
}