using BaseOUDAL; namespace YLErp.Modules.BasicDataModule { public class ExchangeAccountService : YLBaseService { public ExchangeAccountService(OptUserInfo userInfo) : base(userInfo) { } /// /// 查询exchange_account /// public SearchListResult SearchList(ExchangeAccountReq req) { var query = from a in DbContext.exchange_account join b in DbContext.assetunit on a.DefaultBookId equals b.id into bs from b in bs.DefaultIfEmpty() orderby a.id descending select new ExchangeAccountDto { id = a.id, AccountCode = a.AccountCode, AccountName = a.AccountName, AccountType = a.AccountType, DefaultBookId = a.DefaultBookId, Description = a.Description, InitialCost = a.InitialCost, Status = a.Status, Total = a.Total, Available = a.Available, CurrFund = a.CurrFund, CurrMargin = a.CurrMargin, TraderIds = a.TraderIds, TraderNames = a.TraderNames, VarietyIds = a.VarietyIds, AssetBookName = b.Name }; if (!string.IsNullOrWhiteSpace(req.AccountName)) { query = query.Where(s => s.AccountName.Contains(req.AccountName)); } if (!string.IsNullOrEmpty(req.AccountCode)) { query = query.Where(d => d.AccountCode.Contains(req.AccountCode)); } if (!string.IsNullOrEmpty(req.AccountType)) { query = query.Where(d => d.AccountType.Contains(req.AccountType)); } if (!string.IsNullOrEmpty(req.TraderIds)) { query = query.Where(d => d.TraderIds.Contains(req.TraderIds)); } if (!string.IsNullOrEmpty(req.TraderNames)) { query = query.Where(s => ("," + s.TraderIds + ",").Contains("," + req.TraderNames + ",")); } if (req.Status != null) { query = query.Where(d => d.Status == req.Status); } if (!string.IsNullOrEmpty(req.Description)) { query = query.Where(d => d.Description.Contains(req.Description)); } if (string.IsNullOrEmpty(req.sidx)) { req.sidx = "id"; req.sord = "desc"; } return query.ToSearchList(req, false); } /// /// 通过对冲账户编码获取对冲账户 /// /// /// public List GetListByCodes(List codes) { if (codes == null || codes.Count == 0) { return new List(); } return DbContext.exchange_account.AsNoTracking().Where(p => codes.Contains(p.AccountCode) && p.Status == 1).ToList(); } /// /// 获取对冲账户编号 /// /// /// public List GetExchangeAccountByBookIds(List bookIds) { return DbContext.exchange_account.AsNoTracking().Where(p => p.DefaultBookId > 0 && bookIds.Contains((int)p.DefaultBookId) && p.Status == 1).ToList(); } } public class ExchangeAccountReq : BaseSearchReq { public string AccountName { get; set; } /// /// 账户 /// public string AccountCode { get; set; } /// /// 账户类型 /// public string AccountType { get; set; } /// /// 交易员id /// public string TraderIds { get; set; } /// /// 交易员名称 /// public string TraderNames { get; set; } /// /// 状态 /// public int? Status { get; set; } /// /// 初始成本 /// public double? InitialCost { get; set; } /// /// 总资金 /// public double? Total { get; set; } /// /// 可用资金 /// public double? Available { get; set; } /// /// 描述 /// public string Description { get; set; } /// /// 默认簿记账户Id /// public int? DefaultBookId { get; set; } /// /// 品种 /// public string VarietyIds { get; set; } } public class ExchangeAccountResult { public ExchangeAccount ExchangeAccount { get; set; } public AssetUnit TradingBook { get; set; } } }