fix(worker-platform): 修复售后欠款抵扣导致验收失败,并支持余额偿还

有待还欠款时结算写入 settled_at 发生 timestamptz/text 类型错误会整单 500;顺带支持充值/解冻自动偿还与后台手动偿还。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yml2213
2026-09-13 20:44:35 +08:00
co-authored by Cursor
parent aba508f4f6
commit a49db84771
10 changed files with 409 additions and 11 deletions
@@ -4,6 +4,7 @@ import {
createAdminAfterSalesCase,
getAdminAfterSalesCaseEvents,
listAdminAfterSalesCases,
repayAdminAfterSalesCaseDebt,
resolveAdminAfterSalesCase,
} from '../../../services/worker-platform/index.js'
import { createJsonHandler, requireAdminRoles } from '../session.js'
@@ -78,4 +79,28 @@ router.post(
),
)
router.post(
'/worker-platform/after-sales-cases/:caseId/repay',
requireAdminRoles(['admin', 'operator', 'support']),
createJsonHandler(
(req) =>
repayAdminAfterSalesCaseDebt(
String(req.params.caseId || ''),
req.body || {},
req.adminSession?.username || '',
),
{
successMessage: '售后欠款已偿还',
errorMessage: '偿还售后欠款失败',
scope: '[admin/worker-platform/after-sales-cases/:caseId/repay]',
audit: (req, data) => ({
action: 'after_sales_case_debt_repaid',
targetType: 'after_sales_case',
targetId: String(req.params.caseId || ''),
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
}),
},
),
)
export default router