Files
company-celebration/CLAUDE.md
2026-02-04 01:47:31 +08:00

129 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Company Celebration 项目指南
## 项目概述
年会庆典系统,包含投票、抽奖、大屏展示等功能。
## 技术栈
- **前端**: Vue 3 + TypeScript + Vite
- **后端**: Node.js + Express + Socket.IO
- **数据库**: MySQL + Redis
- **部署**: PM2
## 项目结构
```
packages/
├── client-mobile/ # 移动端(投票、扫码登录)
├── client-screen/ # 大屏端(展示、管理控制台)
├── server/ # 后端服务
└── shared/ # 共享类型和常量
```
---
## 运维部署流程
### 服务器信息
- **SSH 别名**: `vote`
- **项目目录**: `/root/company-celebration`
- **进程管理**: PM2 (`gala-server`)
### 标准部署流程
```bash
# 1. 本地提交并推送
git add <files>
git commit -m "commit message"
git push origin main
# 2. SSH 到服务器拉取代码
ssh vote "cd /root/company-celebration && git pull"
# 3. 构建项目
ssh vote "cd /root/company-celebration && pnpm build"
# 4. 重启服务
ssh vote "pm2 restart all && pm2 status"
```
### 常见问题处理
#### 服务器有本地修改冲突
```bash
ssh vote "cd /root/company-celebration && git stash && git pull"
```
#### 构建失败
1. 检查 TypeScript 类型错误
2. 本地修复后重新提交推送
3. 服务器重新拉取构建
#### 查看服务状态
```bash
ssh vote "pm2 status"
ssh vote "pm2 logs gala-server --lines 50"
```
### 环境变量配置
#### 服务端 `.env`
```bash
# 必需配置
NODE_ENV=production
DATABASE_URL=mysql://user:pass@localhost:3306/gala
REDIS_HOST=localhost
JWT_SECRET=your-secret-key
ADMIN_ACCESS_CODE=your-admin-code
MOBILE_CLIENT_URL=https://your-domain.com
# 微信公众号(扫码登录)
WECHAT_MP_APP_ID=your-mp-app-id
WECHAT_MP_APP_SECRET=your-mp-app-secret
WECHAT_MP_REDIRECT_ALLOWLIST=your-domain.com
```
#### 移动端 `packages/client-mobile/.env.production`
```bash
# 必须配置正确的生产环境地址,否则 API 调用会失败
VITE_SOCKET_URL=https://your-domain.com
VITE_API_URL=https://your-domain.com
```
> **注意**:如果 `VITE_API_URL` 为空,会使用默认的本地开发地址 `http://192.168.1.5:3000`,导致生产环境无法访问 API。
---
## 开发规范
### 类型定义
- 共享类型定义在 `packages/shared/src/types/`
- 修改类型后需确保所有引用处同步更新
### 提交规范
使用 Conventional Commits:
- `feat`: 新功能
- `fix`: 修复
- `chore`: 杂项
- `refactor`: 重构
---
## 关键变更记录
### 2026-02-03
- 公众号 OAuth 安全加固:`/api/mp/auth-url` 生成并缓存 state`/api/mp/login` 强制校验 state。
- 增加回调域名白名单:新增 `WECHAT_MP_REDIRECT_ALLOWLIST`,仅允许白名单 host 的 `redirect_uri`
- 移动端授权回调携带 state微信回调时将 `state``code` 一起提交登录。
- 补充部署与生产环境变量示例:新增 `WECHAT_MP_APP_ID/SECRET/REDIRECT_ALLOWLIST` 说明。