refactor(swap): 提取 EodSwapPositionQueries.ActiveByTradeAndDate 收口日终有效持仓查询
将 eod_swap_position 上'SwapTradeId + ValueDate + !Invalid'的 5 处重复谓词 (SwapEodPositionService.cs:2133/2195/2246/2487、ConfirmationGenerateContext.cs:2868) 收口到 EodSwapPositionQueries.ActiveByTradeAndDate(tradeId, valueDate), 与 SwapPositionQueries.ActiveByTrade 同构,零逻辑变更。
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using YLErp.DBModels;
|
||||
|
||||
namespace YLErp.Modules.SwapModule
|
||||
{
|
||||
/// <summary>
|
||||
/// eod_swap_position 查询收口(Query Object)。
|
||||
/// 规则"某交易某日日终的有效持仓 = SwapTradeId 匹配 + ValueDate 匹配 + 未作废(!Invalid)"集中于此,
|
||||
/// 避免多处复制同一谓词导致语义漂移(漏写 !Invalid 即静默出 bug)。
|
||||
/// 仅返回 IQueryable,不调用 SaveChanges,不破坏跟踪/Include/事务边界。
|
||||
/// </summary>
|
||||
public static class EodSwapPositionQueries
|
||||
{
|
||||
public static IQueryable<eod_swap_position> ActiveByTradeAndDate(
|
||||
this IQueryable<eod_swap_position> query, int tradeId, DateTime valueDate)
|
||||
=> query.Where(x => x.SwapTradeId == tradeId && x.ValueDate == valueDate && !x.Invalid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user