UserController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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->get("view")) {
  17. case 'key':
  18. $table = UserInfo::where('username','like','%'.$request->get("key").'%')
  19. ->orWhere('nickname','like','%'.$request->get("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->get("search")."%");
  27. }
  28. if($request->has("role")){
  29. $table = $table->whereJsonContains('role',$request->get('role'));
  30. }
  31. $count = $table->count();
  32. $table = $table->orderBy($request->get('order','username'),
  33. $request->get('dir','desc'));
  34. $table = $table->skip($request->get("offset",0))
  35. ->take($request->get('limit',20));
  36. $result = $table->get();
  37. return $this->ok(['rows'=>UserResource::collection($result),'count'=>$count]);
  38. }
  39. /**
  40. * Store a newly created resource in storage.
  41. *
  42. * @param \Illuminate\Http\Request $request
  43. * @return \Illuminate\Http\Response
  44. */
  45. public function store(Request $request)
  46. {
  47. //
  48. }
  49. /**
  50. * Display the specified resource.
  51. *
  52. * @param int $id
  53. * @return \Illuminate\Http\Response
  54. */
  55. public function show($id)
  56. {
  57. //
  58. $user = UserInfo::where('userid',$id)->first();
  59. return $this->ok(new UserResource($user));
  60. }
  61. /**
  62. * Update the specified resource in storage.
  63. *
  64. * @param \Illuminate\Http\Request $request
  65. * @param string $id
  66. * @return \Illuminate\Http\Response
  67. */
  68. public function update(Request $request, $id)
  69. {
  70. //
  71. $user = UserInfo::where('userid',$id)->first();
  72. if($request->has('roles')){
  73. $user->role = json_encode($request->get('roles'));
  74. }else{
  75. $user->nickname = $request->get('nickName');
  76. $user->avatar = $request->get('avatar');
  77. $user->email = $request->get('email');
  78. }
  79. $user->save();
  80. return $this->ok(new UserResource($user));
  81. }
  82. /**
  83. * Remove the specified resource from storage.
  84. *
  85. * @param int $id
  86. * @return \Illuminate\Http\Response
  87. */
  88. public function destroy($id)
  89. {
  90. //
  91. }
  92. }