This commit is contained in:
乘风
2026-02-05 11:35:57 +08:00
parent 8c2a6391af
commit b96acadf91
31 changed files with 2263 additions and 4933 deletions

View File

@@ -88,6 +88,9 @@ interface Order {
status: 'pending' | 'completed' | 'failed'
paymentMethod?: string
referrerEarnings?: number
referrerId?: string | null
/** 下单时记录的邀请码(订单表 referral_code */
referralCode?: string | null
createdAt: string
}
@@ -131,13 +134,18 @@ export default function DistributionAdminPage() {
const ordersRes = await fetch('/api/orders')
const ordersData = await ordersRes.json()
if (ordersData.success && ordersData.orders) {
// 补充用户信息
// 补充用户信息与推荐人信息
const enrichedOrders = ordersData.orders.map((order: Order) => {
const user = usersArr.find((u: User) => u.id === order.userId)
const referrer = order.referrerId
? usersArr.find((u: User) => u.id === order.referrerId)
: null
return {
...order,
userNickname: user?.nickname || '未知用户',
userPhone: user?.phone || '-'
userPhone: user?.phone || '-',
referrerNickname: referrer?.nickname || null,
referrerCode: referrer?.referral_code || null,
}
})
setOrders(enrichedOrders)
@@ -565,6 +573,7 @@ export default function DistributionAdminPage() {
<th className="p-4 text-left font-medium"></th>
<th className="p-4 text-left font-medium"></th>
<th className="p-4 text-left font-medium"></th>
<th className="p-4 text-left font-medium">/</th>
<th className="p-4 text-left font-medium"></th>
<th className="p-4 text-left font-medium"></th>
</tr>
@@ -579,7 +588,9 @@ export default function DistributionAdminPage() {
order.id?.toLowerCase().includes(term) ||
order.userNickname?.toLowerCase().includes(term) ||
order.userPhone?.includes(term) ||
order.sectionTitle?.toLowerCase().includes(term)
order.sectionTitle?.toLowerCase().includes(term) ||
(order.referrerCode && order.referrerCode.toLowerCase().includes(term)) ||
(order.referrerNickname && order.referrerNickname.toLowerCase().includes(term))
)
}
return true
@@ -617,14 +628,22 @@ export default function DistributionAdminPage() {
order.paymentMethod || '微信支付'}
</td>
<td className="p-4">
{order.status === 'completed' ? (
{order.status === 'completed' || order.status === 'paid' ? (
<Badge className="bg-green-500/20 text-green-400 border-0"></Badge>
) : order.status === 'pending' ? (
) : order.status === 'pending' || order.status === 'created' ? (
<Badge className="bg-yellow-500/20 text-yellow-400 border-0"></Badge>
) : (
<Badge className="bg-red-500/20 text-red-400 border-0"></Badge>
)}
</td>
<td className="p-4 text-gray-300 text-sm">
{order.referrerId || order.referralCode ? (
<span title={order.referralCode || order.referrerCode || order.referrerId}>
{order.referrerNickname || order.referralCode || order.referrerCode || order.referrerId?.slice(0, 8)}
{(order.referralCode || order.referrerCode) ? ` (${order.referralCode || order.referrerCode})` : ''}
</span>
) : '-'}
</td>
<td className="p-4 text-[#FFD700]">
{order.referrerEarnings ? `¥${order.referrerEarnings.toFixed(2)}` : '-'}
</td>