Skip to main content
Version: Current

项目结构

lottery/
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── admin/page.tsx # 管理端 + 登录码控制
│ │ │ ├── login/page.tsx # 玩家登录码
│ │ │ ├── staff-login/page.tsx # Staff 密码登录
│ │ │ ├── play/ show/ term/
│ │ │ ├── winner-modal-preview/ # 主题预览
│ │ │ └── api/auth/[...nextauth]/
│ │ ├── components/
│ │ │ ├── game/
│ │ │ │ ├── admin/
│ │ │ │ ├── login/ # CnLoginPanel, UsLoginPanel, RegionToggle
│ │ │ │ ├── play/
│ │ │ │ └── show/ # LoginCodeDisplay, WinnerModal, ...
│ │ │ └── ui/
│ │ └── lib/
│ │ ├── auth.ts # NextAuth + 4 providers
│ │ ├── player-id.ts # localStorage UUID
│ │ ├── theme.ts
│ │ └── confetti-colors.ts
│ └── public/ # 主题资源、音效

├── backend/
│ ├── prisma/schema.prisma
│ └── src/
│ ├── index.ts
│ ├── routes/
│ │ ├── admin.ts # + publish/close login code
│ │ ├── auth.ts # verify-code
│ │ └── submit-answer.ts
│ └── lib/
│ ├── game.ts
│ ├── socket.ts
│ ├── redis.ts
│ ├── login-code.ts # 新增
│ ├── player-registry.ts # 新增
│ ├── database.ts
│ └── recovery.ts

├── flood-test/
│ ├── code-login-test.js
│ ├── e2e-code-game-load-test.js
│ └── heavy-load-test.js

└── docs/

关键文件

文件职责
login-code.ts码生成、校验、Socket 广播
player-registry.tsUUID ↔ displayName
auth.ts (backend route)verify-code HTTP
auth.ts (frontend lib)player-code / staff-credentials
player-id.ts浏览器 UUID 持久化
LoginCodeDisplay.tsx大屏登录码 UI