refactor(swap): InterestCalcRequest 参数对象——GetInterests 双显式入口收敛为单参数
新增 InterestCalcRequest(SwapModule 根): - 承载 GetInterests 全部有效入参(needPrice/grossPrice 死参数不承载),私有构造; - 仅两个场景工厂可构造:IntradayUnwind(平仓前剩余/实际平掉额/B语义比例)、 EodPostCloseSettle(平仓后剩余/实际平掉额/恒1全额结息)——工厂形参名即场景语义, 物理上防止两套名义本金语义混传(6fdc7d80 错账的温床); - GetIntradayUnwindInterests / CalcEodPostCloseSettleInterests 签名收敛为单参数 req, 生产调用点(GetUnwindInterests / SaveAutoEodWithCloseInterestPosition)改工厂构造; - 原 20 参 GetInterests / 19 参 CalcSwapInterests 保留为底层实现与测试兼容层(十余处测试直调,不动)。 验证:定向 140 测试通过;全量 902(+3 字符化测试)= 145失败/745通过/12跳过, 与基线逐位一致,零回归。
This commit is contained in:
@@ -140,9 +140,10 @@ namespace YLErp.Modules.SwapModule
|
||||
var eodPositions = new List<eod_swap_position> { preEod };
|
||||
var positions = new List<swap_position> { position };
|
||||
|
||||
var intraday = CreateService().GetIntradayUnwindInterests(td, td.trade_extend, UnwindDate, UnwindDate,
|
||||
eodPositions, positions, PreClose, PreClose, 0m, Closed, ClosePercent,
|
||||
(int)SwapEventTypeEnum.平仓, tdClose: true, orginPv: PreClose, add: true, newCalcLast: false, closeList: null);
|
||||
var intraday = CreateService().GetIntradayUnwindInterests(InterestCalcRequest.IntradayUnwind(
|
||||
td, td.trade_extend, UnwindDate, UnwindDate, eodPositions, positions,
|
||||
PreClose, PreClose, 0m, Closed, ClosePercent,
|
||||
(int)SwapEventTypeEnum.平仓, tdClose: true, orginPv: PreClose, add: true, newCalcLast: false, closeList: null));
|
||||
|
||||
var eodPostClose = CreateService().GetInterests(td, td.trade_extend, UnwindDate, UnwindDate,
|
||||
eodPositions, positions, Remaining, Remaining, 0m, Closed, 1m,
|
||||
@@ -174,9 +175,10 @@ namespace YLErp.Modules.SwapModule
|
||||
var eodPositions = new List<eod_swap_position> { preEod };
|
||||
var positions = new List<swap_position> { position };
|
||||
|
||||
var intraday = CreateService().GetIntradayUnwindInterests(td, td.trade_extend, UnwindDate, UnwindDate,
|
||||
eodPositions, positions, PreClose, PreClose, 0m, Closed, ClosePercent,
|
||||
(int)SwapEventTypeEnum.平仓, tdClose: true, orginPv: PreClose, add: true, newCalcLast: false, closeList: null);
|
||||
var intraday = CreateService().GetIntradayUnwindInterests(InterestCalcRequest.IntradayUnwind(
|
||||
td, td.trade_extend, UnwindDate, UnwindDate, eodPositions, positions,
|
||||
PreClose, PreClose, 0m, Closed, ClosePercent,
|
||||
(int)SwapEventTypeEnum.平仓, tdClose: true, orginPv: PreClose, add: true, newCalcLast: false, closeList: null));
|
||||
|
||||
var eodPostClose = CreateService().GetInterests(td, td.trade_extend, UnwindDate, UnwindDate,
|
||||
eodPositions, positions, Remaining, Remaining, 0m, Closed, 1m,
|
||||
|
||||
Reference in New Issue
Block a user