fix: anonymous ticket submit 500 - undefined rgu param

Root cause: after UID internalization, anonymous form no longer
sends reporter_game_uid, so req.body.reporter_game_uid was
undefined. The countRow query (outside try/catch) passed undefined
to mysql2 which throws 'Bind parameters must not contain undefined'
- escaping to the global error middleware -> 500 '服务器内部错误'
for ALL anonymous ticket types (appeal/report/suggestion).

Fix: default rgn/rgu to '' when absent.
This commit is contained in:
2026-08-22 12:21:58 +08:00
parent bab584f31d
commit da26dd5f69

View File

@@ -147,7 +147,8 @@ router.post('/', ticketAnonLimiter, optionalAuth, upload.array('files', 5), fina
}
}
// 身份解析: 登录用户可选用自己绑定的任一身份(网易端/皮肤站); 匿名用表单值
let rgn = reporter_game_name, rgu = reporter_game_uid;
// 注: 匿名表单无 reporter_game_uid 字段(UID 已内置化), 必须兜底 '' 避免 mysql2 对 undefined 参数抛错
let rgn = reporter_game_name || '', rgu = reporter_game_uid || '';
if (req.user) {
if (reporter_game_name && reporter_game_name !== req.user.game_name) {
const ident = await getRow('SELECT id FROM user_identities WHERE user_id = ? AND game_name = ?', [req.user.id, reporter_game_name]);