Withdraws.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\User;
  5. use App\Models\UserWithdraw;
  6. use Illuminate\Http\Request;
  7. class Withdraws extends Controller
  8. {
  9. public function apply()
  10. {
  11. $req = request()->post();
  12. $this->validate(request(), [
  13. 'name|姓名' => 'required',
  14. 'account|账号' => 'required',
  15. ]);
  16. \DB::beginTransaction();
  17. try
  18. {
  19. $user = auth('api')->user();
  20. $user = User::where('user_id',$user['id'])->first()->toArray();
  21. $userWithdraw = new UserWithdraw();
  22. UserWithdraw::create([
  23. 'name' => $req['name'],
  24. 'account' => $req['account'],
  25. 'price' => $user['overage'],
  26. 'desc' => $req['desc'],
  27. ]);
  28. $userWithdraw->save();
  29. $user = User::find($user['id']);
  30. $user->overage = 0;
  31. $user->save();
  32. // 提交事务
  33. \DB::commit();
  34. }catch (\Exception $e) {
  35. \DB::rollBack();
  36. return out(null, 10001, '提现失败!' . $e->getMessage());
  37. }
  38. return out();
  39. }
  40. // 0-待审核 1-已通过 2-已驳回 -1 全部
  41. public function lists()
  42. {
  43. $req = request()->all();
  44. $builder = UserWithdraw::orderBy('id','desc');
  45. if(isset($req['status']) && $req['status'] != -1){
  46. $builder->where('status', $req['status']);
  47. }
  48. $data = $builder->paginate($req['per_page'] ?? 15);
  49. $total_num = $builder->sum('id');
  50. $custom = collect([
  51. 'total_num' => $total_num,
  52. ]);
  53. $data = $custom->merge($data);
  54. return out($data);
  55. }
  56. }