WithdrawController.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 WithdrawController 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('id',$user['id'])->first()->toArray();
  21. if($user['overage'] == 0){
  22. throw new \Exception('暂无可提现金额');
  23. }
  24. UserWithdraw::create([
  25. 'user_id' => $user['id'],
  26. 'name' => $req['name'],
  27. 'account' => $req['account'],
  28. 'price' => $user['overage'],
  29. 'desc' => $req['remark'] ?? '',
  30. ]);
  31. $user = User::find($user['id']);
  32. $user->overage = 0;
  33. $user->save();
  34. // 提交事务
  35. \DB::commit();
  36. }catch (\Exception $e) {
  37. \DB::rollBack();
  38. return out(null, 10001, '提现失败!' . $e->getMessage());
  39. }
  40. return out();
  41. }
  42. // 0-待审核 1-已通过 2-已驳回 -1 全部
  43. public function lists()
  44. {
  45. $req = request()->all();
  46. $builder = UserWithdraw::orderBy('id','desc');
  47. if(isset($req['status']) && $req['status'] != -1){
  48. $builder->where('status', $req['status']);
  49. }
  50. $data = $builder->paginate($req['per_page'] ?? 15);
  51. $total_num = $builder->sum('id');
  52. $custom = collect([
  53. 'total_num' => $total_num,
  54. ]);
  55. $data = $custom->merge($data);
  56. return out($data);
  57. }
  58. }