Files
邹进 25c081fe60
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8h37m36s
fix: 第1批 M2、M3、M16、M23 导入与展示类缺陷
- 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 端到端验证与前端/运营通知待部署后完成
2026-10-11 23:49:29 +09:00

4.4 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 店铺负责人 CSV 导入

超级管理员和平台用户 SHALL 通过 CSV 导入批量设置或清空店铺负责人;导入 MUST 异步执行并返回成功数、失败数与逐行明细。导入入口仅限超级管理员与平台用户,故导入失败原因不含数据范围无权。

导入文件 MUST 为 CSV,编码 MUST 为 UTF-8 且 MAY 带 BOM;非 UTF-8 时系统 SHALL 按既有 GBK 转换能力尝试解码,仍失败时按任务级失败并给出明确原因。文件首行表头 MUST 与固定列序「店铺编码、操作类型、平台登录账号、备注」完全一致,不一致时(含旧表头「业务员登录账号」)为任务级失败,系统 MUST NOT 同时兼容新旧表头。操作类型 MUST 为「换绑」或「清空」;换绑 MUST 填写平台登录账号,清空 MUST NOT 填写平台登录账号。备注可选,填写时 MUST 写入该行审计。店铺 MUST 以店铺编码唯一定位。

平台登录账号 MUST 填写平台用户的登录手机号。系统 MUST 去除首尾空白后校验为 11 位数字,不合法时该行失败且 MUST NOT 查询账号;填写用户名按格式不合法处理。格式合法时系统 MUST 按手机号精确查询全部未删除账号(不按用户类型与状态过滤),再依次判定:零条失败为“平台登录账号(手机号)不存在”;多于一条失败为“平台登录账号(手机号)匹配多个账号”;唯一账号不是平台用户失败为“该手机号对应账号不是平台用户”;唯一账号已禁用失败为“该手机号对应账号已禁用”。只有唯一命中启用平台账号时方可执行换绑。

每行 MUST 独立校验与执行:有效行成功更新,失败行 MUST 保留原值且不影响其他已成功行;结果 MUST 保存行号(自数据首行起计,表头不计入)、成功或失败状态与失败原因。任务级失败与行级失败 MUST 分开记录,任务级失败不产生行明细。导入 MUST NOT 设置行数硬上限。所有实际变更 MUST 记录店铺负责人前后值与行备注审计。

行级失败原因 MUST 限定为:店铺编码不存在或已删除、操作类型非法、换绑必须填写平台登录账号、清空不得填写平台登录账号、平台登录账号请填写手机号且格式不正确、平台登录账号(手机号)不存在、平台登录账号(手机号)匹配多个账号、该手机号对应账号不是平台用户、该手机号对应账号已禁用、行格式错误。任务级失败原因 MUST 覆盖:文件格式或表头不符、编码无法解码、文件无数据行。

Scenario: 导入包含有效和无效行

  • WHEN 店铺负责人 CSV 导入同时包含可成功换绑或清空的行与校验失败的行
  • THEN 系统更新每个有效行、保留失败行原值,并返回逐行行号、失败原因及成功与失败汇总

Scenario: 表头或编码不符整批失败

  • WHEN 上传文件的表头与固定列序不一致(含仍使用旧表头「业务员登录账号」),或文件既非合法 UTF-8 又无法按既有 GBK 转换能力解码
  • THEN 系统不处理任何行、不产生行明细,并返回明确的任务级失败原因

Scenario: 换绑与清空字段互斥

  • WHEN 某行操作类型为换绑但平台登录账号为空,或操作类型为清空但填写了平台登录账号
  • THEN 该行失败并保留店铺原负责人,其他行照常处理

Scenario: 手机号唯一命中启用平台账号

  • WHEN 某换绑行填写的手机号唯一命中一个未删除且启用的平台账号
  • THEN 系统将目标店铺负责人更新为该账号,并按既有规则记录逐行结果与审计前后值

Scenario: 填写用户名或格式不合法的号码

  • WHEN 某换绑行的平台登录账号填写用户名或格式不合法的号码
  • THEN 该行以“平台登录账号请填写手机号,格式不正确”失败、不查询账号且保留原负责人

Scenario: 手机号不存在、多匹配或账号类型状态不符

  • WHEN 某换绑行的手机号没有命中账号、命中多个账号、唯一账号不是平台用户或唯一账号已禁用
  • THEN 该行分别返回“平台登录账号(手机号)不存在”“平台登录账号(手机号)匹配多个账号”“该手机号对应账号不是平台用户”或“该手机号对应账号已禁用”,并保留原负责人