From 42da18484c0fef38c2bfe9483c484f178a4485d5 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 3 Mar 2026 04:37:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=A4=87=E6=B3=A8=EF=BC=8C=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=91=8A=E5=B9=B3=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 userNotes 字段,创建订单时从 Sub2API 读取用户 notes 保存 - 管理后台订单列表将用户名、邮箱、备注拆分为独立列,节约行高 Co-Authored-By: Claude Opus 4.6 --- .../20260303000000_add_user_notes/migration.sql | 2 ++ prisma/schema.prisma | 1 + src/app/admin/page.tsx | 1 + src/app/api/admin/orders/route.ts | 1 + src/components/admin/OrderTable.tsx | 12 ++++++++---- src/lib/order/service.ts | 1 + src/lib/sub2api/types.ts | 1 + 7 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 prisma/migrations/20260303000000_add_user_notes/migration.sql diff --git a/prisma/migrations/20260303000000_add_user_notes/migration.sql b/prisma/migrations/20260303000000_add_user_notes/migration.sql new file mode 100644 index 0000000..fcac282 --- /dev/null +++ b/prisma/migrations/20260303000000_add_user_notes/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "orders" ADD COLUMN "user_notes" TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 03b2d33..1dba27e 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -11,6 +11,7 @@ model Order { userId Int @map("user_id") userEmail String? @map("user_email") userName String? @map("user_name") + userNotes String? @map("user_notes") amount Decimal @db.Decimal(10, 2) rechargeCode String @unique @map("recharge_code") status OrderStatus @default(PENDING) diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 2d20e32..f4689f6 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -12,6 +12,7 @@ interface AdminOrder { userId: number; userName: string | null; userEmail: string | null; + userNotes: string | null; amount: number; status: string; paymentType: string; diff --git a/src/app/api/admin/orders/route.ts b/src/app/api/admin/orders/route.ts index 5e59262..df7e82c 100644 --- a/src/app/api/admin/orders/route.ts +++ b/src/app/api/admin/orders/route.ts @@ -34,6 +34,7 @@ export async function GET(request: NextRequest) { userId: true, userName: true, userEmail: true, + userNotes: true, amount: true, status: true, paymentType: true, diff --git a/src/components/admin/OrderTable.tsx b/src/components/admin/OrderTable.tsx index 43c4c23..20e7b36 100644 --- a/src/components/admin/OrderTable.tsx +++ b/src/components/admin/OrderTable.tsx @@ -5,6 +5,7 @@ interface Order { userId: number; userName: string | null; userEmail: string | null; + userNotes: string | null; amount: number; status: string; paymentType: string; @@ -48,7 +49,9 @@ export default function OrderTable({ orders, onRetry, onCancel, onViewDetail, da 订单号 - 用户 + 用户名 + 邮箱 + 备注 金额 状态 支付方式 @@ -71,10 +74,11 @@ export default function OrderTable({ orders, onRetry, onCancel, onViewDetail, da {order.id.slice(0, 12)}... - -
{order.userName || '-'}
-
{order.userEmail || `ID: ${order.userId}`}
+ + {order.userName || `#${order.userId}`} + {order.userEmail || '-'} + {order.userNotes || '-'} ¥{order.amount.toFixed(2)} diff --git a/src/lib/order/service.ts b/src/lib/order/service.ts index 8613bab..8f31487 100644 --- a/src/lib/order/service.ts +++ b/src/lib/order/service.ts @@ -102,6 +102,7 @@ export async function createOrder(input: CreateOrderInput): Promise