fix: add appealing to active_count, limit check, export processing count
This commit is contained in:
@@ -35,7 +35,7 @@ router.get('/tickets', authenticate, requireRole('owner'), async (req, res) => {
|
||||
});
|
||||
|
||||
router.get('/reported-players', authenticate, requireRole('owner'), async (req, res) => {
|
||||
const rows = await query(`SELECT target_game_name as '被举报人游戏名', target_game_uid as '被举报人UID', COUNT(*) as '被举报次数', SUM(CASE WHEN status='resolved' THEN 1 ELSE 0 END) as '已处理', SUM(CASE WHEN status IN ('pending','processing','awaiting_info') THEN 1 ELSE 0 END) as '处理中', SUM(CASE WHEN status='rejected' THEN 1 ELSE 0 END) as '已驳回', MAX(created_at) as '最近举报时间', GROUP_CONCAT(reason SEPARATOR ' | ') as '常见原因' FROM tickets WHERE type='report' AND target_game_name IS NOT NULL AND target_game_name != '' GROUP BY target_game_name, target_game_uid ORDER BY COUNT(*) DESC`);
|
||||
const rows = await query(`SELECT target_game_name as '被举报人游戏名', target_game_uid as '被举报人UID', COUNT(*) as '被举报次数', SUM(CASE WHEN status='resolved' THEN 1 ELSE 0 END) as '已处理', SUM(CASE WHEN status IN ('pending','processing','awaiting_info','appealing') THEN 1 ELSE 0 END) as '处理中', SUM(CASE WHEN status='rejected' THEN 1 ELSE 0 END) as '已驳回', MAX(created_at) as '最近举报时间', GROUP_CONCAT(reason SEPARATOR ' | ') as '常见原因' FROM tickets WHERE type='report' AND target_game_name IS NOT NULL AND target_game_name != '' GROUP BY target_game_name, target_game_uid ORDER BY COUNT(*) DESC`);
|
||||
if (req.query.format === 'csv') {
|
||||
const { csv, filename } = toCSV(['被举报人游戏名','被举报人UID','被举报次数','已处理','处理中','已驳回','最近举报时间','常见原因'], rows, `reported_players_${new Date().toISOString().slice(0,10)}.csv`);
|
||||
res.setHeader('Content-Type','text/csv; charset=utf-8');
|
||||
|
||||
@@ -66,7 +66,7 @@ router.get('/unclaimed', authenticate, requireRole('owner','admin'), async (req,
|
||||
router.get('/reported-players', authenticate, requireRole('owner','admin'), async (req, res) => {
|
||||
const rows = await query(`SELECT target_game_name as name, target_game_uid as uid,
|
||||
COUNT(*) as total_reports,
|
||||
SUM(CASE WHEN status IN ('pending','processing','awaiting_info') THEN 1 ELSE 0 END) as active_count,
|
||||
SUM(CASE WHEN status IN ('pending','processing','awaiting_info','appealing') THEN 1 ELSE 0 END) as active_count,
|
||||
SUM(CASE WHEN status='resolved' THEN 1 ELSE 0 END) as resolved_count,
|
||||
SUM(CASE WHEN status='rejected' THEN 1 ELSE 0 END) as rejected_count,
|
||||
MAX(created_at) as last_report,
|
||||
@@ -124,7 +124,7 @@ router.post('/', optionalAuth, upload.array('files', 5), finalizeUpload, validat
|
||||
if (!description) return res.status(400).json({ error: '请填写详细申诉内容' });
|
||||
}
|
||||
|
||||
const countRow = await getRow("SELECT COUNT(*) as c FROM tickets WHERE (reporter_game_name = ? OR reporter_game_uid = ?) AND status IN ('pending','processing','awaiting_info')", [rgn, rgu]);
|
||||
const countRow = await getRow("SELECT COUNT(*) as c FROM tickets WHERE (reporter_game_name = ? OR reporter_game_uid = ?) AND status IN ('pending','processing','awaiting_info','appealing')", [rgn, rgu]);
|
||||
if (countRow.c >= 5) return res.status(400).json({ error: '您的待处理/处理中工单已达上限(5个),请等待已有工单处理完毕后再提交' });
|
||||
|
||||
const trackingToken = uuid();
|
||||
|
||||
Reference in New Issue
Block a user