Files
junhong_cmp_fiber/openspec/changes/archive/2026-01-24-fix-iccid-import-csv-format/proposal.md
huang 45aa7deb87
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m33s
feat: 添加环境变量管理工具和部署配置改版
主要改动:
- 新增交互式环境配置脚本 (scripts/setup-env.sh)
- 新增本地启动快捷脚本 (scripts/run-local.sh)
- 新增环境变量模板文件 (.env.example)
- 部署模式改版:使用嵌入式配置 + 环境变量覆盖
- 添加对象存储功能支持
- 改进 IoT 卡片导入任务
- 优化 OpenAPI 文档生成
- 删除旧的配置文件,改用嵌入式默认配置
2026-01-26 10:28:29 +08:00

1.5 KiB
Raw Blame History

Change: 修复 ICCID 导入 CSV 格式支持 MSISDN

Why

当前批量导入 ICCID 接口只支持单列 CSV仅 ICCID但 IoT 卡模型包含 MSISDN接入号/手机号码)字段,导入时无法填充该重要字段。运营商提供的卡资料必须同时包含 ICCID 和 MSISDN缺少接入号的卡无法正常使用。

What Changes

  • BREAKING: CSV 格式变更为必须包含两列ICCID, MSISDN不再支持单列格式
  • 修改 CSV 解析逻辑要求两列格式,缺少 MSISDN 的行视为格式错误
  • 修改导入任务模型存储 ICCID 和 MSISDN 的映射关系
  • 修改导入任务处理逻辑,创建卡记录时填充 MSISDN 字段
  • 更新 API 文档描述新的 CSV 格式要求

Capabilities

New Capabilities

(无新增能力)

Modified Capabilities

  • iot-card-import-task: 导入任务需要存储 ICCID-MSISDN 映射CSV 解析结果结构变更,强制要求双列格式

Impact

  • 受影响的代码:
    • pkg/utils/csv.go - CSV 解析函数
    • internal/model/iot_card_import_task.go - 导入任务模型
    • internal/task/iot_card_import.go - 导入任务处理逻辑
    • internal/service/iot_card_import/service.go - 导入服务
  • 受影响的 API:
    • POST /api/admin/iot-cards/import - CSV 格式要求变更(BREAKING
  • 数据库: 需要迁移更新 iccid_list 字段结构(从 []string 改为 [{iccid, msisdn}]
  • 用户影响: 现有单列 CSV 文件需要补充 MSISDN 列后才能导入