From a467b06ea70c6d7091acbcb4fb52fe89d3641f66 Mon Sep 17 00:00:00 2001 From: "ehsan.moradi" Date: Sun, 25 May 2025 14:43:24 +0330 Subject: [PATCH] fix --- app/Http/Controllers/MessageController.php | 53 ++++++++++------------ app/Http/Controllers/UserController.php | 33 ++++++-------- 2 files changed, 39 insertions(+), 47 deletions(-) diff --git a/app/Http/Controllers/MessageController.php b/app/Http/Controllers/MessageController.php index 063b3e13..7fa10e16 100644 --- a/app/Http/Controllers/MessageController.php +++ b/app/Http/Controllers/MessageController.php @@ -13,50 +13,45 @@ class MessageController extends Controller public function index(Request $request) { $User = auth('api')->user(); - $role = null; + $medical_center_id = null; - $User = auth('api')->user(); if ($User->hasRole('Supervisor') || $User->hasRole('User')) { $medical_center_id = $User->medical_center_id; - $role = 'Admin'; } - $remove = $User->id; - $Users = User::whereHas('messagesSent', function ($q) use ($User) { - $q->where('recipient_user_id', $User->id); - }) + + $Users = User::where(function ($query) use ($User) { + $query->whereHas('messagesSent', function ($q) use ($User) { + $q->where('recipient_user_id', $User->id); + }) ->orWhereHas('messagesReceived', function ($q) use ($User) { $q->where('sender_user_id', $User->id); - }) - ->when($medical_center_id, function ($query) use ($medical_center_id) { - $query->where('medical_center_id', $medical_center_id); - }) - ->when($role, function ($query) use ($role) { - $query->role($role); - }) - ->paginate(10); + }); + }) + ->when($medical_center_id, function ($query) use ($medical_center_id) { + $query->where('medical_center_id', $medical_center_id); + }) + ->paginate(10); foreach ($Users as $user) { - $UnReadReceivedMessages = Message::where('sender_user_id', $user->id)->where('recipient_user_id', $User->id)->where('status', 'UnRead')->get()->count(); - $user->unread_messages_count = $UnReadReceivedMessages; + $user->unread_messages_count = Message::where('sender_user_id', $user->id) + ->where('recipient_user_id', $User->id) + ->where('status', 'UnRead') + ->count(); - $MessagesCount = Message::where(function ($query) use ($user, $User) { - $query->where('sender_user_id', $user->id)->where('recipient_user_id', $User->id); + $user->messages_count = Message::where(function ($query) use ($user, $User) { + $query->where('sender_user_id', $user->id) + ->where('recipient_user_id', $User->id); })->orWhere(function ($query) use ($user, $User) { - $query->where('sender_user_id', $User->id)->where('recipient_user_id', $user->id); - })->get()->count(); - - $user->messages_count = $MessagesCount; + $query->where('sender_user_id', $User->id) + ->where('recipient_user_id', $user->id); + })->count(); } - // - // $Users = $Users->filter(function ($value, $key) use($remove){ - // return $value['id'] != $remove; - // }); - - return MessageResponse::data($Users); + return response()->json($Users); } + public function create() { diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index dd5cf03f..8189041b 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -251,27 +251,24 @@ class UserController extends Controller return MessageResponse::data( [ 'ReceivedMessages' => $ReceivedMessages , 'SentMessages' => $SentMessages ] ); } - public function searchUser( Request $request ) + public function searchUser(Request $request) { - $role = null; - $medical_center_id = null; + $User = auth('api')->user(); - $User = auth( 'api' )->user(); - if ( $User->hasRole( 'Supervisor' ) || $User->hasRole( 'User' ) ) { - $medical_center_id = $User->medical_center_id; - if ( $User->hasRole( 'Supervisor' ) ) { - $role = 'Admin'; - } + $query = User::query() + ->where('id', '<>', $User->id) + ->select('id', 'name') + ->where('name', 'LIKE', '%' . $request->name . '%'); + + // اگر نقش کاربر Supervisor یا User باشه → فقط Userهای همون مرکز درمانی رو بگرد + if ($User->hasRole('Supervisor') || $User->hasRole('User')) { + $query->where('medical_center_id', $User->medical_center_id) + ->role('User'); } - $users = User::where( 'id' , '<>' , $User->id )->select( 'id' , 'name' )->where( 'name' , 'LIKE' , '%' . $request->name . '%' ) - ->when( $medical_center_id , function ( $query ) use ( $medical_center_id ) { - $query->where( 'medical_center_id' , $medical_center_id ); - } ) - ->when( $role , function ( $query ) use ( $role ) { - $query->role( $role ); - } ) - ->get(); - return MessageResponse::data( $users ); + $users = $query->get(); + + return MessageResponse::data($users); } + }