- 新建 YLErp.Modules.SwapModule.Margin:MarginBalance / MarginLeg / IMarginResolver(Cash/Credit/Guarantee) - MarginLeg 不继承 IInterestLegStrategy,与利息腿完全解耦(保证金是客户存款/担保,非互换腿) - 删除 PrepayLeg,工厂不再注册 mode 5/6 预付金 - 预付金用例迁入 MarginLegTest,旧 InterestLegStrategyTest 改为断言预付金已非利息腿
23 lines
1.2 KiB
C#
23 lines
1.2 KiB
C#
namespace YLErp.Modules.SwapModule.Margin;
|
||
|
||
/// <summary>
|
||
/// 保证金(预付金)利息计提。独立限界上下文,不继承也不关联任何利息腿
|
||
/// (IInterestLegStrategy / FixedNotionalLeg 等)——保证金是客户存款/担保,并非互换腿,
|
||
/// 套用利息腿抽象是此前的类别错误(category error)。
|
||
///
|
||
/// 本类只负责把"保证金余额"这一计息基数正确建模与计算。方向翻转、orginPv 维度纠正、
|
||
/// 持仓对齐等预付金独有逻辑不在本类(原散落在 SwapDealService / SwapEodPositionService),
|
||
/// 后续按各自独立方法迁移,保持本类最小、可单测。
|
||
/// </summary>
|
||
public sealed class MarginLeg
|
||
{
|
||
/// <summary>
|
||
/// 计算计息余额。
|
||
/// </summary>
|
||
/// <param name="marginBalance">保证金余额(现金余额 / 授信占用 / 担保品市值)。</param>
|
||
/// <param name="accrualFactor">本期计息适用比例,默认 1(不缩放)。仅部分释放等场景小于 1。</param>
|
||
/// <returns>计息基数,不含利率与日计数。</returns>
|
||
public MarginBalance CalcBalance(decimal marginBalance, decimal accrualFactor = 1m)
|
||
=> new(marginBalance * accrualFactor);
|
||
}
|