Files

214 lines
9.2 KiB
C#
Raw Permalink Normal View History

2025-11-20 09:50:21 +08:00
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);
}
}
}