qubiaobiao
78f34ea9f5
R194+R195: 小组维度作品列表 / 下载名带小组编号 / includeIdle 口径 / deleteNews 连带清理附件
- service/admin.js
· getScores & getExamSubmissions 支持 includeIdle(默认隐藏「从未参赛」报名者),
成绩导出与批量打包强制全量(includeIdle:true),页面开关不影响导出内容
· 新增 getTeamFolders:小组编号口径统一走 resolveTeamLabels,⛔ 不直接展示 team_id
· 单个/批量下载包内名统一走 buildTeamDownloadName(中职高职 <小组编号>-<姓名>-<原名>)
· 🔴 deleteNews:原实现只 News.destroy 不删盘 ⇒ 每轮公示表测试留 4 个孤儿 xlsx。
改为「先删库后删盘」并连带清理 attachment_url 附件;新增 _removeNewsFile 三重安全闸门
(仅 /public/news/ 单段文件名 + 自产命名前缀 + path.resolve 不越界)与幂等语义,
公示表覆盖写复用同一入口(白名单收窄到 news_file_publicity_)
- lib/team_folder.js:新增 buildTeamDownloadName + MAX_DOWNLOAD_NAME=150(防 Windows 255 上限)
- controller/admin.js:透传 includeIdle;batchDownload 接住 bizCode=EMPTY(业务态返 404 非 500);
中职高职单个大题下载名改走 buildTeamDownloadName
验证:真接口探针 12/12(双清 + 幂等 + 三重闸门);变异 M1(不删盘)1 红、M2(去闸门)3 红,
还原后 12/12 复绿
2026-10-22 09:41:51 +08:00
..
2026-10-20 11:06:29 +08:00
2026-10-21 15:20:42 +08:00
2026-10-08 12:23:18 +08:00
2026-10-20 11:06:29 +08:00
2026-10-19 13:03:48 +08:00
2026-09-28 15:50:46 +08:00
2026-10-19 13:03:48 +08:00
2026-08-17 12:25:42 +08:00
2026-08-17 12:25:42 +08:00
2026-10-12 16:55:20 +08:00
2026-10-19 13:03:48 +08:00
2026-09-30 11:56:35 +08:00
2026-10-14 11:30:41 +08:00
2026-10-20 11:06:29 +08:00
2026-10-20 11:06:29 +08:00
2026-10-22 09:41:51 +08:00