Files
competition-website/app/service/admin.js
qubiaobiao 29ce734ffa fix(admin): getTeams「已激活」口径修正为「至少一名成员激活」
R90续三:需求方确认该筛选的设计目的是「确认小组是否已有人激活可以参赛」,
故 partial(部分激活)应归入已激活侧查看,旧口径「全员激活」与之不符。

- 行字段 activated:activatedCount === memberCount → activatedCount > 0
- 新增 allActivated 字段保留严格「全员激活」语义(不丢信息)
- summary 新增筛选后三态分布 filteredActivated / filteredPartial / filteredInactive
- 筛选逻辑零改动:语义收敛在行字段 activated 上,筛选仍按该字段判定
- 同步修正方法头 JSDoc 与筛选/summary 段注释

预期副作用:选中「已有成员激活」时 filteredMemberActivated 恒等于全集
memberActivated(inactive 组贡献 0)⇒ 原先「选手列表激活 4 人 / 小组视图 3 人」
的差额(= partial 组内已激活成员)不再出现。

生产已部署并复验:线上 33 项断言 ALL_PASS,activated=true 由 2 组变为 3 组
(2 全员 + 1 部分)、成员激活 3 → 4;服务器侧 MySQL 只读交叉复核一致。
2026-10-09 15:53:20 +08:00

109 KiB