feat(distribution): 分站可下调收号比例且不超过主站上限

让分销站能按自身能力下调收号比例扩大利润,同时把主站回收比例作为硬边界,避免分站把比例加得比主站更高。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yml2213
2026-09-15 20:35:30 +08:00
co-authored by Cursor
parent 1c86bef765
commit c9d9160ff4
27 changed files with 1159 additions and 106 deletions
+16
View File
@@ -63,6 +63,12 @@ export function formatMoney(cent: number | undefined | null): string {
return `¥${((cent ?? 0) / 100).toFixed(2)}`
}
export function formatRatio(ratio: number | undefined | null): string {
const value = Number(ratio || 0)
if (!Number.isFinite(value) || value <= 0) return '--'
return `1:${value.toFixed(1)}`
}
export interface CurrentMember {
admin_id: number
username: string
@@ -121,6 +127,8 @@ export interface Site {
banners_json?: string
announcements_json?: string
footer_info_json?: string
listing_qrcode_url?: string
receive_ratio_delta?: number
created_at: string
}
@@ -330,6 +338,11 @@ export async function listSites(): Promise<Site[]> {
return extract(resp).items ?? []
}
export async function updateSite(siteID: number, payload: Partial<Pick<Site, 'receive_ratio_delta'>>): Promise<Site> {
const resp = await api.put<ApiResponse<Site>>(`/distribution/sites/${siteID}`, payload)
return extract(resp)
}
export interface DistributionSiteDefaults {
default_settlement_hold_days: number
}
@@ -483,6 +496,9 @@ export interface ReceivedListing {
login_platform: string
rank_level: string
haf_coin_amount: number
seller_ratio?: number
seller_total_price_cent?: number
buyer_ratio?: number
price_cent: number
deposit_amount_cent: number
status: string