169 lines
5.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|