UserController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace App\Http\Controllers\Backend;
  3. use Illuminate\Http\Request;
  4. use App\Http\Requests;
  5. use App\Http\Controllers\Controller;
  6. use App\Models\User;
  7. use App\Repositories\UserRepositoryEloquent;
  8. use App\Http\Requests\Backend\User\CreateRequest;
  9. use App\Http\Requests\Backend\User\UpdateRequest;
  10. use Storage;
  11. use App\Services\ImageUploads;
  12. class UserController extends Controller
  13. {
  14. protected $user;
  15. /**
  16. * UserController constructor.
  17. * @param UserRepositoryEloquent $user
  18. */
  19. public function __construct(UserRepositoryEloquent $user)
  20. {
  21. $this->user = $user;
  22. }
  23. /**
  24. * Display a listing of the resource.
  25. *
  26. * @return \Illuminate\Http\Response
  27. */
  28. public function index()
  29. {
  30. $user = $this->user->all(['id', 'name', 'email', 'user_pic'])->toArray();
  31. return view("backend.user.index", compact('user'));
  32. }
  33. /**
  34. * Show the form for creating a new resource.
  35. *
  36. * @return \Illuminate\Http\Response
  37. */
  38. public function create()
  39. {
  40. return view('backend.user.create');
  41. }
  42. /**
  43. * @param CreateRequest $request
  44. * @param ImageUploads $imageUploads
  45. * @return $this
  46. */
  47. public function store(CreateRequest $request, ImageUploads $imageUploads)
  48. {
  49. if ($request->hasFile('user_pic')) {
  50. $file = $request->file('user_pic');
  51. $upload = $imageUploads->uploadAvatar($file);
  52. if (!$upload['status']) {
  53. return redirect()
  54. ->back()
  55. ->withErrors($upload['msg']);
  56. }
  57. }
  58. $avatarFileName = isset($upload['fileName']) ? $upload['fileName'] : '';
  59. if ($this->user->store($request->all(), $avatarFileName)) {
  60. return redirect('backend/user')
  61. ->with('success', '用户添加成功');
  62. }
  63. return redirect(route('backend.user.create'))->withErrors('系统异常,用户添加失败');
  64. }
  65. /**
  66. * Display the specified resource.
  67. *
  68. * @param int $id
  69. * @return \Illuminate\Http\Response
  70. */
  71. public function show($id)
  72. {
  73. //
  74. }
  75. /**
  76. * Show the form for editing the specified resource.
  77. *
  78. * @param int $id
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function edit($id)
  82. {
  83. $user = $this->user->find($id);
  84. return view("backend.user.edit", compact('user'));
  85. }
  86. /**
  87. * Update the specified resource in storage.
  88. *
  89. * @param \Illuminate\Http\Request $request
  90. * @param int $id
  91. * @return \Illuminate\Http\Response
  92. */
  93. public function update(UpdateRequest $request, $id, ImageUploads $imageUploads)
  94. {
  95. $user = $this->user->find($id);
  96. if ($request->hasFile('user_pic')) {
  97. $file = $request->file('user_pic');
  98. $upload = $imageUploads->uploadAvatar($file);
  99. if (!$upload['status']) {
  100. return redirect()
  101. ->back()
  102. ->withErrors($upload['msg']);
  103. }
  104. }
  105. $avatarFileName = isset($upload['fileName']) ? $upload['fileName'] : '';
  106. if ($this->user->updateUser($request->all(), $id, $avatarFileName)) {
  107. if ($avatarFileName != "" && $user['user_pic'] != "") {
  108. Storage::disk('upload')->delete('avatar/'.$user['user_pic']);
  109. }
  110. return redirect('backend/user')
  111. ->with('success', '用户修改成功');
  112. }
  113. return redirect()
  114. ->back()
  115. ->withErrors('用户修改失败');
  116. }
  117. /**
  118. * Remove the specified resource from storage.
  119. *
  120. * @param int $id
  121. * @return \Illuminate\Http\Response
  122. */
  123. public function destroy($id)
  124. {
  125. if ($this->user->delete($id)) {
  126. return response()->json(['status' => 0]);
  127. }
  128. return response()->json(['status' => 1]);
  129. }
  130. }