2
0

UserController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Resources\UserResource;
  4. use App\Models\UserInfo;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Http\Response;
  7. class UserController extends Controller
  8. {
  9. /**
  10. * Display a listing of the resource.
  11. *
  12. * @return Response
  13. */
  14. public function index(Request $request)
  15. {
  16. //
  17. switch ($request->input('view')) {
  18. case 'key':
  19. $table = UserInfo::where('username', 'like', '%'.$request->input('key').'%')
  20. ->orWhere('nickname', 'like', '%'.$request->input('key').'%');
  21. break;
  22. case 'all':
  23. $table = UserInfo::where('id', '>', 0);
  24. break;
  25. }
  26. if ($request->has('search')) {
  27. $table = $table->where('nickname', 'like', '%'.$request->input('search').'%');
  28. }
  29. if ($request->has('role')) {
  30. $table = $table->whereJsonContains('role', $request->input('role'));
  31. }
  32. $count = $table->count();
  33. $table = $table->orderBy(
  34. $request->input('order', 'username'),
  35. $request->input('dir', 'desc')
  36. );
  37. $table = $table->skip($request->input('offset', 0))
  38. ->take($request->input('limit', 20));
  39. $result = $table->get();
  40. return $this->ok(['rows' => UserResource::collection($result), 'count' => $count]);
  41. }
  42. /**
  43. * Store a newly created resource in storage.
  44. *
  45. * @return Response
  46. */
  47. public function store(Request $request)
  48. {
  49. //
  50. }
  51. /**
  52. * Display the specified resource.
  53. *
  54. * @param int $id
  55. * @return Response
  56. */
  57. public function show($id)
  58. {
  59. //
  60. $user = UserInfo::where('userid', $id)->first();
  61. return $this->ok(new UserResource($user));
  62. }
  63. /**
  64. * Update the specified resource in storage.
  65. *
  66. * @param string $id
  67. * @return Response
  68. */
  69. public function update(Request $request, $id)
  70. {
  71. //
  72. $user = UserInfo::where('userid', $id)->first();
  73. if ($request->has('roles')) {
  74. $user->role = json_encode($request->input('roles'));
  75. } else {
  76. $user->nickname = $request->input('nickName');
  77. $user->avatar = $request->input('avatar');
  78. $user->email = $request->input('email');
  79. }
  80. $user->save();
  81. return $this->ok(new UserResource($user));
  82. }
  83. /**
  84. * Remove the specified resource from storage.
  85. *
  86. * @param int $id
  87. * @return Response
  88. */
  89. public function destroy($id)
  90. {
  91. //
  92. }
  93. }