修复提现申请冻结余额
This commit is contained in:
@@ -251,7 +251,7 @@ export async function reviewAdminWorkerFinanceRequest(
|
||||
publishWorkerFinanceRealtimeChange({
|
||||
requestId: Number(reviewed.request.id),
|
||||
workerId: Number(reviewed.request.worker_id),
|
||||
walletChanged: reviewed.request.request_type === 'withdraw' && status === 'approved',
|
||||
walletChanged: reviewed.request.request_type === 'withdraw',
|
||||
})
|
||||
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
countWorkerWithdrawRequestsOnDay,
|
||||
createWorkerFinanceRequest,
|
||||
getWorkerFinanceRequestSummary,
|
||||
createWorkerWithdrawRequestWithFreeze,
|
||||
getWorkerWithdrawalAccount,
|
||||
listDueDepositUnfreezes,
|
||||
releaseDepositUnfreeze,
|
||||
@@ -164,20 +164,9 @@ export async function createWorkerWithdrawRequest(
|
||||
})
|
||||
}
|
||||
|
||||
const financeSummary = await getWorkerFinanceRequestSummary(worker.id)
|
||||
const availableAmount = Number(worker.available_amount || 0)
|
||||
const availableForWithdraw = Math.max(0, availableAmount - financeSummary.pendingWithdrawAmount)
|
||||
if (amount > availableForWithdraw) {
|
||||
throw createHttpError('可提现余额不足,请先减少提现金额或等待已提交申请处理', {
|
||||
statusCode: 409,
|
||||
errorCode: 'worker_withdraw_amount_insufficient',
|
||||
})
|
||||
}
|
||||
|
||||
const note = String(payload.note || payload.remark || '').trim()
|
||||
const created = await createWorkerFinanceRequest({
|
||||
const created = await createWorkerWithdrawRequestWithFreeze({
|
||||
workerId: worker.id,
|
||||
requestType: 'withdraw',
|
||||
amount,
|
||||
accountChannel,
|
||||
accountName: withdrawalAccount.account_name,
|
||||
@@ -192,25 +181,30 @@ export async function createWorkerWithdrawRequest(
|
||||
}),
|
||||
now: nowIso(),
|
||||
})
|
||||
if (!created) {
|
||||
throw createHttpError('提现申请创建失败', {
|
||||
statusCode: 500,
|
||||
errorCode: 'worker_withdraw_request_create_failed',
|
||||
if (created.failureReason === 'withdraw_insufficient') {
|
||||
throw createHttpError('可提现余额不足,请先减少提现金额或等待已提交申请处理', {
|
||||
statusCode: 409,
|
||||
errorCode: 'worker_withdraw_amount_insufficient',
|
||||
})
|
||||
}
|
||||
const request = created.request
|
||||
await createWorkerWithdrawAdminNotification({
|
||||
requestId: Number(created.id),
|
||||
requestId: Number(request.id),
|
||||
workerName: worker.display_name || worker.username,
|
||||
amountFen: Number(created.amount || amount),
|
||||
channel: created.account_channel,
|
||||
amountFen: Number(request.amount || amount),
|
||||
channel: request.account_channel,
|
||||
})
|
||||
publishWorkerFinanceRealtimeChange({
|
||||
requestId: Number(created.id),
|
||||
requestId: Number(request.id),
|
||||
workerId: Number(worker.id),
|
||||
})
|
||||
publishWorkerWalletRealtimeChange(Number(worker.id))
|
||||
return {
|
||||
request: mapFinanceRequest(created),
|
||||
availableForWithdraw,
|
||||
request: mapFinanceRequest(request),
|
||||
availableForWithdraw: Math.max(
|
||||
0,
|
||||
Number(worker.available_amount || 0) - Number(request.amount || amount),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,9 @@ export function normalizeWalletLedgerType(value: unknown) {
|
||||
if (
|
||||
[
|
||||
'manual_credit',
|
||||
'withdraw_freeze',
|
||||
'withdraw_paid',
|
||||
'withdraw_release',
|
||||
'deposit_freeze',
|
||||
'deposit_release',
|
||||
'deposit_pending_unfreeze',
|
||||
|
||||
Reference in New Issue
Block a user