feat(client): 购买模型/仓库切 pay v2 契约(render_type 多态 + 分金额 + 订单列表)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-10 23:34:21 +08:00
parent 45a43c20a4
commit 179051a8fa
6 changed files with 536 additions and 8 deletions
+20
View File
@@ -0,0 +1,20 @@
/// 分转元字符串,千分位分组 + 两位小数,纯整数运算(金额禁 float)。
///
/// 例:299900 → "2,999.00"100 → "1.00"0 → "0.00";负数保留符号。
String yuanFromMinor(int minor) {
final negative = minor < 0;
final abs = negative ? -minor : minor;
final yuan = abs ~/ 100;
final cents = abs % 100;
final yuanDigits = yuan.toString();
final len = yuanDigits.length;
final buffer = StringBuffer();
for (var i = 0; i < len; i++) {
if (i > 0 && (len - i) % 3 == 0) buffer.write(',');
buffer.write(yuanDigits[i]);
}
final centsStr = cents.toString().padLeft(2, '0');
return '${negative ? '-' : ''}$buffer.$centsStr';
}