jiachenlong/docs/RELEASE_v1.0.0.md

292 lines
7.0 KiB
Markdown
Raw Permalink Normal View History

# 甲辰藏品管理系统 v1.0.0 发布说明
**发布日期**: 2026-03-16
**版本**: v1.0.0
**分支**: `main`
**提交**: `initial`
---
## 🎉 初始版本
这是精简重构后的第一个正式版本,包含核心功能。
---
## 🎯 版本亮点
### 1. 统一版本管理系统 📦
**问题**: 之前版本号分散在多个文件,修改麻烦且容易遗漏
**解决方案**:
- 新增根目录 `VERSION` 文件集中管理版本号
- 后端启动时自动读取 VERSION 文件
- 前端构建时自动注入版本号到所有页面
- 浏览器标签页标题自动更新
**使用方法**:
```bash
# 只需修改这一处
vi VERSION
# 修改VERSION=2.9.0
# 重新构建即可
npm run build
```
### 2. 冠字号查重功能 🔍
**功能**: 保存藏品时自动检测是否已有相同冠字号的藏品
**流程**:
1. 用户填写藏品信息(包含冠字号)
2. 点击保存 → 后端自动查重
3. 发现重复 → 弹窗提示:
```
⚠️ 发现重复冠字号!
冠字号J063558611
已存在于:龙钞 (编号0001)
是否继续保存?
```
4. 用户选择:
- **取消** → 终止保存
- **确认** → 强制保存(支持重复冠字号)
**适用场景**:
- 防止误操作重复录入
- 特殊情况下允许保存重复冠字号(如不同评级公司)
### 3. 图片重命名优化 📸
**旧格式**: `UUID.jpg` (如 `aaf56f63-548a-49f1-9b07-116a73b7dfa0.jpg`)
**新格式**: `用户名 - 藏品编号 - 冠字号.jpg`
**示例**:
```
酷博特 -0001-J063558611.jpg
酷博特 -0002-J051811231.jpg
admin-0001.jpg (无冠字号时)
```
**优势**:
- 文件名直观,一眼看出是谁的哪个藏品
- 便于手动查找和管理图片文件
- 自动清理特殊字符,兼容各操作系统
- 文件冲突时自动添加时间戳
---
## 🐛 Bug 修复
### 1. 用户管理 - 角色设置失效 ❌→✅
**问题**: 添加用户时选择"管理员"角色,保存后还是"普通用户"
**原因**:
- 前端调用 `/api/auth/register` 接口(硬编码 role="user"
- 后端使用 `Query` 而非 `Form` 接收参数
**修复**:
- 新增 `POST /api/admin/users` 接口(支持 role 参数)
- 前端改为调用管理员接口
- 修复 error_handler 字段映射错误
### 2. 图片显示 - 全部显示系统 Logo ❌→✅
**问题**: 所有藏品图片都显示系统 logo不显示实际图片
**原因**: Nginx 缺少 `/uploads` 路径代理配置
**修复**:
```nginx
location /uploads {
proxy_pass http://127.0.0.1:3000/uploads;
client_max_body_size 20M;
}
```
### 3. OCR 识别 - API 调用失败 ❌→✅
**问题**: OCR 识别返回 500 错误
**原因**: DashScope API 格式错误
```json
// ❌ 错误格式
{
"model": "qwen-vl-max",
"input": {"messages": [...]}
}
// ✅ 正确格式
{
"model": "qwen-vl-max",
"messages": [...],
"max_tokens": 1000
}
```
---
## ⚙️ 技术优化
### 1. 版本号显示位置
- **统计页面** (`/stats`) - 右上角
- **藏品列表** (`/list`) - 右上角
- **添加藏品** (`/add`) - 右下角浮动
- **用户管理** (`/admin`) - 右下角浮动
- **首页** (`/`) - 底部
- **登录页** (`/login`) - 底部
- **浏览器标签页** - 标题自动更新
### 2. 藏品编码逻辑
**规则**: 本用户所有藏品中最大编码 +1
```python
def generate_code(version: str, user_id: str, db: Session) -> str:
# 查询当前用户的所有编码
user_codes = db.query(Collection.f01_02_code).filter(
Collection.f01_02_code.isnot(None),
Collection.f99_91_user_id == user_id
).all()
# 找出最大数字编码4 位纯数字)
max_num = 0
for (code,) in user_codes:
if re.match(r'^\d{4}$', code):
num = int(code)
if num > max_num:
max_num = num
# 返回最大号 +1
return str(max_num + 1).zfill(4)
```
**特点**:
- ✅ 每个用户独立编码(不与其他用户混算)
- ✅ 自动找出当前用户最大编码
- ✅ 返回最大编码 +14 位数字,如 0001, 0002
### 3. 后端接口优化
- `POST /api/admin/users` - 支持 Form 参数
- `PUT /api/admin/users/{id}` - 同时支持 Query 和 JSON body
- `POST /api/collections?force=true` - 强制保存(忽略重复警告)
### 4. 日志记录增强
```python
logger.info(f"创建用户username={username}, role={role}")
logger.warning(f"发现重复冠字号:{serial}, 已存在 ID: {id}")
logger.info(f"图片上传成功:{filename}")
```
---
## 📊 文件变更统计
**提交**: `1e42b7f`
**变更**: 11 files changed, 206 insertions(+), 48 deletions(-)
### 修改文件列表
1. `VERSION` (新增) - 统一版本配置文件
2. `backend-fastapi/app/main.py` - 自动读取版本号
3. `backend-fastapi/app/routers/collections.py` - 查重 + 图片重命名
4. `backend-fastapi/app/routers/ocr.py` - API 格式修复
5. `backend-fastapi/app/routers/users.py` - 用户管理接口
6. `backend-fastapi/app/core/error_handler.py` - 错误映射修复
7. `zodiac-mobile/package.json` - 版本号
8. `zodiac-mobile/vite.config.js` - 自动更新 title
9. `zodiac-mobile/src/config/version.js` - 自动读取版本
10. `zodiac-mobile/src/pages/Add.jsx` - 查重弹窗
11. `zodiac-mobile/src/pages/Admin.jsx` - 版本号显示
12. `zodiac-mobile/src/pages/List.jsx` - 版本号显示
13. `zodiac-mobile/src/pages/Stats.jsx` - 版本号显示
---
## 🚀 升级指南
### 从 v2.7.x 升级到 v2.8.0
#### 1. 拉取新版本
```bash
cd /path/to/zodiac-collector
git fetch origin
git checkout v2.8.0
```
#### 2. 安装依赖
```bash
# 后端
cd backend-fastapi
pip install -r requirements.txt
# 前端
cd zodiac-mobile
pnpm install
```
#### 3. 重新构建
```bash
# 前端构建
npm run build
sudo cp -r dist/* /var/www/mobile/dist/
# 重启后端
pkill -f "uvicorn app.main:app"
nohup uvicorn app.main:app --port 3000 --host 0.0.0.0 &
```
#### 4. 验证版本
```bash
# 检查后端版本
curl http://localhost:3000/ | grep version
# {"name":"甲辰收藏系统 FastAPI 后端","version":"2.8.0",...}
# 检查前端版本
curl http://localhost:3001/ | grep title
# <title>甲辰收藏 v2.8.0</title>
```
---
## 📝 使用建议
### 1. 版本管理
- 每次发布新版本只需修改 `VERSION` 文件
- 构建前检查版本号是否正确
- 建议遵循语义化版本规范(主版本。次版本。修订版)
### 2. 冠字号查重
- 正常情况直接保存即可
- 如果确实需要保存重复冠字号,点击"确认"继续
- 建议在备注中说明重复原因
### 3. 图片管理
- 新上传的图片自动使用新命名格式
- 旧图片保持原有 UUID 格式(不影响使用)
- 建议定期整理图片文件
---
## 🐛 已知问题
暂无
---
## 📞 技术支持
- **代码仓库**: http://47.253.189.47:3000/coolbot/zodiac-collector
- **问题反馈**: 创建 Issue 或联系开发团队
- **在线系统**: http://120.26.133.10:3001/
---
## 🎉 致谢
感谢所有参与 v2.8.0 开发和测试的团队成员!
**特别感谢**:
- 产品需求提出
- Bug 报告与测试
- 代码审查与优化
---
**甲辰藏品管理系统开发团队**
2026-03-15