From bd6e0338b898b6a7b2a161660ce98d505bbeca5d Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Sat, 29 Oct 2022 11:25:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E6=89=A3=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Remote/UserController.php | 21 ++++++++++++++++++- routes/remote.php | 4 ++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Remote/UserController.php b/app/Http/Controllers/Remote/UserController.php index a395d6b..4aa2b6b 100644 --- a/app/Http/Controllers/Remote/UserController.php +++ b/app/Http/Controllers/Remote/UserController.php @@ -5,8 +5,9 @@ use App\Models\Host; use App\Models\User; use App\Models\Transaction; -// use Illuminate\Http\Request; +use Illuminate\Http\Request; use App\Http\Controllers\Controller; +use App\Exceptions\User\BalanceNotEnoughException; class UserController extends Controller { @@ -29,4 +30,22 @@ public function hosts(User $user) return $this->success($hosts); } + + public function reduce(Request $request, User $user) + { + $this->validate($request, [ + 'amount' => 'required|numeric|min:0.01|max:10000', + 'description' => 'required|string', + ]); + + $module = auth('remote')->user(); + + $transaction = new Transaction(); + + try { + $transaction->reduceAmountModuleFail($user->id, $module->id, $request->amount, $request->description); + } catch (BalanceNotEnoughException) { + return $this->error('余额不足'); + } + } } diff --git a/routes/remote.php b/routes/remote.php index 4d5abc6..d3e73b2 100644 --- a/routes/remote.php +++ b/routes/remote.php @@ -92,6 +92,10 @@ 'uses' => '\App\Http\Controllers\Remote\UserController@show' ]); +$router->post('users/{user}/reduce', [ + 'uses' => '\App\Http\Controllers\Remote\UserController@reduce' +]); + $router->get('users/{user}/hosts', [ 'uses' => '\App\Http\Controllers\Remote\UserController@hosts' ]);