AdminUserController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Models\User;
  6. use App\Models\Message;
  7. use App\Models\MessageComment;
  8. use App\Models\Review;
  9. use App\Models\Wishlist;
  10. use App\Models\Booking;
  11. use App\Mail\Websitemail;
  12. class AdminUserController extends Controller
  13. {
  14. public function users()
  15. {
  16. $users = User::get();
  17. return view('admin.user.users', compact('users'));
  18. }
  19. public function user_create()
  20. {
  21. return view('admin.user.user_create');
  22. }
  23. public function user_create_submit(Request $request)
  24. {
  25. $request->validate([
  26. 'name' => 'required',
  27. 'email' => 'required|email|unique:users',
  28. 'phone' => 'required',
  29. 'country' => 'required',
  30. 'address' => 'required',
  31. 'state' => 'required',
  32. 'city' => 'required',
  33. 'zip' => 'required',
  34. 'password' => 'required',
  35. 'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
  36. ]);
  37. $final_name = 'user_'.time().'.'.$request->photo->extension();
  38. $request->photo->move(public_path('uploads'), $final_name);
  39. $obj = new User();
  40. $obj->name = $request->name;
  41. $obj->email = $request->email;
  42. $obj->phone = $request->phone;
  43. $obj->country = $request->country;
  44. $obj->address = $request->address;
  45. $obj->state = $request->state;
  46. $obj->city = $request->city;
  47. $obj->zip = $request->zip;
  48. $obj->password = bcrypt($request->password);
  49. $obj->photo = $final_name;
  50. $obj->status = $request->status;
  51. $obj->save();
  52. return redirect()->route('admin_users')->with('success','User is Created Successfully');
  53. }
  54. public function user_edit($id)
  55. {
  56. $user = User::where('id',$id)->first();
  57. return view('admin.user.user_edit',compact('user'));
  58. }
  59. public function user_edit_submit(Request $request, $id)
  60. {
  61. $obj = User::where('id',$id)->first();
  62. $request->validate([
  63. 'name' => 'required',
  64. 'email' => 'required|email|unique:users,email,'.$id,
  65. 'phone' => 'required',
  66. 'country' => 'required',
  67. 'address' => 'required',
  68. 'state' => 'required',
  69. 'city' => 'required',
  70. 'zip' => 'required',
  71. ]);
  72. if($request->hasFile('photo'))
  73. {
  74. $request->validate([
  75. 'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
  76. ]);
  77. unlink(public_path('uploads/'.$obj->photo));
  78. $final_name = 'user_'.time().'.'.$request->photo->extension();
  79. $request->photo->move(public_path('uploads'), $final_name);
  80. $obj->photo = $final_name;
  81. }
  82. if($request->password != '')
  83. {
  84. $obj->password = bcrypt($request->password);
  85. }
  86. $obj->name = $request->name;
  87. $obj->email = $request->email;
  88. $obj->phone = $request->phone;
  89. $obj->country = $request->country;
  90. $obj->address = $request->address;
  91. $obj->state = $request->state;
  92. $obj->city = $request->city;
  93. $obj->zip = $request->zip;
  94. $obj->status = $request->status;
  95. $obj->save();
  96. return redirect()->route('admin_users')->with('success','User is Updated Successfully');
  97. }
  98. public function user_delete($id)
  99. {
  100. $total = Review::where('user_id',$id)->count();
  101. if($total > 0)
  102. {
  103. return redirect()->back()->with('error','User can not be deleted because it has some reviews');
  104. }
  105. $total1 = Message::where('user_id',$id)->count();
  106. if($total1 > 0) {
  107. return redirect()->back()->with('error','User can not be deleted because it has some messages');
  108. }
  109. $total2 = Wishlist::where('user_id',$id)->count();
  110. if($total2 > 0) {
  111. return redirect()->back()->with('error','User can not be deleted because it has some wishlist');
  112. }
  113. $total3 = Booking::where('user_id',$id)->count();
  114. if($total3 > 0) {
  115. return redirect()->back()->with('error','User can not be deleted because it has some bookings');
  116. }
  117. $obj = User::where('id',$id)->first();
  118. unlink(public_path('uploads/'.$obj->photo));
  119. $obj->delete();
  120. return redirect()->route('admin_users')->with('success','User is Deleted Successfully');
  121. }
  122. public function message()
  123. {
  124. $messages = Message::with('user')->get();
  125. return view('admin.user.message', compact('messages'));
  126. }
  127. public function message_detail($id)
  128. {
  129. $message_comments = MessageComment::where('message_id',$id)->orderBy('id','desc')->get();
  130. return view('admin.user.message_detail', compact('message_comments','id'));
  131. }
  132. public function message_submit(Request $request,$id)
  133. {
  134. $obj = new MessageComment();
  135. $obj->message_id = $id;
  136. $obj->sender_id = 1;
  137. $obj->type = 'Admin';
  138. $obj->comment = $request->comment;
  139. $obj->save();
  140. $message_link = route('user_message');
  141. $subject = 'Admin Message';
  142. $message = 'Please click on the following link to see the new message from the admin:<br><a href="'.$message_link.'">Click Here</a>';
  143. $message_data = Message::with('user')->where('id',$id)->first();
  144. $user_email = $message_data->user->email;
  145. \Mail::to($user_email)->send(new Websitemail($subject,$message));
  146. return redirect()->back()->with('success', 'Comment added successfully');
  147. }
  148. }