# 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 列后才能导入