初始化项目
This commit is contained in:
87
Services/Cache/BaseCacheHelpRedis.cs
Normal file
87
Services/Cache/BaseCacheHelpRedis.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
// Services.Cache.BaseCacheHelpRedis
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Org.BouncyCastle.Utilities;
|
||||
using Services.Tool;
|
||||
using StackExchange.Redis;
|
||||
|
||||
public abstract class BaseCacheHelpRedis
|
||||
{
|
||||
public static T GetCache<T>(string key, Func<T> setAcrion, TimeSpan? expiry = null)
|
||||
{
|
||||
if (RedisHelper.CheckKey(key))
|
||||
{
|
||||
return RedisHelper.StringGet<T>(key);
|
||||
}
|
||||
T val = setAcrion();
|
||||
if (val != null)
|
||||
{
|
||||
RedisHelper.StringSet(key, val, expiry);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
public static void SetCache<T>(string key, Func<T> setAcrion, TimeSpan? expiry = null)
|
||||
{
|
||||
T val = setAcrion();
|
||||
if (val != null)
|
||||
{
|
||||
RedisHelper.StringSet(key, val, expiry);
|
||||
}
|
||||
}
|
||||
|
||||
public static T GetVaue<T>(string key)
|
||||
{
|
||||
if (RedisHelper.CheckKey(key))
|
||||
{
|
||||
return RedisHelper.StringGet<T>(key);
|
||||
}
|
||||
return default(T);
|
||||
}
|
||||
|
||||
public static void ClearCache(string key)
|
||||
{
|
||||
if (RedisHelper.CheckKey(key))
|
||||
{
|
||||
RedisHelper.RemoveKey(key);
|
||||
}
|
||||
}
|
||||
public static void ClearCacheList(List<string> keyList)
|
||||
{
|
||||
RedisHelper.RemoveKeyList(keyList);
|
||||
}
|
||||
|
||||
public static T GetHashCache<T>(string key, string sid, Func<T> setAcrion)
|
||||
{
|
||||
if (RedisHelper.HashExists(key, sid))
|
||||
{
|
||||
return RedisHelper.HashGet<T>(key, sid);
|
||||
}
|
||||
T val = setAcrion();
|
||||
if (val != null)
|
||||
{
|
||||
RedisHelper.HashSet(key, sid, val);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
public static void SetHashCache<T>(string key, string sid, T model)
|
||||
{
|
||||
RedisHelper.HashSet(key, sid, model);
|
||||
}
|
||||
|
||||
public static void SetHashCache<T>(string key, Dictionary<string, T> dic)
|
||||
{
|
||||
RedisHelper.HashSet(key, dic);
|
||||
}
|
||||
|
||||
public static Dictionary<string, T> GetHashAllCache<T>(string key)
|
||||
{
|
||||
return RedisHelper.HashGetAll<T>(key);
|
||||
}
|
||||
|
||||
public static bool CheckKey(string key)
|
||||
{
|
||||
return RedisHelper.CheckKey(key);
|
||||
}
|
||||
}
|
||||
213
Services/Cache/CacheHelp.cs
Normal file
213
Services/Cache/CacheHelp.cs
Normal file
@@ -0,0 +1,213 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user