Files
Web_AuthorityManagement_Mvc…/Services/Cache/CacheHelp.cs
2025-11-20 09:51:24 +08:00

214 lines
9.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Models;
using Models.ApiModei;
using Models.ModelItems;
using Models.View;
using Org.BouncyCastle.Utilities;
using Services.Manager;
using Services.Tool;
using SqlSugar;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Services.Cache.CacheHelp;
namespace Services.Cache
{
public class CacheHelp
{
public enum syskey
{
sysAuthorityListKey,
sysHotelsListKey,
sysGsInfoListKey,
sysAuthoStatusTypeListKey,
sysOrganizationListKey,
sysOrgAuthorityListKey,
sysOrgUserListKey,
sysErrorInfoListKey,
sysUserAuthoListKey,
sysAppsListKey,
sysUserInfoListKey,
sysAppAuthoListKey,
sysHoteldGroupsListKey,
sysView_UOAListKey,
sysView_UAListKey,
sysDbLogListKey,
sysHostsListKey,
Appversions,
sysMACLogs,
sysALLqxListKey,
sysQxIfoListKey,
sysView_AppAuthoListKey,
}
private static readonly string sysHotelsListKey = "autho_sysHotelsListKey";
private static readonly string sysHostsListKey = "autho_sysHostsListKey";
private static readonly string sysHoteldGroupsListKey = "autho_sysHoteldGroupsListKey";
private static readonly string Appversions = "autho_Appversions";
private static readonly string sysView_UOAListKey = "autho_sysView_UOAListKey";
private static readonly string sysView_UAListKey = "autho_sysView_UAListKey";
private static readonly string sysView_AppAuthoListKey = "autho_sysView_AppAuthoListKey";
private static readonly string sysAuthorityLisKey = "autho_sysAuthorityListKey";
private static readonly string sysAuthoStatusTypeLisKey = "autho_sysAuthoStatusTypeListKey";
private static readonly string sysOrganizationLisKey = "autho_sysOrganizationListKey";
private static readonly string sysOrgAuthorityLisKey = "autho_sysOrgAuthorityListKey";
private static readonly string sysOrgUserLisKey = "autho_sysOrgUserListKey";
private static readonly string sysUserAuthoLisKey = "autho_sysUserAuthoListKey";
private static readonly string sysAppsListKey = "autho_sysAppsListKey";
private static readonly string sysErrorInfoListKey = "autho_sysErrorInfoListKey";
private static readonly string sysMACLogs = "autho_sysMACLogs";
private static readonly string sysView_MAClog = "autho_sysView_MAClog";
private static readonly string sysGsInfoListKey = "autho_sysGsInfoListKey";
private static readonly string sysQxIfoListKey = "autho_sysQxIfoListKey";
private static readonly string sysUserInfoListKey = "autho_sysUserInfoListKey";
private static readonly string sysAppAuthoListKey = "autho_sysAppAuthoListKey";
private static readonly string sysDbLogListKey = "autho_sysDbLogListKey";
//酒店信息
public static List<HotelGroups> gh => CacheHelp.cacheHoteldGroups.Where(x => x.ParentId == 1).ToList();
public static List<ReturnResult> HoteldGroupsinfo
{
get
{
List<ReturnResult> HoteldGroupsinfos = new List<ReturnResult>();
foreach (var item in gh)
{
var data = CacheHelp.cacheHoteldGroups.Where(x => x.ParentId == item.Id).ToList();
data.Insert(0, item);
HoteldGroupsinfos.Add(new ReturnResult()
{
Message = SyncHotelServer.FindHotel(item.Id).Count,
Status = item.Id
});
}
return HoteldGroupsinfos;
}
}
public static List<View_UserInfo> cacheView_UserInfo => GetCachesys(new View_UserInfo(), sysUserInfoListKey);
public static List<View_MAClog> cachesysMACLogs => GetCachesys(new View_MAClog(), sysMACLogs);
public static List<ErrorInfo> cacheSysErrorInfo => GetCachesys(new ErrorInfo(), sysErrorInfoListKey);
public static List<ApplicationDomain> cacheSysApp => GetCachesys(new ApplicationDomain(), sysAppsListKey);
public static List<GsInfo> cacheSysGsInfo => GetCachesys(new GsInfo(), sysGsInfoListKey, "exec Findgsall");
public static List<Authority> cacheSysAutho => GetCachesys(new Authority(), sysAuthorityLisKey);
public static List<AuthoStatusType> cacheSysAuthoStatusType => GetCachesys(new AuthoStatusType(), sysAuthoStatusTypeLisKey);
public static List<Organization> cacheSysOrganization => GetCachesys(new Organization(), sysOrganizationLisKey);
public static List<OrgAuthority> cacheSysOrgAuthority => GetCachesys(new OrgAuthority(), sysOrgAuthorityLisKey);
public static List<OrgUsers> cacheSysOrgUser => GetCachesys(new OrgUsers(), sysOrgUserLisKey);
public static ISugarQueryable<UserAuthoes> cacheSysUserAutho => SqlSugarBase.Db.Queryable<UserAuthoes>();
//GetCachesys(new UserAuthoes(), sysUserAuthoLisKey);
//从视图View_UserInfo读取信息包括人员信息和部分所属组织信息。
public static List<View_UserInfo> cacheSysUserInfo => GetCachesys(new View_UserInfo(), sysUserInfoListKey);
public static List<AppAutho> cacheSysAppAutho => GetCachesys(new AppAutho(), sysAppAuthoListKey);
public static List<View_UOA> cacheView_UOA => GetCachesys(new View_UOA(), sysView_UOAListKey);
/// <summary>
/// GetCachesys(new View_UA(), sysView_UAListKey);
/// </summary>
public static List<View_AppAutho> cacheView_AppAutho => GetCachesys(new View_AppAutho(), sysView_AppAuthoListKey);
public static List<Hotels> cacheHotels => GetCachesys(new Hotels(), sysHotelsListKey, "select * FROM Hotels ORDER BY CreateTime DESC");
public static List<Hosts> cacheHosts => GetCachesys(new Hosts(), sysHostsListKey);
public static List<HotelGroups> cacheHoteldGroups => GetCachesys(new HotelGroups(), sysHoteldGroupsListKey);
public static int cacheDbLogs => GetCachesys(new int(), sysDbLogListKey, "select count(*) FROM DbLog")[0];
public static string cacheAppversions => BaseCacheHelpRedis.GetCache<string>(Appversions, delegate
{
return DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
});
private static List<T> GetCachesys<T>(T model, string strkey, string SQL = "")
{
return BaseCacheHelpRedis.GetCache(strkey, delegate
{
List<T> result = new List<T>();
string sql = string.Empty;
try
{
var tablename = (model.GetType().Name == "UserAutho" ? "UserAuthoes" : model.GetType().Name == "OrgUser" ? "OrgUsers" : model.GetType().Name);
//模型复数 未设置 现在修改查询
sql = "select * from " + tablename;
if (!string.IsNullOrEmpty(SQL))
{
sql = SQL;
}
//authorityDB.Database.CommandTimeout = int.MaxValue;
//SqlSugarBase.Db.Ado.CommandTimeOut = int.MaxValue;
result = SqlSugarBase.Db.Ado.SqlQuery<T>(sql).ToList();
}
catch (Exception ex)
{
LogHelp.WriteExceptionLog(ex, sql);
}
return result;
});
}
public static void Removesys(syskey? syskeys)
{
if (syskeys != null)
{
BaseCacheHelpRedis.ClearCache("autho_" + syskeys);
}
else
{
//for (int i = 0; i <= (int)syskey.sysView_AppAuthoListKey; i++)
//{
// syskeys = (syskey)i;
// BaseCacheHelpRedis.ClearCache("autho_" + syskeys);
//}
RemovesysEnumAll();
}
}
private static void RemovesysEnumAll()
{
//取到所有枚举变量的字符串,并加前缀。
List<string> keysList = new List<string>();
syskey syskeys;
for (int i = 0; i <= (int)syskey.sysView_AppAuthoListKey; i++)
{
syskeys = (syskey)i;
keysList.Add("autho_" + syskeys);
}
BaseCacheHelpRedis.ClearCacheList(keysList);
}
public static void Removesyss(syskey? syskeys)
{
if (syskeys != null)
{
BaseCacheHelpRedis.ClearCache("authority_" + syskeys);
}
else
{
for (int i = 0; i <= (int)syskey.sysView_AppAuthoListKey; i++)
{
syskeys = (syskey)i;
BaseCacheHelpRedis.ClearCache("authority_autho_" + syskeys.ToString());
}
}
}
public static void Updatesys(syskey? syskeys)
{
//HoteldGroupsinfo = null;
Removesys(null);
}
}
}