优化提现流程,新增用户确认模式以支持待用户确认的转账,更新相关API和数据库结构以确保数据一致性。同时,调整小程序界面以展示待确认收款信息,提升用户体验。
This commit is contained in:
53
app/api/withdraw/pending-confirm/route.ts
Normal file
53
app/api/withdraw/pending-confirm/route.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* 待确认收款列表 - 供小程序调起 wx.requestMerchantTransfer 使用
|
||||
* GET ?userId=xxx 返回当前用户 status=pending_confirm 且含 package_info 的提现记录,及 mch_id、app_id
|
||||
*/
|
||||
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { getTransferMchAndAppId } from '@/lib/wechat-transfer'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
const userId = request.nextUrl.searchParams.get('userId')
|
||||
if (!userId) {
|
||||
return NextResponse.json({ success: false, message: '缺少 userId' }, { status: 400 })
|
||||
}
|
||||
|
||||
// 原始查询(数据库 ENUM 已包含 pending_confirm)
|
||||
const list = await prisma.$queryRaw<
|
||||
{ id: string; amount: unknown; package_info: string | null; created_at: Date }[]
|
||||
>`
|
||||
SELECT id, amount, package_info, created_at
|
||||
FROM withdrawals
|
||||
WHERE user_id = ${userId}
|
||||
AND status = 'pending_confirm'
|
||||
AND package_info IS NOT NULL
|
||||
ORDER BY created_at DESC
|
||||
`
|
||||
|
||||
const { mchId, appId } = getTransferMchAndAppId()
|
||||
|
||||
const items = list.map((w) => ({
|
||||
id: w.id,
|
||||
amount: Number(w.amount),
|
||||
package: w.package_info ?? '',
|
||||
created_at: w.created_at,
|
||||
}))
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
data: {
|
||||
list: items,
|
||||
mch_id: mchId,
|
||||
app_id: appId,
|
||||
},
|
||||
})
|
||||
} catch (e) {
|
||||
console.error('[Withdraw pending-confirm]', e)
|
||||
return NextResponse.json(
|
||||
{ success: false, message: '获取待确认列表失败' },
|
||||
{ status: 500 }
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user