从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
using BaseOUDAL;
|
||||
|
||||
namespace YLErp.Modules.BasicDataModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 审批分级数据服务
|
||||
/// </summary>
|
||||
public class ApprovalGradeDataService : YLBaseService
|
||||
{
|
||||
public ApprovalGradeDataService(OptUserInfo userInfo) : base(userInfo)
|
||||
{
|
||||
}
|
||||
|
||||
public ApprovalGrade SaveApprovalGrade(ApprovalGrade req)
|
||||
{
|
||||
if (req is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(req));
|
||||
}
|
||||
|
||||
if (req.AssetId == 0)
|
||||
{
|
||||
throw new ServiceException("簿记账户名称 必须填写");
|
||||
}
|
||||
|
||||
ApprovalGrade dbModel;
|
||||
if (req.id == 0)
|
||||
{
|
||||
if (DbContext.approvalGrade.Any(o => o.AssetId == req.AssetId && o.Rule == req.Rule && o.RoleId == req.RoleId) && req.id == 0)
|
||||
{
|
||||
throw new ServiceException("数据内容不能重复,已存在相同记录");
|
||||
}
|
||||
DbContext.approvalGrade.Add(dbModel = req);
|
||||
}
|
||||
else
|
||||
{
|
||||
dbModel = DbContext.approvalGrade.Find(req.id);
|
||||
|
||||
if (dbModel == null)
|
||||
{
|
||||
throw new ServiceException("要更新的数据已不存在");
|
||||
}
|
||||
|
||||
UpdateChanges(dbModel, req);
|
||||
}
|
||||
|
||||
|
||||
SetDBModelOpt(dbModel);
|
||||
|
||||
DbContext.SaveChanges();
|
||||
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
public void deleteApprovalGrade(int id)
|
||||
{
|
||||
if (DbContext.approvalGrade.Find(id) == null)
|
||||
{
|
||||
throw new ServiceException("未找到记录");
|
||||
}
|
||||
else
|
||||
{
|
||||
var grade = DbContext.approvalGrade.Find(id);
|
||||
DbContext.approvalGrade.Remove(grade);
|
||||
DbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public SearchListResult<ApprovalGrade> SearchList(AssetUnitRequest req)
|
||||
{
|
||||
var predicate = PredicateBuilder.True<AssetUnit>();
|
||||
|
||||
if (!string.IsNullOrEmpty(req.Name))
|
||||
{
|
||||
predicate = predicate.And(d => d.Name.Contains(req.Name));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(req.UserGroup))
|
||||
{
|
||||
predicate = predicate.And(d => d.UserGroup.Contains(req.UserGroup));
|
||||
}
|
||||
|
||||
if (req.TraderIds != null && req.TraderIds.Any(n => n > 0))
|
||||
{
|
||||
//predicate = predicate.And(d => req.TraderIds.Any(tId => ("," + d.TraderIds + ",").Contains("," + tId + ",")));
|
||||
var traderIdPre = PredicateBuilder.False<AssetUnit>();
|
||||
req.TraderIds.Where(p => p > 0).ToList().ForEach(p =>
|
||||
{
|
||||
traderIdPre = traderIdPre.Or(d => (!string.IsNullOrEmpty(d.TraderIds) && (d.TraderIds.StartsWith(p + ",") || d.TraderIds.EndsWith("," + p) || d.TraderIds.Contains("," + p + ","))));
|
||||
|
||||
});
|
||||
predicate = predicate.And(traderIdPre);
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
var query = (from a in DbContext.assetunit.Where(predicate)
|
||||
join g in DbContext.assetunitgroup on a.GroupId equals g.id into g_t
|
||||
from g in g_t.DefaultIfEmpty()
|
||||
select a.id).ToList();
|
||||
|
||||
var dataQyery = from grade in DbContext.approvalGrade
|
||||
join unit in DbContext.assetunit
|
||||
on grade.AssetId equals unit.id
|
||||
into gp
|
||||
from g in gp.DefaultIfEmpty()
|
||||
select new
|
||||
{
|
||||
grade = grade,
|
||||
unit = g
|
||||
};
|
||||
|
||||
if (query != null && query.Count() > 0)
|
||||
{
|
||||
dataQyery = dataQyery.Where(o => query.Contains(o.grade.AssetId));
|
||||
}
|
||||
|
||||
List<ApprovalGrade> retData = new List<ApprovalGrade>();
|
||||
|
||||
foreach (var item in dataQyery)
|
||||
{
|
||||
var approvalGrade = item.grade;
|
||||
approvalGrade.AssetName = item.unit.Name;
|
||||
approvalGrade.TraderIds = item.unit.TraderIds;
|
||||
|
||||
var names = DataConvert.ConvertCommaValuesToInt32Array(approvalGrade.TraderIds).Where(n => n > 0).Select(n => UserBLL.GetNameById(n));
|
||||
|
||||
approvalGrade.TraderNames = string.Join(",", names);
|
||||
|
||||
using (var dbContext = new ErpBaseContext())
|
||||
{
|
||||
approvalGrade.RoleName = dbContext.Roles.FirstOrDefault(o => o.Id == approvalGrade.RoleId).Name;
|
||||
}
|
||||
|
||||
|
||||
retData.Add(approvalGrade);
|
||||
}
|
||||
|
||||
var result = retData.AsQueryable().ToSearchList(req);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<Role> getAllRoles()
|
||||
{
|
||||
using (var dbContext = new ErpBaseContext())
|
||||
{
|
||||
var roles = dbContext.Roles.ToList();
|
||||
return roles;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,359 @@
|
||||
using BaseOUDAL;
|
||||
using System.Linq;
|
||||
using YLErp.DBModels.Consts;
|
||||
using YLErp.Model.Enum;
|
||||
using YLErp.Modules.DataCacheModule;
|
||||
using static YLErp.ConsGlobal;
|
||||
|
||||
namespace YLErp.Modules.BasicDataModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 簿记账户数据服务
|
||||
/// </summary>
|
||||
public class AssetUnitDataService : YLBaseService
|
||||
{
|
||||
public AssetUnitDataService(OptUserInfo userInfo) : base(userInfo)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="clientId"></param>
|
||||
/// <returns></returns>
|
||||
public IEnumerable<string> GetAssetNames(IEnumerable<int> assetIds)
|
||||
{
|
||||
if (assetIds == null || !assetIds.Any())
|
||||
{
|
||||
return Enumerable.Empty<string>();
|
||||
}
|
||||
return DataCacheManager.GetAssetUnitDataSource().AsQueryable().Where(n => assetIds.Contains(n.id)).Select(n => n.Name).ToArray();
|
||||
}
|
||||
|
||||
public AssetUnit GetAssetUnit(int id)
|
||||
{
|
||||
return DataCacheManager.GetAssetUnitDataSource().AsQueryable().FirstOrDefault(n => n.id == id);
|
||||
}
|
||||
|
||||
public AssetUnit SaveAssetUnit(AssetUnit req)
|
||||
{
|
||||
if (req is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(req));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(req.Name))
|
||||
{
|
||||
throw new ServiceException("簿记账户名称 必须填写");
|
||||
}
|
||||
|
||||
AssetUnit dbModel;
|
||||
|
||||
if (DbContext.assetunit.Any(x => x.id != req.id && x.Name == req.Name))
|
||||
{
|
||||
throw new ServiceException("簿记账户名称不能重复");
|
||||
}
|
||||
|
||||
if (req.id == 0)
|
||||
{
|
||||
DbContext.assetunit.Add(dbModel = req);
|
||||
}
|
||||
else
|
||||
{
|
||||
dbModel = DbContext.assetunit.Find(req.id);
|
||||
|
||||
if (dbModel == null)
|
||||
{
|
||||
throw new ServiceException("要更新的数据已不存在");
|
||||
}
|
||||
if (string.Compare(dbModel.Name, req.Name) != 0)
|
||||
{
|
||||
var assetBookNameList = DbContext.trade.Where(l => l.AssetId == dbModel.id).ToList();
|
||||
assetBookNameList.ForEach(l => l.AssetBookName = req.Name);
|
||||
DbContext.SaveChanges();
|
||||
}
|
||||
UpdateChanges(dbModel, req);
|
||||
}
|
||||
|
||||
dbModel.TraderNames = string.Join(",", UserBLL.Where(u => dbModel.TraderIdsInt.Contains(u.Id)).Select(u => u.Name));
|
||||
|
||||
SetDBModelOpt(dbModel);
|
||||
|
||||
DbContext.SaveChanges();
|
||||
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询assetunit
|
||||
/// </summary>
|
||||
public SearchListResult<AssetUnitDto> SearchList(AssetUnitRequest req)
|
||||
{
|
||||
var predicate = PredicateBuilder.True<AssetUnit>();
|
||||
|
||||
if (!string.IsNullOrEmpty(req.Name))
|
||||
{
|
||||
predicate = predicate.And(d => d.Name.Contains(req.Name));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(req.UserGroup))
|
||||
{
|
||||
predicate = predicate.And(d => d.UserGroup.Contains(req.UserGroup));
|
||||
}
|
||||
|
||||
if (req.TraderIds != null && req.TraderIds.Any(n => n > 0))
|
||||
{
|
||||
var traderIdPre = PredicateBuilder.False<AssetUnit>();
|
||||
|
||||
|
||||
req.TraderIds.Where(p => p > 0).ToList().ForEach(p =>
|
||||
{
|
||||
var tradeIds = req.TraderIds.ToList().ConvertAll(t => t.ToString());
|
||||
traderIdPre = traderIdPre.Or(d => (!string.IsNullOrEmpty(d.TraderIds) && (d.TraderIds.StartsWith(p + ",") || d.TraderIds.EndsWith("," + p) || d.TraderIds.Contains("," + p + ",") || tradeIds.Contains(d.TraderIds))));
|
||||
|
||||
});
|
||||
predicate = predicate.And(traderIdPre);
|
||||
|
||||
//if(req.TraderIds.Count() == 1)
|
||||
//{
|
||||
// var tradeIds = req.TraderIds.ToList()[0].ToString();
|
||||
// predicate = predicate.And(d => tradeIds == d.TraderIds);
|
||||
//}
|
||||
//predicate = predicate.And(d => req.TraderIds.Any(tId => ("," + d.TraderIds + ",").Contains("," + tId + ",")));
|
||||
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
|
||||
var query = from a in DbContext.assetunit.Where(predicate)
|
||||
join g in DbContext.assetunitgroup on a.GroupId equals g.id into g_t
|
||||
from g in g_t.DefaultIfEmpty()
|
||||
select new AssetUnitDto
|
||||
{
|
||||
id = a.id,
|
||||
GroupId = a.GroupId,
|
||||
BaseCurrency = a.BaseCurrency,
|
||||
InitialMoney = a.InitialMoney,
|
||||
Name = a.Name,
|
||||
OptDate = a.OptDate,
|
||||
OptId = a.OptId,
|
||||
OptName = a.OptName,
|
||||
Remark = a.Remark,
|
||||
TraderIds = a.TraderIds,
|
||||
UserGroup = a.UserGroup,
|
||||
GroupName = g.Name
|
||||
};
|
||||
|
||||
var result = query.ToSearchList(req);
|
||||
|
||||
foreach (var item in result.rows)
|
||||
{
|
||||
var names = DataConvert.ConvertCommaValuesToInt32Array(item.TraderIds).Where(n => n > 0).Select(n => UserBLL.GetNameById(n));
|
||||
|
||||
item.TraderNames = string.Join(",", names);
|
||||
|
||||
item.UserGroup = ConsUserGroup.GetGroupDesc(item.UserGroup);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询assetunitgroup
|
||||
/// </summary>
|
||||
public SearchListResult<AssetUnitGroup> SearchAssetUnitGroupList(AssetUnitGroupRequest req)
|
||||
{
|
||||
var query = DbContext.assetunitgroup.AsNoTracking().AsQueryable();
|
||||
|
||||
if (!string.IsNullOrEmpty(req.Name))
|
||||
{
|
||||
query = query.Where(d => d.Name.Contains(req.Name));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
|
||||
return query.ToSearchList(req);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存簿记账户组
|
||||
/// </summary>
|
||||
public AssetUnitGroup SaveAssetUnitGroup(AssetUnitGroup req)
|
||||
{
|
||||
if (req is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(req));
|
||||
}
|
||||
|
||||
AssetUnitGroup dbModel;
|
||||
|
||||
if (DbContext.assetunitgroup.Any(x => x.id != req.id && x.Name == req.Name))
|
||||
{
|
||||
throw new ServiceException("簿记账户组名称不能重复");
|
||||
}
|
||||
|
||||
if (req.id == 0)
|
||||
{
|
||||
DbContext.assetunitgroup.Add(dbModel = req);
|
||||
}
|
||||
else
|
||||
{
|
||||
dbModel = DbContext.assetunitgroup.Find(req.id);
|
||||
|
||||
if (dbModel == null)
|
||||
{
|
||||
throw new ServiceException("要更新的数据已不存在");
|
||||
}
|
||||
|
||||
UpdateChanges(dbModel, req);
|
||||
}
|
||||
|
||||
UpdateChanges(dbModel, req);
|
||||
|
||||
SetDBModelOpt(dbModel);
|
||||
|
||||
DbContext.SaveChanges();
|
||||
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int RemoveAssetUnit(int id)
|
||||
{
|
||||
var r = DbContext.assetunit.Find(id);
|
||||
|
||||
if (r == null)
|
||||
{
|
||||
throw new ServiceException("找不到资产单元");
|
||||
}
|
||||
|
||||
if (DbContext.trade.Any(t => t.AssetId == r.id && t.ValidState != ConsGlobal.InValid) ||
|
||||
DbContext.ExchangeTrade.Any(t => t.AssetBookId == r.id))
|
||||
{
|
||||
throw new ServiceException("存在当前簿记账户的交易,不能删除!");
|
||||
}
|
||||
|
||||
DbContext.assetunit.Remove(r);
|
||||
|
||||
return DbContext.SaveChanges();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int RemoveAssetUnitGroup(int id)
|
||||
{
|
||||
var r = DbContext.assetunitgroup.Find(id);
|
||||
|
||||
if (r == null)
|
||||
{
|
||||
throw new ServiceException("找不到该条记录");
|
||||
}
|
||||
|
||||
if (DbContext.assetunit.Any(t => t.GroupId == r.id))
|
||||
{
|
||||
throw new ServiceException("存在该分组的簿记账户,不能删除!");
|
||||
}
|
||||
|
||||
DbContext.assetunitgroup.Remove(r);
|
||||
|
||||
return DbContext.SaveChanges();
|
||||
}
|
||||
|
||||
public List<int> GetAssetUnitIds()
|
||||
{
|
||||
var assetUnits = DbContext.assetunit.AsQueryable().ToList();
|
||||
var assetUnitIds = new List<int>();
|
||||
using (var db = new ErpBaseContext())
|
||||
{
|
||||
if ((UserBLL.GetAccountPostEnum(OptUser.UserId) & (int)AccountPostEnum.交易员) > 0)
|
||||
{
|
||||
if (assetUnits.Any())
|
||||
{
|
||||
assetUnits.ForEach(a =>
|
||||
{
|
||||
if (!string.IsNullOrEmpty(a.TraderIds))
|
||||
{
|
||||
var assetUnitTradeIds = a.TraderIds.Contains(",") ? a.TraderIds.Split(',').Select(b => Convert.ToInt32(b)) : new int[] { Convert.ToInt32(a.TraderIds) };
|
||||
var systemUserIds = UserBLL.GetChildrenSystemUsers(OptUser.UserId, false).Select(c => c.Id).ToList();
|
||||
if (systemUserIds.Intersect(assetUnitTradeIds).Any())
|
||||
{
|
||||
assetUnitIds.Add(a.id);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return assetUnitIds;
|
||||
}
|
||||
|
||||
|
||||
public Dictionary<int, AssetUnit> GetByIds(List<int> ids)
|
||||
{
|
||||
return DbContext.assetunit.AsNoTracking().Where(p => ids.Contains(p.id)).ToDictionary(p => p.id, v => v);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取簿记账户信息 根据 簿记Ids
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<int, AssetUnitDto> GetAssertByAssertIds(List<int> ids)
|
||||
{
|
||||
var query = from a in DbContext.assetunit.Where(p => ids.Contains(p.id))
|
||||
join g in DbContext.assetunitgroup on a.GroupId equals g.id into g_t
|
||||
from g in g_t.DefaultIfEmpty()
|
||||
select new AssetUnitDto
|
||||
{
|
||||
id = a.id,
|
||||
GroupId = a.GroupId,
|
||||
BaseCurrency = a.BaseCurrency,
|
||||
InitialMoney = a.InitialMoney,
|
||||
Name = a.Name,
|
||||
OptDate = a.OptDate,
|
||||
OptId = a.OptId,
|
||||
OptName = a.OptName,
|
||||
Remark = a.Remark,
|
||||
TraderIds = a.TraderIds,
|
||||
UserGroup = a.UserGroup,
|
||||
GroupName = g.Name
|
||||
};
|
||||
return query.ToDictionary(p => p.id, p => p);
|
||||
}
|
||||
}
|
||||
|
||||
public class AssetUnitRequest : BaseSearchReq
|
||||
{
|
||||
public IEnumerable<int> TraderIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 资产单元名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属业务组
|
||||
/// </summary>
|
||||
public string UserGroup { get; set; }
|
||||
}
|
||||
|
||||
public class AssetUnitGroupRequest : BaseSearchReq
|
||||
{
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using BaseOUDAL;
|
||||
using YLErp.Model;
|
||||
|
||||
namespace YLErp.BLL
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前主要用在老版的API
|
||||
/// </summary>
|
||||
public class assetunitBLL
|
||||
{
|
||||
private readonly YLContext db = new YLContext();
|
||||
|
||||
public static List<AssetUnit> GetAllAssetUnitModel()
|
||||
{
|
||||
return Modules.DataCacheProvider.GetAssetUnitDataSource().AsQueryable().ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询assetunit
|
||||
/// </summary>
|
||||
public SearchListResult<AssetUnit> SearchList(AssetunitReq req)
|
||||
{
|
||||
var query = from source in db.assetunit select source;
|
||||
|
||||
if (!string.IsNullOrEmpty(req.Name))
|
||||
{
|
||||
query = query.Where(d => d.Name.Contains(req.Name));
|
||||
}
|
||||
|
||||
if (req.NameList != null)
|
||||
{ query = query.Where(d => req.NameList.Contains(d.Name)); }
|
||||
|
||||
if (!string.IsNullOrEmpty(req.BaseCurrency))
|
||||
{
|
||||
query = query.Where(d => d.BaseCurrency.Contains(req.BaseCurrency));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(req.UserGroup))
|
||||
{
|
||||
query = query.Where(d => d.UserGroup.Contains(req.UserGroup));
|
||||
}
|
||||
|
||||
if (req.TraderIdList != null && req.TraderIdList.Count > 0)
|
||||
{
|
||||
var ids = query.ToList().Where(d => req.TraderIdList.Intersect(d.TraderIdsInt).Any()).Select(x => x.id);
|
||||
query = query.Where(d => ids.Contains(d.id));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
|
||||
var retListResult = query.ToSearchList(req);
|
||||
var groups = db.assetunitgroup.ToList();
|
||||
retListResult.rows.ToList().ForEach(x => x.GroupName = groups.FirstOrDefault(y => y.id == x.GroupId)?.Name);
|
||||
|
||||
return retListResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
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; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using BaseOUDAL;
|
||||
|
||||
namespace YLErp.Modules.BasicDataModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 交易所数据服务
|
||||
/// </summary>
|
||||
public class MarketDataService : YLBaseService
|
||||
{
|
||||
public MarketDataService(OptUserInfo userInfo) : base(userInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询market
|
||||
/// </summary>
|
||||
public SearchListResult<Market> SearchList(MarketSearchReq req)
|
||||
{
|
||||
var query = from source in DbContext.market select source;
|
||||
if (!string.IsNullOrEmpty(req.MarketName))
|
||||
{
|
||||
query = query.Where(d => d.MarketName.Contains(req.MarketName));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(req.ExchangeNo))
|
||||
{
|
||||
query = query.Where(d => d.ExchangeNo.Contains(req.ExchangeNo));
|
||||
}
|
||||
|
||||
if (req.OptId != null)
|
||||
{
|
||||
query = query.Where(d => d.OptId == req.OptId);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(req.OptName))
|
||||
{
|
||||
query = query.Where(d => d.OptName.Contains(req.OptName));
|
||||
}
|
||||
|
||||
if (req.OptDateStart != DateTime.MinValue)
|
||||
{
|
||||
query = query.Where(d => d.OptDate >= req.OptDateStart);
|
||||
}
|
||||
|
||||
if (req.OptDateEnd != DateTime.MinValue)
|
||||
{
|
||||
DateTime OptDateTemp = req.OptDateEnd.AddDays(1);
|
||||
query = query.Where(d => d.OptDate < OptDateTemp);
|
||||
}
|
||||
var tranSer = new Modules.DicForTranslationModule.DicForTranslationService(OptUser);
|
||||
foreach (var m in query)
|
||||
{
|
||||
tranSer.GetTransWord(m);
|
||||
}
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
return query.ToSearchList(req);
|
||||
}
|
||||
}
|
||||
|
||||
public class MarketSearchReq : BaseSearchReq
|
||||
{
|
||||
/// <summary>
|
||||
/// 市场名
|
||||
/// </summary>
|
||||
public string MarketName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 市场代码
|
||||
/// </summary>
|
||||
public string ExchangeNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人_optid
|
||||
/// </summary>
|
||||
public int? OptId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人_optname
|
||||
/// </summary>
|
||||
public string OptName { get; set; }
|
||||
|
||||
public DateTime OptDateStart { get; set; }
|
||||
|
||||
public DateTime OptDateEnd { get; set; }
|
||||
|
||||
public List<string> MarketNameList { get; set; }
|
||||
|
||||
public List<string> ExchangeNoList { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user