From 8579529571e8a63d821203ad421eda0ce3d36975 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 21 Dec 2025 22:35:32 -0800 Subject: [PATCH] =?UTF-8?q?feat(admin-service):=20=E6=B7=BB=E5=8A=A0=20see?= =?UTF-8?q?d=20=E8=84=9A=E6=9C=AC=E5=90=8C=E6=AD=A5=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=B4=A6=E6=88=B7=E5=88=B0=20user=5Fquery=5Fview?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:admin-web 用户管理页面无数据,因为 user_query_view 表是空的 原因:identity-service 的 seed 创建的系统账户不会触发 Kafka 事件 解决方案: - 创建 admin-service 的 seed.ts,直接同步系统账户到 user_query_view - 配置 package.json 的 prisma.seed 运行方式: cd backend/services/admin-service && npx prisma db seed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- backend/services/admin-service/package.json | 3 +- backend/services/admin-service/prisma/seed.ts | 79 +++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 backend/services/admin-service/prisma/seed.ts diff --git a/backend/services/admin-service/package.json b/backend/services/admin-service/package.json index 6b7b85c2..69146546 100644 --- a/backend/services/admin-service/package.json +++ b/backend/services/admin-service/package.json @@ -6,7 +6,8 @@ "private": true, "license": "UNLICENSED", "prisma": { - "schema": "prisma/schema.prisma" + "schema": "prisma/schema.prisma", + "seed": "ts-node prisma/seed.ts" }, "scripts": { "build": "nest build", diff --git a/backend/services/admin-service/prisma/seed.ts b/backend/services/admin-service/prisma/seed.ts new file mode 100644 index 00000000..ce27544e --- /dev/null +++ b/backend/services/admin-service/prisma/seed.ts @@ -0,0 +1,79 @@ +import { PrismaClient } from '@prisma/client'; + +const prisma = new PrismaClient(); + +// ============================================ +// 系统账户定义 (与 identity-service/prisma/seed.ts 保持同步) +// ============================================ +const SYSTEM_ACCOUNTS = [ + { + userId: BigInt(1), + accountSequence: 'S0000000001', + nickname: '总部社区', + status: 'SYSTEM', + }, + { + userId: BigInt(2), + accountSequence: 'S0000000002', + nickname: '成本费账户', + status: 'SYSTEM', + }, + { + userId: BigInt(3), + accountSequence: 'S0000000003', + nickname: '运营费账户', + status: 'SYSTEM', + }, + { + userId: BigInt(4), + accountSequence: 'S0000000004', + nickname: 'RWAD底池账户', + status: 'SYSTEM', + }, + { + userId: BigInt(5), + accountSequence: 'D25122100000', + nickname: '种子用户', + status: 'ACTIVE', + }, +]; + +async function main() { + console.log('Seeding admin-service database...'); + + // 同步系统账户到 user_query_view + console.log('Syncing system accounts to user_query_view...'); + for (const account of SYSTEM_ACCOUNTS) { + await prisma.userQueryView.upsert({ + where: { userId: account.userId }, + update: { + accountSequence: account.accountSequence, + nickname: account.nickname, + status: account.status, + syncedAt: new Date(), + }, + create: { + userId: account.userId, + accountSequence: account.accountSequence, + nickname: account.nickname, + status: account.status, + kycStatus: 'NOT_VERIFIED', + registeredAt: new Date(), + syncedAt: new Date(), + }, + }); + console.log(` - Synced: ${account.nickname} (${account.accountSequence})`); + } + + console.log('Admin-service database seeded successfully!'); + console.log(`- Synced ${SYSTEM_ACCOUNTS.length} system accounts to user_query_view`); +} + +main() + .catch((e) => { + console.error(e); + process.exit(1); + }) + .finally(async () => { + await prisma.$disconnect(); + });