weekreport/app/Http/Controllers/ZentaoController.php

104 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\ZentaoService;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
class ZentaoController extends Controller
{
protected ZentaoService $zentaoService;
public function __construct(ZentaoService $zentaoService)
{
$this->zentaoService = $zentaoService;
}
/**
* 获取禅道用户列表
*/
public function getUsers(): JsonResponse
{
try {
$users = $this->zentaoService->getUsers();
return response()->json([
'success' => true,
'users' => $users,
]);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => $e->getMessage(),
], 500);
}
}
/**
* 获取指定用户的本周任务和下周任务
*/
public function getTasks(Request $request): JsonResponse
{
$request->validate([
'account' => 'required|string',
'week_start' => 'nullable|date',
'week_end' => 'nullable|date',
]);
$account = $request->input('account');
$weekStart = $request->input('week_start');
$weekEnd = $request->input('week_end');
try {
// 获取本周完成的任务
$thisWeekTasks = $this->zentaoService->getWeeklyTasks($account, $weekStart, $weekEnd);
// 获取下周任务(未完成的任务)
$nextWeekTasks = $this->zentaoService->getNextWeekTasks($account, $weekStart);
return response()->json([
'success' => true,
'this_week_tasks' => $thisWeekTasks,
'next_week_tasks' => $nextWeekTasks,
'summary' => [
'this_week_count' => count($thisWeekTasks),
'next_week_count' => count($nextWeekTasks),
],
]);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => $e->getMessage(),
], 500);
}
}
/**
* 测试禅道数据库连接
*/
public function testConnection(): JsonResponse
{
try {
$connected = $this->zentaoService->testConnection();
if ($connected) {
return response()->json([
'success' => true,
'message' => '禅道数据库连接成功',
]);
} else {
return response()->json([
'success' => false,
'message' => '禅道数据库连接失败',
], 500);
}
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => '连接测试失败: ' . $e->getMessage(),
], 500);
}
}
}