fix: 第1批 M2、M3、M16、M23 导入与展示类缺陷
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8h37m36s
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8h37m36s
- M2 批量换绑表头改为“平台登录账号”,只认手机号,细分格式、不存在、多匹配、非平台、已禁用失败原因 - M3 后台订单列表与详情返回 C 端在线购买的交易流水号、支付渠道、商户名称,详情新增全部支付单 payments - M16 预警规则不再返回 real_data_mb,预警列表/详情新增 threshold_mb,导出末列追加“阈值流量(MB)” - M23 设备导入 IMEI 必填,空 IMEI 行记为失败 - OpenSpec Change fix-august-iteration-follow-up-gaps:13/18,导入任务、导出任务的 Worker 端到端验证与前端/运营通知待部署后完成
This commit is contained in:
@@ -9,6 +9,9 @@ import (
|
||||
"github.com/xuri/excelize/v2"
|
||||
)
|
||||
|
||||
// DeviceImportIMEIRequiredReason 设备导入行 IMEI 为空(含仅空白)时的失败原因。
|
||||
const DeviceImportIMEIRequiredReason = "设备IMEI(imei)不能为空"
|
||||
|
||||
// CardInfo 卡信息(ICCID + MSISDN + VirtualNo)
|
||||
type CardInfo struct {
|
||||
ICCID string
|
||||
@@ -185,6 +188,15 @@ func ParseDeviceExcel(filePath string) (*DeviceParseResult, error) {
|
||||
continue
|
||||
}
|
||||
|
||||
// IMEI 只校验非空,不校验长度、格式与唯一性;虚拟号与 IMEI 都为空时只记虚拟号一条原因。
|
||||
if row.IMEI == "" {
|
||||
parseResult.ParseErrors = append(parseResult.ParseErrors, CSVParseError{
|
||||
Line: lineNum,
|
||||
Reason: DeviceImportIMEIRequiredReason,
|
||||
})
|
||||
continue
|
||||
}
|
||||
|
||||
// 解析最大SIM槽数
|
||||
if maxSimSlotsStr != "" {
|
||||
if n, err := strconv.Atoi(maxSimSlotsStr); err == nil {
|
||||
|
||||
Reference in New Issue
Block a user