topfans/docs/硬编码常量审批文档.md

120 lines
5.1 KiB
Markdown
Raw Permalink 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.

# 硬编码常量汇总
> 生成时间: 2026-04-23
> 用途: 供团队审批,确认这些硬编码值是否需要改为可配置
---
## 一、前端硬编码
### 1. API Base URL
| 文件 | 行号 | 硬编码值 | 风险等级 |
|------|------|----------|----------|
| `frontend/utils/api.js` | 4 | `http://localhost:8080` | 高 |
### 2. 性能配置
| 文件 | 行号 | 硬编码值 | 说明 |
|------|------|----------|------|
| `frontend/utils/performance-config.js:36` | 36 | `30000` | 数据过时阈值30秒 |
| `frontend/utils/performance-config.js:41` | 41 | `3000` | 关键资源加载超时(毫秒) |
### 3. UI/动画配置
| 文件 | 行号 | 硬编码值 | 说明 |
|------|------|----------|------|
| `frontend/pages/support-activity/components/FloatingBubbles.vue:337` | 337 | `30000` | 气泡刷新间隔30秒 |
| `frontend/pages/components/WelcomeAnimation.vue:704` | 704 | `3000` | 欢迎动画延迟3秒 |
| `frontend/pages/components/WelcomeAnimationWebview.vue:83` | 83 | `3000` | Webview动画延迟3秒 |
| `frontend/pages/support-activity/components/ActionBar.vue:97` | 97 | `3000` | 行动条动画延迟3秒 |
| `frontend/pages/components/CastloveContent.vue:19` | 19 | `interval="3000"` | 轮播间隔3秒 |
---
## 二、后端硬编码
### 1. JWT 密钥(安全风险)
| 文件 | 行号 | 硬编码值 | 风险等级 |
|------|------|----------|----------|
| `backend/pkg/jwt/jwt.go` | 18 | `your-secret-key-change-in-production` | **高** |
| `backend/gateway/config/config.go` | 83 | `topfans-secret-key-please-change-in-production` | **高** |
### 2. 展馆相关 (`galleryService/config/gallery_config.go`)
| 配置项 | 硬编码值 | 说明 |
|--------|----------|------|
| `InitialSlotCount` | **6** | 初始展位数量3公开+3私有 |
| `GrabSlotDuration` | **14400秒4小时** | 抢展位后未放置的过期时间 |
| `MaxSlotCount` | **10** | 最大展位数量 |
| `UnlockLevelBySlot` | 第4-10展位需等级5-11 | 解锁展位需要的等级 |
| `UnlockValueBySlot` | 水晶100-700 | 解锁展位需要的水晶 |
### 3. 社交相关 (`socialService/config/social_config.go`)
| 配置项 | 硬编码值 | 说明 |
|--------|----------|------|
| `RejectionCooldownDays` | **7天** | 拒绝好友冷却期 |
| `RequestExpiryDays` | **30天** | 好友请求过期时间 |
| `MaxLimit` | **0未启用** | 好友数量上限(预留) |
### 4. 用户/身份相关
| 配置项 | 值 | 文件 |
|--------|-----|------|
| `MaxIdentities` | **2个** | `userService/service/identity_service.go:23` |
| `MaxPasswordLength` | **50** | `pkg/validator/validator.go:14` |
| `MaxNicknameLength` | **20** | `pkg/validator/validator.go:18` |
### 5. 任务相关 (`taskService/config/task_config.go`)
| 配置项 | 硬编码值 | 说明 |
|--------|----------|------|
| `ResetHour` | **5** | 每日重置小时Asia/Shanghai |
| `ResetMinute` | **0** | 每日重置分钟 |
| `RevenueBatchSize` | **100** | 收益自动发放批次大小 |
| `RevenueMaxRetries` | **3** | 收益自动发放最大重试次数 |
### 6. 铸造相关 (`assetService/config/asset_config.go`)
| 配置项 | 硬编码值 | 说明 |
|--------|----------|------|
| `MaxRetryCount` | **3次** | 铸造失败最大重试次数 |
| `MintSimulationDelaySeconds` | **3秒** | 模拟上链延迟 |
| `GetByOwner limit` | **1000** | 单次获取藏品上限 |
### 7. Token/认证相关
| 配置项 | 硬编码值 | 文件 |
|--------|----------|------|
| `TokenExpiration` | **7天** | `pkg/jwt/jwt.go:13` |
### 8. 预签名URL相关 (`gateway/controller/asset_controller.go`)
| 配置项 | 硬编码值 | 说明 |
|--------|----------|------|
| 默认过期时间 | **3600秒1小时** | 预签名URL默认 |
| 最大过期时间 | **86400秒24小时** | 预签名URL最大 |
| STS最大 | **3600秒1小时** | STS Token最大 |
| STS最小 | **900秒15分钟** | STS Token最小 |
### 9. 数据库/服务连接(开发环境默认值)
| 服务 | 默认值 |
|------|--------|
| DB_HOST | `localhost` |
| Dubbo服务 | `tri://127.0.0.1:20000` ~ `20007` |
---
## 三、审批选项
请确认以下处理方式:
| 类别 | 选项A保留硬编码 | 选项B改为环境变量 |
|------|---------------------|----------------------|
| API Base URL | 继续使用localhost开发 | 改为环境变量切换dev/prod |
| JWT 密钥 | 生产部署时手动修改 | 改为环境变量,强制必须配置 |
| 展馆规则(时间/等级/水晶) | 保留硬编码 | 改为配置文件 |
| 社交规则(冷却期/过期) | 保留硬编码 | 改为配置文件 |
| 任务配置(重置时间) | 保留硬编码 | 改为环境变量 |
| 铸造配置(重试次数) | 保留硬编码 | 改为配置文件 |
| UI配置动画时长 | 保留硬编码 | 改为样式变量 |
---
## 四、建议
1. **高风险**: JWT密钥硬编码存在安全隐患建议改为强制环境变量配置
2. **中风险**: API Base URL建议改为环境变量方便切换开发/生产环境
3. **低风险**: 业务规则类硬编码(如展馆规则、社交规则)可根据团队需求决定是否配置化