fix: 批量添加工工作组调试回显 + 完整验证写入
Deploy to Server / deploy (push) Successful in 1m37s

- 后端 /users/batch 返回每条成功记录的 groups_written/groups_expected/group_ids_out;失败记录返回 group_ids_seen/count
- 前端 submitBatch:console.log 打印发送 payload 和响应;弹窗汇总工作组实际/期望写入数;任何异常的行都显示后端实际解析出的 group_ids_out,失败行同时显示后端收到的 group_ids_seen
- 本地模拟后端 sql.js 写入 user_groups 100% 正确(场景A/B测试均 changes=1,聚合查询正确),此提交部署后通过控制台和弹窗即可精确定位问题在哪一跳(前端发送 vs 后端解析 vs 数据库写入)
- npm run build 通过
This commit is contained in:
Trae Assistant
2026-10-05 08:46:25 +08:00
parent f845d6b6a4
commit 49985a96ab
2 changed files with 36 additions and 6 deletions
+22 -3
View File
@@ -214,17 +214,36 @@ router.post('/batch', authMiddleware, (req: AuthRequest, res: Response) => {
try {
const info = insertUser.run(cls, name, volunteer_no, firstGroup);
const userId = Number(info.lastInsertRowid);
let ugCount = 0;
if (groups.length > 0) {
const insertUG = db.prepareCompat('INSERT OR IGNORE INTO user_groups (user_id, group_id) VALUES (?,?)');
for (const gid of groups) insertUG.run(userId, gid);
for (const gid of groups) {
const ugInfo = insertUG.run(userId, gid);
if ((ugInfo?.changes ?? 0) > 0) ugCount++;
}
}
success++;
results.push({ idx: i, ok: true, id: userId, item: raw });
results.push({
idx: i,
ok: true,
id: userId,
item: raw,
groups_written: ugCount,
groups_expected: groups.length,
group_ids_out: groups.slice(),
} as any);
} catch (e: any) {
failed++;
let err = e?.message || '添加失败';
if (String(err).includes('UNIQUE')) err = '该班级下已存在同名部员';
results.push({ idx: i, ok: false, error: err, item: raw });
results.push({
idx: i,
ok: false,
error: err,
item: raw,
group_ids_seen: Array.isArray(raw.group_ids) ? raw.group_ids : null,
group_ids_count: Array.isArray(raw.group_ids) ? raw.group_ids.length : 0,
} as any);
}
}
db.execCompat('COMMIT');