Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
前端: - store 改为 votedArtists[] + zustand persist - VoteModal 删除 1/3/5/ALL 选择器,改三态(待投/已投/满额) - 卡片/排行/详情页加 hasVoted 状态 + ✓ 角标 - Hero 右上角 Countdown 替换为 HeroVoteProgress(12 格点亮进度) - /me 改为终身额度叙事(QuotaCard / StatsGrid / MyFanSupport) 后端: - votes 表加 @@unique([userId, artistId])(已 apply 到生产 RDS) - /api/vote 重写:12 票上限 + P2002 ALREADY_VOTED + P2003 NOT_FOUND 兜底 - /api/me 新增 votedArtists[] + voteQuota,移除 dailyQuota - 新增 ERR.ALREADY_VOTED 错误码 测试: - DB 层 5/5 + E2E 18/18 通过(scripts/e2e-vote-flow.sh) - 修复 P2003 FK 违反未识别的 bug 详情见 docs/todo/voting-refactor-完成报告.md 与 voting-refactor-backend-完成报告.md Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
11 lines
413 B
JavaScript
11 lines
413 B
JavaScript
import { PrismaClient } from "@prisma/client";
|
|
const prisma = new PrismaClient({ log: ["error"] });
|
|
const u = await prisma.user.findMany({
|
|
where: { phone: { not: null } },
|
|
select: { id: true, phone: true, nickname: true },
|
|
orderBy: { id: "asc" },
|
|
});
|
|
console.log("现有手机号用户:");
|
|
for (const r of u) console.log(` user_id=${r.id} phone=${r.phone} name=${r.nickname}`);
|
|
await prisma.$disconnect();
|