From ce8689d8f4fadb81ca9eb75955f92e62763644cc Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 10 Nov 2025 17:41:16 +0000 Subject: [PATCH] Refactor message sending and wallet display logic Co-authored-by: jehad --- app/Http/Controllers/MessageController.php | 34 ++++++++------- .../Controllers/admin/QustionController.php | 2 +- .../Controllers/user/WalletController.php | 42 +++++++++++-------- 3 files changed, 45 insertions(+), 33 deletions(-) diff --git a/app/Http/Controllers/MessageController.php b/app/Http/Controllers/MessageController.php index 6a3c6373..510cb090 100644 --- a/app/Http/Controllers/MessageController.php +++ b/app/Http/Controllers/MessageController.php @@ -35,25 +35,29 @@ public function privateMessages(User $user) public function sendMessage(Request $request) { - - - if(request()->has('file')){ - $filename = request('file')->store('chat'); - $message=Message::create([ - 'user_id' => request()->user()->id, - 'image' => $filename, - 'receiver_id' => request('receiver_id') + $validated = $request->validate([ + 'receiver_id' => ['required', 'exists:users,id'], + 'message' => ['nullable', 'string', 'required_without:file'], + 'file' => ['nullable', 'file'], + ]); + + if ($request->hasFile('file')) { + $filename = $request->file('file')->store('chat'); + $message = Message::create([ + 'user_id' => $request->user()->id, + 'image' => $filename, + 'receiver_id' => $validated['receiver_id'], + ]); + } else { + $message = auth()->user()->messages()->create([ + 'message' => $validated['message'], + 'receiver_id' => $validated['receiver_id'], ]); - }else{ - $message = auth()->user()->messages()->create(['message' => $request->message]); - } + broadcast(new MessageSent(auth()->user(), $message->load('user')))->toOthers(); - broadcast(new MessageSent(auth()->user(),$message->load('user')))->toOthers(); - - return response(['status'=>'Message sent successfully','message'=>$message]); - + return response(['status' => 'Message sent successfully', 'message' => $message]); } public function sendPrivateMessage(Request $request,User $user) diff --git a/app/Http/Controllers/admin/QustionController.php b/app/Http/Controllers/admin/QustionController.php index 35148d66..ef595a30 100644 --- a/app/Http/Controllers/admin/QustionController.php +++ b/app/Http/Controllers/admin/QustionController.php @@ -78,7 +78,7 @@ public function update(StorequestionRequest $request, $id) return redirect()->back()->with(['errorEdit'=>'لا تستطيع التعديل']); }else{ $qes->update($request->except(['_token'])); - return redirect()->route('admin.questions.index')->with(['successEdit'=>'تم التعديل بنجاح']); + return redirect()->route('admin.question.index')->with(['successEdit'=>'تم التعديل بنجاح']); } } diff --git a/app/Http/Controllers/user/WalletController.php b/app/Http/Controllers/user/WalletController.php index 08f6ab2e..ae6223ce 100644 --- a/app/Http/Controllers/user/WalletController.php +++ b/app/Http/Controllers/user/WalletController.php @@ -9,29 +9,37 @@ use App\Http\Controllers\Controller; use Bavix\Wallet\Models\Transaction; use Illuminate\Support\Facades\Auth; -use Illuminate\Database\Eloquent\Collection; - class WalletController extends Controller { public function index($bill_id=null){ - $user = Auth::id(); - $balance = DB::table('wallets')->where('holder_id', $user)->first()->balance; - $billPaper = null; - //To list out different financial operation - $trans = Transaction::where('wallet_id', $user)->get(); - - $loses = Transaction::where(['wallet_id' => $user, 'type' => 'withdraw'])->get()->sum('amount'); - $gains = Transaction::where(['wallet_id' => $user, 'type' => 'deposit'])->get()->sum('amount'); + $user = Auth::id(); + $billPaper = null; + $walletData = DB::table('wallets')->where('holder_id', $user)->first(); + $walletId = $walletData?->id; + $balance = $walletData?->balance ?? 0; + + $operations = $walletId + ? Transaction::where('wallet_id', $walletId)->get() + : collect(); + + $withdrawSum = $walletId + ? Transaction::where(['wallet_id' => $walletId, 'type' => 'withdraw'])->sum('amount') + : 0; - if($bill_id) + $depositSum = $walletId + ? Transaction::where(['wallet_id' => $walletId, 'type' => 'deposit'])->sum('amount') + : 0; + + if ($bill_id) { $billPaper = Payment_Bill::whereId($bill_id)->first(); - + } + return view('Front.User.wallet')->with([ - 'balance' => $balance, - 'loses' => abs($loses), - 'gains' => $gains, - 'operations' => $trans, - 'billPaper' => $billPaper, + 'balance' => $balance, + 'loses' => abs((float) $withdrawSum), + 'gains' => (float) $depositSum, + 'operations' => $operations, + 'billPaper' => $billPaper, ]); } }