master #57

Merged
joseph merged 17 commits from master into dev 2024-09-21 10:34:09 +10:00
1 changed files with 29 additions and 16 deletions
Showing only changes of commit 8ebe9eb57f - Show all commits

View File

@ -33,22 +33,33 @@ class EvaluationController extends Controller
$projects = $this->jiraService->getAllProjects();
$query = UserCriteria::where('user_email', $userEmail);
// Date filter
if ($request->filled('fromDate')) {
$fromDate = Carbon::parse($request->input('fromDate'));
$query->where('created_at', '>=', $fromDate);
}
if ($request->filled('toDate')) {
$toDate = Carbon::parse($request->input('toDate'));
$query->where('created_at', '<=', $toDate);
}
// End query
$userCriterias = $query->with(['sprint', 'criteria'])->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);
return [
@ -57,12 +68,13 @@ class EvaluationController extends Controller
$sprint = $userCriteriasBySprint->first()->sprint;
return [
'name' => $sprint->name,
'complete_date' => $sprint->complete_date ?? '',
'criterias' => $userCriteriasBySprint->map(function ($userCriteria) {
$criteria = $userCriteria->criteria;
return [
'criteria' => $criteria->name,
'note' => $userCriteria->note ?? '',
'createdBy' => $userCriteria->created_by ?? '',
'createdBy' => $userCriteria->created_by ?? '', // Lấy tên user từ auth
'point' => $userCriteria->point ?? '',
];
})
@ -71,6 +83,7 @@ class EvaluationController extends Controller
];
})->values();
// Trả về kết quả
return AbstractController::ResultSuccess($projectsData);
}