Files
zszq-trs/YLErpDAL/Modules/DataCacheProvider.cs
2024-05-09 14:06:26 +08:00

169 lines
5.0 KiB
C#

using Microsoft.Extensions.Caching.Memory;
using YLErp.Abstract;
using YLErp.Model;
using YLErp.Modules.DataCacheModule;
namespace YLErp.Modules
{
/// <summary>
/// 缓存数据提供
/// </summary>
public static class DataCacheProvider
{
static readonly MemoryCache _memoryCache;
static DataCacheProvider()
{
_memoryCache = new MemoryCache(new MemoryCacheOptions { });
}
/// <summary>
/// 获取缓存值
/// </summary>
public static object GetCache(string key)
{
return _memoryCache.Get(key);
}
/// <summary>
/// 设置缓存
/// </summary>
/// <param name="key">缓存键</param>
/// <param name="value">缓存值</param>
/// <param name="absoluteExpiration">绝对到期时间</param>
public static void SetCache(string key, object value, DateTimeOffset absoluteExpiration)
{
_memoryCache.Set(key, value, absoluteExpiration);
}
/// <summary>
/// 设置缓存
/// </summary>
/// <param name="key">缓存键</param>
/// <param name="value">缓存值</param>
/// <param name="slidingExpiration">最后一次访问之后经过多长时间缓存到期</param>
public static void SetCache(string key, object value, TimeSpan slidingExpiration)
{
var options = new MemoryCacheEntryOptions().SetSlidingExpiration(slidingExpiration);
_memoryCache.Set(key, value, options);
}
/// <summary>
/// 交易品种
/// </summary>
public static IDataSourceKey2<Variety> GetVarietyDataSource()
{
return DataCacheManager.GetVarietyDataSource();
}
/// <summary>
/// 期权标的
/// </summary>
public static IUnderlyingDataSource GetUnderlyingDataSource()
{
return DataCacheManager.GetUnderlyingDataSource();
}
/// <summary>
/// 场内期权基础数据
/// </summary>
public static IDataSourceKey2<ExchangeListOption> GetExchangeListOptionDataSource()
{
return DataCacheManager.GetExchangeListOptionDataSource();
}
/// <summary>
/// 标的相关性
/// </summary>
public static IDataSource<CorrelationTable> GetCorrelationDataSource()
{
return DataCacheManager.GetCorrelationDataSource();
}
/// <summary>
/// 个股黑白名单
/// </summary>
public static IDataSource<StockBlackWhite> GetStockBlackWhiteDataSource()
{
return DataCacheManager.GetStockBlackWhiteDataSource();
}
/// <summary>
/// 股票手续费设定
/// </summary>
public static IDataSource<StockCommissionConfig> GetStockCommissionDataSource()
{
return DataCacheManager.GetStockCommissionDataSource();
}
/// <summary>
/// 对冲账户
/// </summary>
public static IDataSource<ExchangeAccount> GetExchangeAccountDataSource()
{
return DataCacheManager.GetExchangeAccountDataSource();
}
/// <summary>
/// 簿记账户
/// </summary>
public static IDataSource<AssetUnit> GetAssetUnitDataSource()
{
return DataCacheManager.GetAssetUnitDataSource();
}
/// <summary>
/// 簿记账户组
/// </summary>
public static IDataSource<AssetUnitGroup> GetAssetUnitGroupDataSource()
{
return DataCacheManager.GetAssetUnitGroupDataSource();
}
/// <summary>
/// 客户黑名单
/// </summary>
public static IDataSource<client_black> GetClientBlackDataSource()
{
return DataCacheManager.GetClientBlackDataSource();
}
/// <summary>
/// 客户信息
/// </summary>
public static IDataSource<Client> GetClientDataSource()
{
return DataCacheManager.GetClientDataSource();
}
/// <summary>
/// 客户等级信息
/// </summary>
public static IDataSource<ClientLevel> GetClientLevelDataSource()
{
return DataCacheManager.GetClientLevelDataSource();
}
/// <summary>
/// 市场信息
/// </summary>
public static IDataSource<Market> GetMarketDataSource()
{
return DataCacheManager.GetMarketDataSource();
}
/// <summary>
/// 根据标的代码获取品种
/// </summary>
public static Variety GetVariety(string underlyingCode)
{
var un = GetUnderlyingDataSource().GetData(underlyingCode);
if (un != null && un.UnderlyingTypeId > 0)
{
return GetVarietyDataSource().GetData(un.UnderlyingTypeId);
}
return null;
}
}
}