Files
zszq-trs/YLErpDAL/Modules/BasicDataModule/ExchangeAccountService.cs
T
2024-05-09 14:06:26 +08:00

178 lines
5.4 KiB
C#

using BaseOUDAL;
namespace YLErp.Modules.BasicDataModule
{
public class ExchangeAccountService : YLBaseService
{
public ExchangeAccountService(OptUserInfo userInfo) : base(userInfo)
{
}
/// <summary>
/// 查询exchange_account
/// </summary>
public SearchListResult<ExchangeAccountDto> 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);
}
/// <summary>
/// 通过对冲账户编码获取对冲账户
/// </summary>
/// <param name="codes"></param>
/// <returns></returns>
public List<ExchangeAccount> GetListByCodes(List<string> codes)
{
if (codes == null || codes.Count == 0)
{
return new List<ExchangeAccount>();
}
return DbContext.exchange_account.AsNoTracking().Where(p => codes.Contains(p.AccountCode) && p.Status == 1).ToList();
}
/// <summary>
/// 获取对冲账户编号
/// </summary>
/// <param name="bookIds"></param>
/// <returns></returns>
public List<ExchangeAccount> GetExchangeAccountByBookIds(List<int> 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; }
/// <summary>
/// 账户
/// </summary>
public string AccountCode { get; set; }
/// <summary>
/// 账户类型
/// </summary>
public string AccountType { get; set; }
/// <summary>
/// 交易员id
/// </summary>
public string TraderIds { get; set; }
/// <summary>
/// 交易员名称
/// </summary>
public string TraderNames { get; set; }
/// <summary>
/// 状态
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 初始成本
/// </summary>
public double? InitialCost { get; set; }
/// <summary>
/// 总资金
/// </summary>
public double? Total { get; set; }
/// <summary>
/// 可用资金
/// </summary>
public double? Available { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 默认簿记账户Id
/// </summary>
public int? DefaultBookId { get; set; }
/// <summary>
/// 品种
/// </summary>
public string VarietyIds { get; set; }
}
public class ExchangeAccountResult
{
public ExchangeAccount ExchangeAccount { get; set; }
public AssetUnit TradingBook { get; set; }
}
}