51 lines
1.3 KiB
TypeScript
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 }
|
|
)
|
|
}
|
|
}
|