using BaseOUDAL; using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; using System.Data; namespace YLErp.Model { public class TradeReq : BaseSearchReq { private List _tradeTypesList; public int? LoginUserId { get; set; } /// /// 是否显示匹配交易 /// public bool? IsPairTrade { get; set; } /// /// 只通过TradeId查询 /// public bool onlyTradeIds { get; set; } /// /// 了结次数 /// public int? UnWindTimes { get; set; } List _clientIdsInt; public List ClientIdsInt { get { if (string.IsNullOrEmpty(ClientIds)) { return new List(); } return _clientIdsInt ?? (_clientIdsInt = (ClientIds + "").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(c => Convert.ToInt32(c)).ToList()); } set { _clientIdsInt = value; } } public List UnderlyingIdsInt { get { if (string.IsNullOrEmpty(UnderlyingIds)) { return new List(); } return UnderlyingIds.Split(',').Select(c => Convert.ToInt32(c)).ToList(); } } public List TradeTypesList { get { return _tradeTypesList ?? (_tradeTypesList = (TradeTypes + "").Split(',').ToList()); } set => _tradeTypesList = value; } public string TradeTypes { get => tradeTypes; set { tradeTypes = value; _tradeTypesList = null; } } public List NotInTradeTypes { get; set; } public List UnderlyingInstrumentTypesList { get { return (UnderlyingInstrumentTypes + "").Split(',').ToList(); } } public string UnderlyingInstrumentTypes { get; set; } public List TradeStatusList { get; set; } public List OptIdsList { get { return (OptIds + "").Split(',').ToList(); } } public List GroupNamesList { get { return (GroupNames + "").Split(',').ToList(); } } public string GroupNames { get; set; } public string UnderlyingAssetClass { get; set; } public string OptIds { get; set; } public string UnderlyingIds { get; set; } [DisplayName("看涨看跌")] public string OptionType { get; set; } public string ClientIds { get => _clientIds; set { _clientIds = value; _clientIdsInt = null; } } /// /// 客户经理对应的客户 /// 该字段非筛选客户使用,如果是筛选框用上面ClientIds /// public List UserClients { get; set; } = new List(); public List receiver { get; set; } [DisplayName("行权日")] public DateTime? ExerciseDate { get; set; } public DateTime? ExerciseDateStart { get; set; } public DateTime? ExerciseDateEnd { get; set; } public DateTime? SettlementDateStart { get; set; } public DateTime? SettlementDateEnd { get; set; } public DateTime? UnWindDateStart { get; set; } public DateTime? UnWindDateEnd { get; set; } [DisplayName("资产类型")] public string TradeType { get; set; } public string StructureType { get; set; } /// /// 是否展示主交易 /// public bool IsContainsGroup { get; set; } /// /// 其实是traderid /// public string TraderNames { get => _traderNames; set { _traderNames = value; _traderNamesList = null; } } List _traderNamesList; public List TraderNamesList { get { if (string.IsNullOrEmpty(TraderNames)) { return new List(); } return _traderNamesList ?? (_traderNamesList = (TraderNames + "").Split(',').Select(t => Convert.ToInt32(t)).ToList()); } set { _traderNamesList = value; } } [DisplayName("交易员")] public int? TraderId { get; set; } [DisplayName("标的信息")] public int? UnderlyingId { get; set; } string _AssetIds; List _AssetIdList; private string tradeTypes; private string _traderNames; private string _clientIds; /// /// 簿记账户筛选 /// public string AssetIds { get { return _AssetIds; } set { _AssetIds = value; _AssetIdList = null; } } /// /// 簿记账户筛选 /// public List AssetIdList { get { if (_AssetIdList == null) { _AssetIdList = string.IsNullOrEmpty(AssetIds) ? new List() : (AssetIds + "").Split(',').Select(c => Convert.ToInt32(c)).ToList(); } return _AssetIdList; } set { _AssetIdList = value; } } /// /// 交易员角色对应的簿记账户 /// 该字段非筛选框簿记账户使用,如果是筛选框用上面AssetIds /// public List UserAssets { get; set; } /// /// 簿记账户组筛选 /// public List AssetIdGroupList { get; set; } /// /// 结算标识筛选 /// public List SettlementFlags{ get; set; } [DisplayName("行权方式")] public string ExerciseMode { get; set; } /// /// 交易编号 /// public string TradeNumber { get; set; } /// /// 合约编号 /// public string ContractCode { get; set; } /// /// 客户信息 /// public int? ClientId { get; set; } /// /// 客户名称 /// public string ClientName { get; set; } /// /// 标的代码 /// public string UnderlyingCode { get; set; } public DateTime TradeDateStart { get; set; } public DateTime TradeDateEnd { get; set; } /// /// 交易类型 Ask,Bid /// public string BuySell { get; set; } public DateTime StartDateStart { get; set; } public DateTime StartDateEnd { get; set; } /// /// 交易状态 /// public string TradeStatus { get; set; } /// /// 操作者_optid /// public int? OptId { get; set; } /// /// 操作者_optname /// public string OptName { get; set; } [NotMapped] public DateTime OptDateStart { get; set; } [NotMapped] public DateTime OptDateEnd { get; set; } public string Comments { get; set; } public int? ParentTradeId { get; set; } public string TradeIds { get; set; } public List TradeIdList { get { if (string.IsNullOrEmpty(TradeIds)) { return new List(); } return (TradeIds + "").Split(',').Select(c => Convert.ToInt32(c)).ToList(); } } public string TradeCashIds { get; set; } public List TradeCashIdList { get { if (string.IsNullOrEmpty(TradeCashIds)) { return new List(); } return (TradeCashIds + "").Split(',').Select(c => Convert.ToInt32(c)).ToList(); } } /// /// 0为默认值,不需要做业务逻辑处理 /// 1代表当日成交 /// 2代表当日提前终止 /// 3代表当日到期 /// 4代表明日到期 /// public int TabIndex { get; set; } public DateTime? ValueDate { get; set; } public DateTime ValueDateStart { get; set; } public DateTime ValueDateEnd { get; set; } /// /// 历史交易是否包含平仓/行权待复核 /// public bool IsHistoryWithUnconfirmed { get; set; } /// /// 标的代码集合 /// public List UnderlyingCodeList { get; set; } /// /// 聚合场内期权交易 /// [NotMapped] public bool MergeTrade { get; set; } public string KnockInOutStatus { get; set; } /// /// 执行价格 /// [NotMapped] public string Strike { get; set; } /// /// 风险预警类型 /// 原不合规交易 /// 1:全部 /// 2:行权偏离度 /// 3:合约期限 /// 4:赎回天数 /// public int? SubstandardType { get; set; } /// /// 是否查询子级标识 /// public bool ParentFlag { get; set; } public double? TradePrice { get; set; } public List CurUserTradeIds { get; set; } public List TagIds { get; set; } /// /// 电子章用印结果 /// public List SealResults { get; set; } /// /// 电子章用印日期 /// public DateTime? SealDateStart { get; set; } public DateTime? SealDateEnd { get; set; } } }