���Root Mod By V1rus_Alfa
User / IP
:
216.73.216.158
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
npln
/
app
/
Livewire
/
Admin
/
Pages
/
Chat
/
Viewing: Show.php
<?php namespace App\Livewire\Admin\Pages\Chat; use ZipArchive; use Carbon\Carbon; use App\Models\Order; use App\Models\User; use Livewire\Component; use App\Utils\Paginate; use App\Models\Message; use App\Models\Factor; use App\Models\OrderLog; use Livewire\WithPagination; use App\Models\OrderStatus; use Livewire\WithFileUploads; use Masmerise\Toaster\Toastable; use App\Models\PaymentServices; use function App\Helpers\DateNow; use function App\Helpers\sendSms; use Illuminate\Support\Facades\Auth; use function App\Helpers\pathReturn; use Illuminate\Filesystem\Filesystem; use function App\Helpers\uploadFile; use function App\Helpers\destroyFile; use App\Helpers\HelperClass\GeneralUse; class Show extends Component { protected $listeners = ['refreshMulti' => '$refresh']; use Toastable; use WithFileUploads; use WithPagination; public $file; public $search = ''; public $message_id; public $msg; public $status; public $user; public $order_id; public $order; public $title; public $user_id; public $perPage = 15; public $perPageUser = 10; public function changeStatus() { Order::where('id', $this->order_id)->update([ 'status_services' => $this->status ]); OrderLog::create([ 'text' => $this->status, 'text_em' => $this->order->status_em_services, 'date_show' => DateNow('add_day_s', 0), 'type' => 'services', 'user_id' => Auth::user()->id, 'order_id' => $this->order_id, ]); if ($this->order->user && $this->order->user->device_token) { $title_push = 'وضعیت سفارش شما تغییر داده شد'; $body = 'وضعیت سفارش شماره ' . $this->order->number . ' به ' . $this->status . ' تغییر داده شد'; GeneralUse::send_push_massage([$this->order->user->device_token], $title_push, $body); } $this->success(' وضعیت سفارش با موفقیت تغییر گردید '); } public function close_order() { Order::where('id', $this->order_id)->update([ 'close' => 'admin' ]); $this->success('سفارش بسته شد'); return $this->dispatch('refreshMulti'); } public function delete_message($id) { Message::where('id', $id)->delete(); $this->success('پیام با موفقیت حذف گردید '); return $this->dispatch('refreshMulti'); } public function edit_message($item) { $this->msg = $item['msg']; $this->message_id = $item['id']; } public function loadMore() { $this->perPage += 10; } public function loadMoreUser() { $this->perPageUser += 10; } public function delete_order() { Order::where('id', $this->order_id)->delete(); Message::where('order_id', $this->order_id)->delete(); Factor::where('order_id', $this->order_id)->delete(); PaymentServices::where('order_id', $this->order_id)->delete(); OrderLog::where('order_id', $this->order_id)->delete(); return $this->dispatch('refreshMulti'); } public function set_id($item) { $this->msg = ''; $this->message_id = ''; $this->order_id = $item['order_id']; $this->order = Order::where('id', $this->order_id)->first(); $this->user_id = $this->order->user_id; $this->status = $this->order->status_services; if ($item['sender_id']) { $this->user = User::where('id', $item['sender_id'])->first(); } else { $this->user = User::where('id', $item['receptor'])->first(); } $this->perPage = 15; $this->dispatch('scrollDown'); } public function updatedfile() { $this->validate([ 'file.*' => 'mimes:heic,jpeg,jpg,png,pdf,xlsx,xls,txt,docx,mp4,ogg,mp3,dwg,dxf,zip|max:30720', ]); $this->dispatch('startLoading'); foreach ($this->file as $value) { $msg = uploadFile($value); $this->sendMessage('file', $msg); } } public function sendMessage($type = null, $value = null) { $msg = $this->msg; $mims = 'text'; if ($value) { $msg = $value; } if ($type != 'text') { $explode = explode('.', env('FILE_URL') . $msg); if (count($explode) > 0) { $mims = $explode[count($explode) - 1]; } } if ($msg) { if ($this->message_id) { Message::where('id', $this->message_id)->update([ 'msg' => $msg, 'date_show' => DateNow('add_day_s', 0), ]); $this->message_id = ''; } else { $message = Message::create([ 'msg' => $msg, 'type' => $type, 'mims' => $mims, 'date_show' => DateNow('add_day_s', 0), 'status' => 'admin', 'class' => 'order', 'sender_id' => Auth::user()->id, 'receptor_id' => $this->user_id, 'order_id' => $this->order_id ]); } $this->msg = ''; if ($this->order->user && $this->order->user->device_token) { $title = 'پیام جدید'; $body = 'شما یک پیام جدید در سفارش شماره ' . $this->order->number . ' دارید '; GeneralUse::send_push_massage([$this->order->user->device_token], $title, $body); } $this->dispatch('endLoading'); } } public function render() { $messages = []; if ($this->user_id) { $messages = Message::where('class', 'order')->where('order_id', $this->order_id)->latest()->paginate($this->perPage); $messages = $messages->setCollection($messages->getCollection()->reverse()); Message::where('class', 'order')->where('status', 'user')->where('order_id', $this->order_id)->where(function ($q) { $q->where(function ($a) { $a->where('sender_id', $this->user_id); })->orWhere(function ($b) { $b->Where('receptor_id', $this->user_id); }); })->update([ 'seen' => 'yes' ]); } $users = Message::where('class', 'order')->has('order') ->where( 'created_at', '>=', Carbon::now()->subDays(60)->toDateTimeString() ) ->when($this->search, function ($q) { $q->whereHas('sender', function ($q) { $q->where('first_name', 'like', '%' . $this->search . '%')->orWhere('last_name', 'like', '%' . $this->search . '%')->orWhere('mobile', 'like', '%' . $this->search . '%'); }); }) ->when(auth()->user()->can('manager_order'), function ($q) { $q->whereHas('order', function ($q) { $q->where('services_id', auth()->user()->parent); }); }) ->when(auth()->user()->can('manager_order'), function ($q) { $q->whereHas('order', function ($q) { $q->where('services_id', auth()->user()->id); }); }) ->orderBy('messages.id', 'desc') ->get() ->unique('order_id') ->toArray(); $users = Paginate::paginate($users, $this->perPageUser); $all_status = OrderStatus::orderby('order_sort', 'asc')->where('order_dashboard', 'true')->get(); $data = ['users' => $users, 'all_status' => $all_status, 'messages' => $messages]; return view('livewire.admin.pages.chat.show', $data)->layoutData(['page_name' => 'chat_message']); } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa