2
0

UserController.php 2.8 KB

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