using System.ComponentModel.DataAnnotations.Schema; namespace YLErp.DBModels { [Table("trade_action")] public class TradeAction : DBModelBase { public int TradeId { get; set; } /// /// 执行日期 /// public DateTime ValueDate { get; set; } /// /// 操作类型 /// public TradeActionType ActionType { get; set; } /// /// 操作标识(增加扩展性) /// public int ActionFlag { get; set; } /// /// 操作备注 /// public string ActionRemark { get; set; } /// /// 审核标识(0:无需审核,1:等待第一步审核,2...,100:审核通过) /// public byte CheckFlag { get; set; } /// /// 是否有效数据 /// public bool IsValid { get; set; } /// /// 资金ID /// public int? CashId { get; set; } /// /// 回退ID /// public long? BackId { get; set; } /// /// 创建时间 /// public DateTime CreateTime { get; set; } public string ActionData { get; set; } /// /// 操作人ID /// public int? OptId { get; set; } /// /// 操作人名称 /// [NotMapped] public string OptName { get; set; } public TradeAction Clone() { return (TradeAction)MemberwiseClone(); } public override string ToString() { return $"{id}-{TradeId}--{ValueDate}--{ActionType}"; } } /// /// 交易操作类型 /// public enum TradeActionType { //---------开仓操作-------------- /// /// 新增交易 /// NewTrade = 1, /// /// 修改交易 /// ModifyTrade = 2, /// /// 确认交易 /// ConfirmTrade = 3, /// /// 删除交易 /// DeleteTrade = 10, //---------交易回退-------------- /// /// 回退交易 /// BackTrade = 11, //---------要素变更-------------- /// /// 除权除息 /// ExDividend = 40, /// /// 累计期权换月 /// AccumulatorChange = 50, //---------观察日结算-------------- /// /// 期权敲入 /// KnockIn = 101, /// /// 支付票息 /// ObCoupon = 102, /// /// 现金支付 /// ObCash = 103, /// /// 转远期 /// ToForward = 110, //---------了结操作-------------- /// /// 平仓 /// Close = 201, /// /// 执行 /// Exercise = 202, /// /// 敲出 /// KnockOut = 210, /// /// 到期 /// Expire = 220 } public static class TradeActionHelper { /// /// 资金当期结算 /// public const int Flag_CashAtHit = 0; /// /// 资金期末结算 /// public const int Flag_CashAtEnd = 1; /// /// 全部了结 /// public const int Flag_FullClosed = byte.MaxValue; /// /// /// public const TradeActionType Close_Begin = TradeActionType.Close; /// /// 获取观察日结算产生的行为种类 /// public static readonly IEnumerable ObActionTypes; static TradeActionHelper() { ObActionTypes = new List { TradeActionType.KnockIn, TradeActionType.KnockOut, TradeActionType.ObCash, TradeActionType.ObCoupon, TradeActionType.ToForward }.AsReadOnly(); } } [NotMapped] public class TradeActionDto : TradeAction { } }