/** * 查询用户购买状态 API * 用于支付成功后刷新用户的购买记录 * * GET /api/user/purchase-status?userId=xxx */ import { NextRequest, NextResponse } from 'next/server' import { query } from '@/lib/db' export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) const userId = searchParams.get('userId') if (!userId) { return NextResponse.json({ success: false, error: '缺少 userId 参数' }, { status: 400 }) } // 1. 查询用户基本信息 const userRows = await query(` SELECT id, nickname, avatar, phone, wechat_id, referral_code, has_full_book, earnings, pending_earnings, referral_count FROM users WHERE id = ? `, [userId]) as any[] if (userRows.length === 0) { return NextResponse.json({ success: false, error: '用户不存在' }, { status: 404 }) } const user = userRows[0] // 2. 从 orders 表查询已购买的章节 const orderRows = await query(` SELECT DISTINCT product_id FROM orders WHERE user_id = ? AND status = 'paid' AND product_type = 'section' `, [userId]) as any[] const purchasedSections = orderRows.map((row: any) => row.product_id).filter(Boolean) // 3. 返回完整购买状态 return NextResponse.json({ success: true, data: { hasFullBook: user.has_full_book || false, purchasedSections, purchasedCount: purchasedSections.length, earnings: parseFloat(user.earnings) || 0, pendingEarnings: parseFloat(user.pending_earnings) || 0, } }) } catch (error) { console.error('[PurchaseStatus] 查询失败:', error) return NextResponse.json({ success: false, error: '查询购买状态失败' }, { status: 500 }) } }