feat(distribution): 分销站点管理支持完整 CRUD、安全删除保护与管理员密码重置
- 后端支持分销站点编辑(域名唯一性校验、收号压价点位及税率更新) - 后端支持分销站点安全删除校验(阻断存在业务订单、财务流水、结算批次或钱包余额的站点删除;对干净站点连带清理分成规则、展示账号绑定、支付通道配置及专有站长账号) - 后端支持站长账号展示与超级管理员重置站长密码 - 主管理后台与分销后台前端全面支持筛选搜索、编辑模态窗、状态快捷切换、站长密码重置与安全删除确认 - 补充后端 CRUD、删除保护与密码重置覆盖率测试用例
This commit is contained in:
@@ -130,6 +130,10 @@ export interface Site {
|
||||
listing_qrcode_url?: string
|
||||
receive_ratio_delta?: number
|
||||
receive_cost_delta?: number
|
||||
admin_user_id?: number
|
||||
admin_username?: string
|
||||
admin_nickname?: string
|
||||
member_type?: string
|
||||
created_at: string
|
||||
}
|
||||
|
||||
@@ -341,9 +345,35 @@ export async function listSites(): Promise<Site[]> {
|
||||
|
||||
export async function updateSite(
|
||||
siteID: number,
|
||||
payload: Partial<Pick<Site, 'receive_ratio_delta' | 'receive_cost_delta'>>
|
||||
payload: Partial<
|
||||
Pick<
|
||||
Site,
|
||||
| 'site_name'
|
||||
| 'domain'
|
||||
| 'status'
|
||||
| 'display_account_enabled'
|
||||
| 'tax_enabled'
|
||||
| 'tax_rate_bps'
|
||||
| 'settlement_hold_days'
|
||||
| 'listing_qrcode_url'
|
||||
| 'receive_ratio_delta'
|
||||
| 'receive_cost_delta'
|
||||
>
|
||||
>
|
||||
): Promise<Site> {
|
||||
const resp = await api.put<ApiResponse<Site>>(`/distribution/sites/${siteID}`, payload)
|
||||
const resp = await api.put<ApiResponse<Site>>(`/admin/distribution/sites/${siteID}`, payload)
|
||||
return extract(resp)
|
||||
}
|
||||
|
||||
export async function deleteSite(siteID: number): Promise<{ deleted: boolean }> {
|
||||
const resp = await api.delete<ApiResponse<{ deleted: boolean }>>(`/admin/distribution/sites/${siteID}`)
|
||||
return extract(resp)
|
||||
}
|
||||
|
||||
export async function resetSiteAdminPassword(siteID: number, newPassword: string): Promise<{ message: string }> {
|
||||
const resp = await api.put<ApiResponse<{ message: string }>>(`/admin/distribution/sites/${siteID}/admin-password`, {
|
||||
new_password: newPassword,
|
||||
})
|
||||
return extract(resp)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user