modify:新增小程序

This commit is contained in:
ECRZ
2026-01-06 18:00:43 +08:00
parent 498fa0e915
commit da4a055c1c
47 changed files with 7321 additions and 61 deletions

View File

@@ -0,0 +1,130 @@
# 数据源标识系统更新总结
## ✅ 已完成的更新
### 1. 数据源配置增强
为三个接口添加了完整的标识配置:
| 接口 | 标识码 | 描述 | 颜色标签 |
|-----|--------|------|---------|
| `DEFAULT` | `YUNNAN_STEEL_ASSOC` | 云南钢协指导价API | 🔴 #FF6B6B |
| `BACKUP` | `MY_STEEL` | 我的钢铁网价格API | 🔵 #4ECDC4 |
| `EXTENDED` | `DE_STEEL_FACTORY` | 德钢钢厂指导价API | 🟢 #95E1D3 |
### 2. 数据库字段新增
`prices` 表中添加了 3 个新字段:
```sql
price_source_code VARCHAR(32) -- 数据源代码(唯一标识)
price_source_desc VARCHAR(64) -- 数据源描述
data_origin VARCHAR(32) -- 数据来源标识LOCAL_FILE 或 API:ENDPOINT
```
### 3. 导入脚本更新
- [x] `transformData` 函数现在添加标识字段
- [x] 导入时显示数据源信息(标识码、描述、颜色标签)
- [x] 支持从 API 和本地文件导入时自动添加标识
### 4. 数据库迁移
- [x] 创建迁移脚本 `migrate-add-source-fields.js`
- [x] 支持重复执行(幂等性)
- [x] 添加索引优化查询性能
## 🚀 使用方法
### 1. 执行数据库迁移
```bash
npm run db:migrate
```
### 2. 从 API 导入数据(带标识)
```bash
# 导入所有 API 数据
npm run db:import:api
# 导入单个接口数据
node scripts/import-data.js single-api DEFAULT
node scripts/import-data.js single-api BACKUP
node scripts/import-data.js single-api EXTENDED
```
### 3. 从本地文件导入数据(带标识)
```bash
npm run db:import:local
```
### 4. 测试数据源标识
```bash
node scripts/test-data-source-identification.js
```
## 📊 数据查询示例
### 查询所有数据源统计
```sql
SELECT
price_source_code AS '数据源代码',
price_source_desc AS '数据源描述',
data_origin AS '数据来源',
COUNT(*) AS '记录数',
AVG(hang_price) AS '平均价格'
FROM prices
GROUP BY price_source_code, price_source_desc, data_origin;
```
### 按数据源筛选
```sql
-- 云南钢协数据
SELECT * FROM prices WHERE price_source_code = 'YUNNAN_STEEL_ASSOC';
-- API 导入的数据
SELECT * FROM prices WHERE data_origin LIKE 'API:%';
-- DEFAULT 接口数据
SELECT * FROM prices WHERE data_origin = 'API:DEFAULT';
```
## 🔧 修改的文件
| 文件 | 修改内容 |
|------|---------|
| `scripts/import-data.js` | 添加数据源配置、更新 transformData 函数 |
| `src/models/Price.js` | 更新表结构、添加迁移函数、更新插入函数 |
| `package.json` | 添加新的 npm 脚本命令 |
| `scripts/migrate-add-source-fields.js` | 新增迁移脚本 |
| `scripts/test-data-source-identification.js` | 新增测试脚本 |
| `docs/DATA_SOURCE_IDENTIFICATION.md` | 新增完整文档 |
## 📝 注意事项
1. **迁移安全性**: 迁移脚本可重复执行,已存在的字段/索引会自动跳过
2. **向后兼容**: 保留了原有的 `price_source` 字段
3. **性能优化**: 为新字段添加了索引,查询性能更好
4. **唯一 ID**: price_id 的生成现在包含 `price_source_code`
## 🎨 颜色标签
这些颜色标签可以在前端界面中使用:
```javascript
const SOURCE_COLORS = {
YUNNAN_STEEL_ASSOC: '#FF6B6B', // 🔴 红色
MY_STEEL: '#4ECDC4', // 🔵 蓝绿色
DE_STEEL_FACTORY: '#95E1D3' // 🟢 绿色
};
```
## 📚 相关文档
- [详细使用说明](./DATA_SOURCE_IDENTIFICATION.md)
- [导入脚本使用说明](../scripts/README-IMPORT.md)