whoami7 - Manager
:
/
home
/
dataiclx
/
datasyspk.com
/
app
/
Http
/
Controllers
/
Upload File:
files >> /home/dataiclx/datasyspk.com/app/Http/Controllers/ConversationController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Conversation; use App\BusinessSetting; use App\Message; use Auth; use App\Product; use Mail; use App\Mail\ConversationMailManager; class ConversationController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if (BusinessSetting::where('type', 'conversation_system')->first()->value == 1) { $conversations = Conversation::where('sender_id', Auth::user()->id)->orWhere('receiver_id', Auth::user()->id)->orderBy('created_at', 'desc')->paginate(5); return view('frontend.user.conversations.index', compact('conversations')); } else { flash(translate('Conversation is disabled at this moment'))->warning(); return back(); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function admin_index() { if (BusinessSetting::where('type', 'conversation_system')->first()->value == 1) { $conversations = Conversation::orderBy('created_at', 'desc')->get(); return view('backend.support.conversations.index', compact('conversations')); } else { flash(translate('Conversation is disabled at this moment'))->warning(); return back(); } } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $user_type = Product::findOrFail($request->product_id)->user->user_type; // dd($request->all()); $conversation = new Conversation; $conversation->sender_id = Auth::user()->id; $conversation->receiver_id = Product::findOrFail($request->product_id)->user->id; $conversation->title = $request->title; if($request->has('inquiryCheck')) { if($request->has('cartCheck') && $request->cartCheck == 1) { $idss = json_decode($request->prodId); $quanss = json_decode($request->prod_quantity); $ids = []; $quans = []; foreach($idss as $id) { $ids[] = (string)$id; } foreach($quanss as $quan) { $quans[] = (string)$quan; } // dd(json_encode($ids)); } else { $ids = []; $quans = []; $ids[] = $request->product_id; $quans[] = $request->prod_quantity; } $request->validate([ 'uname' => 'required|max:255', 'email' => 'required|email:rfc,dns', 'cname' => 'max:255', 'tel' => 'max:20', 'message' => 'required', ]); // dd($quans); $conversation->product_ids = json_encode($ids); $conversation->quantity = json_encode($quans); $conversation->name = $request->uname; $conversation->email = $request->email; $conversation->company_name = $request->cname; $conversation->telephone = $request->tel; $conversation->inquiry = 1; } if($conversation->save()) { $message = new Message; $message->conversation_id = $conversation->id; $message->user_id = Auth::user()->id; $message->message = ($request->has('inquiryCheck') && $request->inquiryCheck == 1) ? $request->prodslug.' '.$request->message : $request->message; if ($message->save()) { $this->send_message_to_seller($conversation, $message, $user_type); } } flash(translate('Message has been send to seller'))->success(); return back(); } public function send_message_to_seller($conversation, $message, $user_type) { $array['view'] = 'emails.conversation'; $array['subject'] = 'Sender:- '.Auth::user()->name; $array['from'] = env('MAIL_FROM_ADDRESS'); $array['content'] = 'Hi! You recieved a message from '.Auth::user()->name.'.'; $array['sender'] = Auth::user()->name; if($user_type == 'admin') { $array['link'] = route('conversations.admin_show', encrypt($conversation->id)); } else { $array['link'] = route('conversations.show', encrypt($conversation->id)); } $array['details'] = $message->message; try { Mail::to($conversation->receiver->email)->queue(new ConversationMailManager($array)); } catch (\Exception $e) { //dd($e->getMessage()); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $conversation = Conversation::findOrFail(decrypt($id)); if ($conversation->sender_id == Auth::user()->id) { $conversation->sender_viewed = 1; } elseif($conversation->receiver_id == Auth::user()->id) { $conversation->receiver_viewed = 1; } $conversation->save(); return view('frontend.user.conversations.show', compact('conversation')); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function refresh(Request $request) { $conversation = Conversation::findOrFail(decrypt($request->id)); if($conversation->sender_id == Auth::user()->id){ $conversation->sender_viewed = 1; $conversation->save(); } else{ $conversation->receiver_viewed = 1; $conversation->save(); } return view('frontend.partials.messages', compact('conversation')); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function admin_show($id) { $conversation = Conversation::findOrFail(decrypt($id)); if ($conversation->sender_id == Auth::user()->id) { $conversation->sender_viewed = 1; } elseif($conversation->receiver_id == Auth::user()->id) { $conversation->receiver_viewed = 1; } $conversation->save(); return view('backend.support.conversations.show', compact('conversation')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $conversation = Conversation::findOrFail(decrypt($id)); foreach ($conversation->messages as $key => $message) { $message->delete(); } if(Conversation::destroy(decrypt($id))){ flash(translate('Conversation has been deleted successfully'))->success(); return back(); } } }
Copyright ©2021 || Defacer Indonesia