feat(打手): 支持个人追加免押额度

This commit is contained in:
yml2213
2026-08-28 21:36:54 +08:00
parent 5d5d63bb59
commit f20ff3018f
18 changed files with 282 additions and 12 deletions
@@ -2,6 +2,7 @@ type HallProduct = {
productName?: string
rewardAmount?: number
freezeDepositAmount?: number
depositFreeAmount?: number
sharing?: {
enabled: boolean
totalQuantity: number
@@ -41,11 +42,15 @@ export function resolveHallRewardAmount(order: HallProduct): number {
return resolveHallRemainingQuantity(order) * Number(order.sharing.unitReward || 0)
}
/** 拼单卡片保证金按剩余份数占总份数的比例展示。 */
/** 拼单卡片按当前剩余份数计算个人免押后的实际保证金。 */
export function resolveHallDepositAmount(order: HallProduct): number {
if (!order.sharing?.enabled) return Number(order.freezeDepositAmount || 0)
const totalQuantity = Math.max(1, Number(order.sharing.totalQuantity) || 1)
return Math.round(
(Number(order.freezeDepositAmount || 0) * resolveHallRemainingQuantity(order)) / totalQuantity,
const depositFreeAmount = Math.max(0, Number(order.depositFreeAmount || 0))
const requiredDepositAmount = Number(order.freezeDepositAmount || 0) + depositFreeAmount
return Math.max(
0,
Math.round((requiredDepositAmount * resolveHallRemainingQuantity(order)) / totalQuantity) -
depositFreeAmount,
)
}