From 3e5a9396896e8423cf50dbc2038d377669fe1073 Mon Sep 17 00:00:00 2001 From: hjhan Date: Wed, 1 Jul 2026 16:47:26 +0800 Subject: [PATCH] =?UTF-8?q?refactor(swap):=20=E9=98=B6=E6=AE=B51a=20DealIn?= =?UTF-8?q?terests=E5=88=A9=E6=81=AF=E5=BD=92=E6=A1=A3=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=8F=AF=E8=A7=81=E6=80=A7=E6=94=BE=E5=BC=80(testable=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=87=86=E5=A4=87)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将5个利息腿归档相关方法从private改为protected,不改变生产行为: - DealInterests(利息腿归档主调度) - SaveEodInterestPosition(手动互换分支) - SaveAutoEodInterestPosition(自动互换分支) - SaveAutoEodWithCloseInterestPosition(平仓分支) - SaveEodInterestPositionCopy(普通计息分支) 这是testable迁移第一步:先放开可见性让测试子类能调用, 后续阶段再加虚方法接缝(替换DB调用)和迁移合成测试。 参考: refactor-swap-event-testable分支 Seams模式改造 --- YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index 7f676dd1..f68558e0 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -212,7 +212,7 @@ namespace YLErp.Modules.SwapModule /// 自动互换集合 /// 多空组合平仓利息腿信息 /// 上一日终框架合约 - private void DealInterests(List interestList, + protected void DealInterests(List interestList, List eodPositions, List todyEodPositions, DateTime settleDate, @@ -769,7 +769,7 @@ namespace YLErp.Modules.SwapModule /// 计息开始日 /// 计息结束日 /// 平仓金额 - private void SaveEodInterestPosition(eod_swap_position eodPayPosition, + protected void SaveEodInterestPosition(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, swap_position position, trade td, @@ -865,7 +865,7 @@ namespace YLErp.Modules.SwapModule /// 上一平仓/互换日期 /// 当日平仓金额 /// 上一日终框架合约估值 - private List SaveAutoEodInterestPosition(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, swap_position position, trade td, DateTime valueDate, IntervalModel interval, eod_swap lastEodSwap, decimal posiLongNotional, decimal posiShortNational, decimal grossPrice, decimal orginPv) + protected List SaveAutoEodInterestPosition(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, swap_position position, trade td, DateTime valueDate, IntervalModel interval, eod_swap lastEodSwap, decimal posiLongNotional, decimal posiShortNational, decimal grossPrice, decimal orginPv) { Log.Info($"[SaveAutoEodInterestPosition] 开始执行 - valueDate: {valueDate:yyyy-MM-dd}, td.id: {td?.id}, position.id: {position?.id}"); @@ -1006,7 +1006,7 @@ namespace YLErp.Modules.SwapModule /// 当日平仓金额 /// 上一日终框架合约估值 /// 平仓主信息 - private List SaveAutoEodWithCloseInterestPosition(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, swap_position position, trade td, DateTime valueDate, IntervalModel interval, decimal posiLongNotional, decimal posiShortNational, List flowEvents, decimal closeNational, bool autoSwap, decimal grossPrice, decimal orginPv) + protected List SaveAutoEodWithCloseInterestPosition(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, swap_position position, trade td, DateTime valueDate, IntervalModel interval, decimal posiLongNotional, decimal posiShortNational, List flowEvents, decimal closeNational, bool autoSwap, decimal grossPrice, decimal orginPv) { Log.Info($"eodPayPosition is {JsonHelper.Serialize(eodPayPosition, false)},newEodPayPosition is {JsonHelper.Serialize(newEodPayPosition, false)}"); var tradeExtend = td.trade_extend.ExtendObj; @@ -1139,7 +1139,7 @@ namespace YLErp.Modules.SwapModule /// 上一交易日 /// 当前结算日 /// 互换交易主干 - private void SaveEodInterestPositionCopy(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, DateTime valueDate, trade td, swap_position position, eod_swap lastEodSwap, bool needPrice, decimal posiLongNational, decimal posiShortNational, decimal grossPrice, decimal orginPv) + protected void SaveEodInterestPositionCopy(eod_swap_position eodPayPosition, eod_swap_position newEodPayPosition, DateTime valueDate, trade td, swap_position position, eod_swap lastEodSwap, bool needPrice, decimal posiLongNational, decimal posiShortNational, decimal grossPrice, decimal orginPv) { Log.Info($"eodPayPosition is {JsonHelper.Serialize(eodPayPosition, false)},newEodPayPosition is {JsonHelper.Serialize(newEodPayPosition, false)}"); List intervals = position.SwapIntervalList;