All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m33s
主要改动: - 新增交互式环境配置脚本 (scripts/setup-env.sh) - 新增本地启动快捷脚本 (scripts/run-local.sh) - 新增环境变量模板文件 (.env.example) - 部署模式改版:使用嵌入式配置 + 环境变量覆盖 - 添加对象存储功能支持 - 改进 IoT 卡片导入任务 - 优化 OpenAPI 文档生成 - 删除旧的配置文件,改用嵌入式默认配置
1.5 KiB
1.5 KiB
1. CSV 解析改造
- 1.1 修改
pkg/utils/csv.go的CSVParseResult结构体,添加Cards []CardInfo替代ICCIDs []string - 1.2 修改
ParseICCIDFromCSV函数为ParseCardCSV,支持解析 ICCID + MSISDN 两列 - 1.3 添加列数校验,单列 CSV 直接返回错误
- 1.4 添加 ICCID/MSISDN 非空校验,空值记录为解析错误
- 1.5 更新表头识别逻辑,支持 msisdn/接入号/手机号 关键字
- 1.6 更新
pkg/utils/csv_test.go测试用例
2. 导入任务模型改造
- 2.1 创建数据库迁移:将
iccid_list字段重命名为card_list,类型保持 JSONB - 2.2 修改
internal/model/iot_card_import_task.go,定义CardListJSON类型为[]CardInfo{ICCID, MSISDN} - 2.3 更新
ImportResultItem结构体添加MSISDN字段
3. 导入服务改造
- 3.1 修改
internal/service/iot_card_import/service.go,调用新的ParseCardCSV函数 - 3.2 将解析结果的
Cards存入任务的card_list字段
4. 导入任务处理改造
- 4.1 修改
internal/task/iot_card_import.go的getICCIDsFromTask改为getCardsFromTask - 4.2 修改
processBatch函数,创建卡记录时同时填充ICCID和MSISDN - 4.3 更新失败/跳过记录的结构,包含 MSISDN 信息
- 4.4 更新
internal/task/iot_card_import_test.go测试用例
5. API 文档更新
- 5.1 更新路由注册中 CSV 文件字段的描述,说明必须包含 ICCID 和 MSISDN 两列
- 5.2 重新生成 OpenAPI 文档