129 lines
4.6 KiB
C#
129 lines
4.6 KiB
C#
using System.Text;
|
|
|
|
namespace YLErp.Modules.UnderlyingModule
|
|
{
|
|
/// <summary>
|
|
/// 标的数据帮助类
|
|
/// </summary>
|
|
public static class UnderlyingHelper
|
|
{
|
|
/// <summary>
|
|
/// 获取组合标的品种对象
|
|
/// </summary>
|
|
public static Variety GetSyntheticVariety()
|
|
{
|
|
var variety = DataCacheProvider.GetVarietyDataSource().AsQueryable()
|
|
.FirstOrDefault(v => v.VarietyCode == "组合标的");
|
|
|
|
if (variety != null)
|
|
{
|
|
return variety;
|
|
}
|
|
|
|
lock (DataCacheProvider.GetVarietyDataSource())
|
|
{
|
|
using (var db = DbContextFactory.GetYLDbContext())
|
|
{
|
|
variety = db.variety.FirstOrDefault(n => n.VarietyCode == "组合标的");
|
|
|
|
if (variety != null)
|
|
{
|
|
return variety;
|
|
}
|
|
|
|
variety = new Variety()
|
|
{
|
|
VarietyCode = "组合标的",
|
|
VarietyName = "组合标的",
|
|
TradingMarketId = 0,
|
|
TradeUnit = "1手/份",
|
|
QuoteUnit = "元(人民币)/份",
|
|
DeliveryType = "",
|
|
HasNightMarket = false,
|
|
ShortName = "组合标的",
|
|
CommissionType = "固定",
|
|
CloseTodayCommissionType = "固定",
|
|
//UnderlyingInstrumentType = "CommodityFutures",
|
|
VolatilityRate = "",
|
|
VolatilityAdjust = 0,
|
|
AssetType = "",
|
|
OptId = 0,
|
|
OptName = "系统",
|
|
OptDate = DateTime.Now,
|
|
};
|
|
|
|
db.variety.Add(variety);
|
|
db.SaveChanges();
|
|
|
|
return variety;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取篮子标的品种对象
|
|
/// </summary>
|
|
public static Variety GetBasketVariety()
|
|
{
|
|
return DataCacheProvider.GetVarietyDataSource().AsQueryable()
|
|
.FirstOrDefault(v => v.VarietyCode == "篮子标的") ??
|
|
new Variety
|
|
{
|
|
VarietyCode = "篮子标的",
|
|
VarietyName = "篮子标的",
|
|
QuoteUnit = "元(人民币)/股",
|
|
TradeUnit = "100股/手"
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取标的品种代码 例:BU,BU-CU
|
|
/// </summary>
|
|
/// <param name="underlyingCode"></param>
|
|
/// <returns></returns>
|
|
public static string GetUnderlyingVarietyCode(string underlyingCode)
|
|
{
|
|
var ret = "";
|
|
var un = DataCacheProvider.GetUnderlyingDataSource().GetData(underlyingCode);
|
|
if (un != null)
|
|
{
|
|
if (un.UnderlyingType == "组合标的")
|
|
{
|
|
var synthetic = DataCacheProvider.GetUnderlyingDataSource().GetSyntheticUnderlying(underlyingCode);
|
|
if (synthetic != null)
|
|
{
|
|
var sb = new StringBuilder();
|
|
var va1 = DataCacheProvider.GetVariety(synthetic.UnderlyingCode1);
|
|
var va2 = DataCacheProvider.GetVariety(synthetic.UnderlyingCode2);
|
|
var va3 = DataCacheProvider.GetVariety(synthetic.UnderlyingCode3);
|
|
var va4 = DataCacheProvider.GetVariety(synthetic.UnderlyingCode4);
|
|
if (va1 != null)
|
|
{
|
|
sb.Append(va1.VarietyCode).Append('-');
|
|
}
|
|
if (va2 != null)
|
|
{
|
|
sb.Append(va2.VarietyCode).Append('-');
|
|
}
|
|
if (va3 != null)
|
|
{
|
|
sb.Append(va3.VarietyCode).Append('-');
|
|
}
|
|
if (va4 != null)
|
|
{
|
|
sb.Append(va4.VarietyCode).Append('-');
|
|
}
|
|
ret = sb.ToString().Substring(0, sb.Length - 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var va = DataCacheProvider.GetVariety(un.UnderlyingCode);
|
|
ret = va.VarietyCode;
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
}
|
|
}
|