UserController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\Admin\UserUpdate;
  4. use Illuminate\Http\Request;
  5. use App\Http\Controllers\Controller;
  6. use App\Models\Order;
  7. use App\Models\User;
  8. class UserController extends Controller
  9. {
  10. public function index (Request $request) {
  11. $current = $request->input('current') ? $request->input('current') : 1;
  12. $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10;
  13. $userModel = User::orderBy('created_at', 'DESC');
  14. if ($request->input('email')) {
  15. $userModel->where('email', $request->input('email'));
  16. }
  17. $total = $userModel->count();
  18. return response([
  19. 'data' => $userModel->forPage($current, $pageSize)
  20. ->get(),
  21. 'total' => $total
  22. ]);
  23. }
  24. public function update (UserUpdate $request) {
  25. $updateData = $request->only([
  26. 'email',
  27. 'password',
  28. 'transfer_enable',
  29. 'expired_at',
  30. 'banned',
  31. 'is_admin'
  32. ]);
  33. $user = User::find($request->input('id'));
  34. if (!$user) {
  35. abort(500, '用户不存在');
  36. }
  37. if (User::where('email', $updateData['email'])->first() && $user->email !== $updateData['email']) {
  38. abort(500, '邮箱已被使用');
  39. }
  40. if ($updateData['password']) {
  41. $updateData['password'] = password_hash($updateData['password'], PASSWORD_DEFAULT);
  42. } else {
  43. unset($updateData['password']);
  44. }
  45. $updateData['transfer_enable'] = $updateData['transfer_enable'] * 1073741824;
  46. if (!$user->update($updateData)) {
  47. abort(500, '保存失败');
  48. }
  49. return response([
  50. 'data' => true
  51. ]);
  52. }
  53. }