diff --git a/BACKEND/Modules/Admin/app/Http/Controllers/ProfileController.php b/BACKEND/Modules/Admin/app/Http/Controllers/ProfileController.php index 9e7b90e..82909b9 100644 --- a/BACKEND/Modules/Admin/app/Http/Controllers/ProfileController.php +++ b/BACKEND/Modules/Admin/app/Http/Controllers/ProfileController.php @@ -28,18 +28,39 @@ class ProfileController extends Controller $this->jiraService = $jiraService; } - public function getProfilesData() + public function getProfilesData(Request $request) { $user = auth('admins')->user(); $userEmail = $user->email; $projects = $this->jiraService->getAllProjects(); - $userCriterias = UserCriteria::with([ - 'sprint', // Join với bảng sprint - 'criteria', // Join với bảng criteria - ])->where('user_email', $userEmail)->get(); + $startDate = $request->input('fromDate'); + $endDate = $request->input('toDate'); + $userCriterias = UserCriteria::with([ + 'sprint' => function ($query) use ($startDate, $endDate) { + if ($startDate && $endDate) { + $query->whereBetween('complete_date', [$startDate, $endDate]); + } elseif ($startDate) { + $query->where('complete_date', '>=', $startDate); + } elseif ($endDate) { + $query->where('complete_date', '<=', $endDate); + } + }, + 'criteria', + ])->where('user_email', $userEmail) + ->whereHas('sprint', function ($query) use ($startDate, $endDate) { + if ($startDate && $endDate) { + $query->whereBetween('complete_date', [$startDate, $endDate]); + } elseif ($startDate) { + $query->where('complete_date', '>=', $startDate); + } elseif ($endDate) { + $query->where('complete_date', '<=', $endDate); + } + }) + ->get(); + // dd($userCriterias); // Xử lý dữ liệu thành cấu trúc mong muốn $projectsData = $userCriterias->groupBy('sprint.project_id')->map(function ($userCriteriasByProject, $projectId) use ($projects) { $result = self::getProjectById($projects, $projectId); @@ -49,6 +70,7 @@ class ProfileController extends Controller $sprint = $userCriteriasBySprint->first()->sprint; return [ 'name' => $sprint->name, + 'complete_date' => $sprint->complete_date ?? '', 'criterias' => $userCriteriasBySprint->map(function ($userCriteria) { $criteria = $userCriteria->criteria; return [ diff --git a/BACKEND/Modules/Admin/app/Http/Controllers/TechnicalController.php b/BACKEND/Modules/Admin/app/Http/Controllers/TechnicalController.php index 2c14e01..af43dac 100644 --- a/BACKEND/Modules/Admin/app/Http/Controllers/TechnicalController.php +++ b/BACKEND/Modules/Admin/app/Http/Controllers/TechnicalController.php @@ -10,6 +10,7 @@ use App\Traits\AnalyzeData; use App\Traits\HasFilterRequest; use App\Traits\HasOrderByRequest; use App\Traits\HasSearchRequest; +use Modules\Admin\app\Models\Admin; class TechnicalController extends Controller { @@ -18,6 +19,12 @@ class TechnicalController extends Controller use HasSearchRequest; use AnalyzeData; + public function getAllUsers() + { + $users = Admin::where('permission', 'like', '%staff%')->get()->toArray(); + return AbstractController::ResultSuccess($users); + } + public function getAllTechnical(Request $request) { $technicals = new Technical; diff --git a/BACKEND/Modules/Admin/routes/api.php b/BACKEND/Modules/Admin/routes/api.php index 0961b75..d36b3fe 100755 --- a/BACKEND/Modules/Admin/routes/api.php +++ b/BACKEND/Modules/Admin/routes/api.php @@ -178,6 +178,7 @@ Route::middleware('api') Route::group([ 'prefix' => 'technical', ], function () { + Route::get('/get-all-user', [TechnicalController::class, 'getAllUsers'])->middleware('check.permission:admin'); Route::get('/get-all', [TechnicalController::class, 'getAllTechnical']); Route::post('/create', [TechnicalController::class, 'createTechnical'])->middleware('check.permission:admin'); Route::get('/delete', [TechnicalController::class, 'deleteTechnical'])->middleware('check.permission:admin');