104 lines
2.9 KiB
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);
|
|
}
|
|
}
|
|
}
|