"use client" import { useState, useEffect, Suspense } from "react" import { Card, CardContent } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" import { Badge } from "@/components/ui/badge" import { Search, RefreshCw, Download, Filter, TrendingUp } from "lucide-react" import { useStore } from "@/lib/store" interface Purchase { id: string userId: string type: "section" | "fullbook" | "match" sectionId?: string sectionTitle?: string amount: number status: "pending" | "completed" | "failed" paymentMethod?: string referrerEarnings?: number createdAt: string } function OrdersContent() { const { getAllPurchases, getAllUsers } = useStore() const [purchases, setPurchases] = useState([]) const [users, setUsers] = useState([]) const [searchTerm, setSearchTerm] = useState("") const [statusFilter, setStatusFilter] = useState("all") const [isLoading, setIsLoading] = useState(true) useEffect(() => { setIsLoading(true) setPurchases(getAllPurchases()) setUsers(getAllUsers()) setIsLoading(false) }, [getAllPurchases, getAllUsers]) // 获取用户昵称 const getUserNickname = (userId: string) => { const user = users.find(u => u.id === userId) return user?.nickname || "未知用户" } // 获取用户手机号 const getUserPhone = (userId: string) => { const user = users.find(u => u.id === userId) return user?.phone || "-" } // 过滤订单 const filteredPurchases = purchases.filter((p) => { const matchSearch = getUserNickname(p.userId).includes(searchTerm) || getUserPhone(p.userId).includes(searchTerm) || p.sectionTitle?.includes(searchTerm) || p.id.includes(searchTerm) const matchStatus = statusFilter === "all" || p.status === statusFilter return matchSearch && matchStatus }) // 统计数据 const totalRevenue = purchases.filter(p => p.status === "completed").reduce((sum, p) => sum + p.amount, 0) const todayRevenue = purchases .filter(p => { const today = new Date().toDateString() return p.status === "completed" && new Date(p.createdAt).toDateString() === today }) .reduce((sum, p) => sum + p.amount, 0) return (

订单管理

共 {purchases.length} 笔订单

总收入: ¥{totalRevenue.toFixed(2)} | 今日: ¥{todayRevenue.toFixed(2)}
setSearchTerm(e.target.value)} />
{isLoading ? (
加载中...
) : ( 订单号 用户 商品 金额 支付方式 状态 分销佣金 下单时间 {filteredPurchases.map((purchase) => ( {purchase.id.slice(0, 12)}...

{getUserNickname(purchase.userId)}

{getUserPhone(purchase.userId)}

{purchase.type === "fullbook" ? "整本购买" : purchase.type === "match" ? "匹配次数" : purchase.sectionTitle || `章节${purchase.sectionId}`}

{purchase.type === "fullbook" ? "全书" : purchase.type === "match" ? "功能" : "单章"}

¥{purchase.amount.toFixed(2)} {purchase.paymentMethod === "wechat" ? "微信支付" : purchase.paymentMethod === "alipay" ? "支付宝" : purchase.paymentMethod || "微信支付"} {purchase.status === "completed" ? ( 已完成 ) : purchase.status === "pending" ? ( 待支付 ) : ( 已失败 )} {purchase.referrerEarnings ? `¥${purchase.referrerEarnings.toFixed(2)}` : "-"} {new Date(purchase.createdAt).toLocaleString()}
))} {filteredPurchases.length === 0 && ( 暂无订单数据 )}
)}
) } export default function OrdersPage() { return ( ) }