Files
junhong_cmp_fiber/openspec/changes/fix-august-iteration-export-and-password-hints/proposal.md
邹进 260fec7114
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
fix: 第1批 M1、M4~M6 登录密码统一规则与三类导出补列
- 七个设置登录密码入口统一 8~12 位、四类字符至少三类(1001/1016),修改密码与建店铺返回字段级提示
- 订单导出末列“操作人”、IoT 卡导出末列“套餐到期时间”、设备导出流量标 MB 并新增“设备合计(GB)”
- 历史导出任务按冻结表头识别新旧尾列,行宽不变
- OpenSpec Change fix-august-iteration-export-and-password-hints:10/12,5.3 前端同步与 5.4 测试部署导出验证待完成
2026-10-11 23:41:40 +09:00

2.8 KiB
Raw Blame History

Why

8-9 月迭代中的 4 个优化项原排在第 2 批,2026-10-11 确定并入第 1 批一起交付:修改密码失败只提示“参数验证失败”(M1),且各入口密码规则不一(6~20、6~50、6~64、8~32 位)、只限长度无强度要求;订单导出缺“操作人”(M4,运营清单 B-1);IoT 卡导出缺“套餐到期时间”(M5,运营清单 21);设备导出流量未标单位、无 GB 合计(M6,运营清单 22)。内容沿用原 fix-august-iteration-follow-up-gaps 中已核实的方案,依据为《8-9月迭代排期安排》。

What Changes

  • BREAKING 所有设置登录密码的入口统一为:8~12 位、仅 ASCII 可见字符、大写/小写/数字/特殊符号四类至少三类。长度不符返回 1001,强度不足返回 1016。存量密码照常登录,不强制修改。
  • PUT /api/auth/password 校验失败消息改为“修改密码参数不合法:”加字段与规则,例如“新密码长度不能小于 8”;不回显密码。
  • 订单导出新任务在最后一列增加“操作人”,取订单冻结的 operator_name。
  • IoT 卡导出新任务在最后一列增加“套餐到期时间”,复用卡列表最终到期推算,只有精确推算时输出。
  • 设备导出新任务表头改为 ICCIDn使用的流量(MB)、“设备合计(MB)”,在最后一列新增“设备合计(GB)”(MB ÷ 1024,两位小数)。
  • 历史导出任务按冻结表头输出,不插入新列。

Capabilities

New Capabilities

无。

Modified Capabilities

  • identity-access:登录密码统一长度与强度规则;修改密码接口的字段级中文校验提示。
  • export-task:订单、IoT 卡、设备三类导出的新列、来源、单位与历史任务表头兼容。

Impact

  • 代码:pkg/validator(新增登录密码规则函数);设置密码的服务入口 internal/service/auth/service.go、internal/service/account/service.go、internal/application/shop/create.go、internal/service/enterprise/service.go、internal/domain/distribution/distribution.go;相关 DTO 校验标签(auth_dto.go、account_dto.go、shop_dto.go、enterprise_dto.go、agent_distribution_dto.go);internal/handler/auth/handler.go、internal/exporter/order_scene.go、internal/exporter/iot_card_scene.go(批量调用 packageexpiry.Query.ResolveBatch)、internal/exporter/device_scene.go。
  • 接口:七个设置密码入口的长度上限与强度规则变化,修改密码错误消息变化;三类导出新任务表头变化;重新生成接口文档。
  • 前端:后台建账号、改密码、新增企业、建店铺与 H5 代理注册页面的密码提示与前端校验需同步改为新规则;导出无需改动。
  • 无数据库迁移,不改 Redis 与第三方调用。