Files
ai-showcase-platform/app/api/admin/users/list/route.ts

51 lines
1.3 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { UserService } from '@/lib/services/database-service'
const userService = new UserService()
export async function GET(request: NextRequest) {
try {
// 獲取所有用戶(包括不同狀態)
const sql = `
SELECT id, name, email, department, role, status, created_at, last_login
FROM users
ORDER BY name ASC
`;
const users = await userService.query(sql);
// 為每個用戶獲取統計數據
const usersWithStats = await Promise.all(
users.map(async (user) => {
const stats = await userService.getUserAppAndReviewStats(user.id);
return {
id: user.id,
name: user.name,
email: user.email,
department: user.department,
role: user.role,
status: user.status,
createdAt: user.created_at,
lastLogin: user.last_login,
appCount: stats.appCount,
reviewCount: stats.reviewCount
};
})
);
return NextResponse.json({
success: true,
data: {
users: usersWithStats
}
})
} catch (error) {
console.error('獲取用戶列表錯誤:', error)
return NextResponse.json(
{ success: false, error: '獲取用戶列表時發生錯誤' },
{ status: 500 }
)
}
}