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' ]);