Bổ sung api get all user

This commit is contained in:
Truong Vo 2024-09-20 15:52:33 +07:00
parent 1aeda710e1
commit e114d5b3ae
3 changed files with 35 additions and 5 deletions

View File

@ -28,18 +28,39 @@ class ProfileController extends Controller
$this->jiraService = $jiraService; $this->jiraService = $jiraService;
} }
public function getProfilesData() public function getProfilesData(Request $request)
{ {
$user = auth('admins')->user(); $user = auth('admins')->user();
$userEmail = $user->email; $userEmail = $user->email;
$projects = $this->jiraService->getAllProjects(); $projects = $this->jiraService->getAllProjects();
$userCriterias = UserCriteria::with([ $startDate = $request->input('fromDate');
'sprint', // Join với bảng sprint $endDate = $request->input('toDate');
'criteria', // Join với bảng criteria
])->where('user_email', $userEmail)->get();
$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 // 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) { $projectsData = $userCriterias->groupBy('sprint.project_id')->map(function ($userCriteriasByProject, $projectId) use ($projects) {
$result = self::getProjectById($projects, $projectId); $result = self::getProjectById($projects, $projectId);
@ -49,6 +70,7 @@ class ProfileController extends Controller
$sprint = $userCriteriasBySprint->first()->sprint; $sprint = $userCriteriasBySprint->first()->sprint;
return [ return [
'name' => $sprint->name, 'name' => $sprint->name,
'complete_date' => $sprint->complete_date ?? '',
'criterias' => $userCriteriasBySprint->map(function ($userCriteria) { 'criterias' => $userCriteriasBySprint->map(function ($userCriteria) {
$criteria = $userCriteria->criteria; $criteria = $userCriteria->criteria;
return [ return [

View File

@ -10,6 +10,7 @@ use App\Traits\AnalyzeData;
use App\Traits\HasFilterRequest; use App\Traits\HasFilterRequest;
use App\Traits\HasOrderByRequest; use App\Traits\HasOrderByRequest;
use App\Traits\HasSearchRequest; use App\Traits\HasSearchRequest;
use Modules\Admin\app\Models\Admin;
class TechnicalController extends Controller class TechnicalController extends Controller
{ {
@ -18,6 +19,12 @@ class TechnicalController extends Controller
use HasSearchRequest; use HasSearchRequest;
use AnalyzeData; use AnalyzeData;
public function getAllUsers()
{
$users = Admin::where('permission', 'like', '%staff%')->get()->toArray();
return AbstractController::ResultSuccess($users);
}
public function getAllTechnical(Request $request) public function getAllTechnical(Request $request)
{ {
$technicals = new Technical; $technicals = new Technical;

View File

@ -178,6 +178,7 @@ Route::middleware('api')
Route::group([ Route::group([
'prefix' => 'technical', 'prefix' => 'technical',
], function () { ], function () {
Route::get('/get-all-user', [TechnicalController::class, 'getAllUsers'])->middleware('check.permission:admin');
Route::get('/get-all', [TechnicalController::class, 'getAllTechnical']); Route::get('/get-all', [TechnicalController::class, 'getAllTechnical']);
Route::post('/create', [TechnicalController::class, 'createTechnical'])->middleware('check.permission:admin'); Route::post('/create', [TechnicalController::class, 'createTechnical'])->middleware('check.permission:admin');
Route::get('/delete', [TechnicalController::class, 'deleteTechnical'])->middleware('check.permission:admin'); Route::get('/delete', [TechnicalController::class, 'deleteTechnical'])->middleware('check.permission:admin');