user(); $query = $user->withdraws()->filter($request->all()); $list = $query->paginate($request->input('per_page')); return $this->json(WithdrawResource::collection($list)); } public function show($id) { $user = auth('api')->user(); $info = $user->withdraws()->findOrFail($id); return $this->json(WithdrawResource::make($info)); } public function store(Request $request) { $user = auth('api')->user(); $request->validate([ 'amount' => 'numeric|gt:0|lte:' . floatval($user->balance) ], [ 'amount.gt' => '提现数量必须大于 0', 'amount.lte' => '余额不足' ]); $amount = $request->input('amount'); try { DB::beginTransaction(); $info = WithdrawService::make()->apply($user, $amount); DB::commit(); return $this->success('申请成功', WithdrawResource::make($info)); } catch (\Exception $e) { DB::rollBack(); return $this->error($e->getMessage()); } } public function cancel($id) { $user = auth('api')->user(); $info = $user->withdraws()->findOrFail($id); try { DB::beginTransaction(); WithdrawService::make()->cancel($info); DB::commit(); return $this->success('取消成功'); } catch (\Exception $e) { DB::rollBack(); return $this->error($e->getMessage()); } } }