diff --git a/app/Http/Controllers/Admin/HostController.php b/app/Http/Controllers/Admin/HostController.php index c43e90e..4a14572 100644 --- a/app/Http/Controllers/Admin/HostController.php +++ b/app/Http/Controllers/Admin/HostController.php @@ -6,7 +6,6 @@ use App\Models\Host; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\View\View; class HostController extends Controller @@ -14,9 +13,11 @@ class HostController extends Controller /** * Display a listing of the resource. * - * @return Response + * @param Host $host + * + * @return View */ - public function index(Host $host) + public function index(Host $host): View { $host->load('user'); $hosts = $host->paginate(100); @@ -24,46 +25,12 @@ public function index(Host $host) return view('admin.hosts.index', compact('hosts')); } - /** - * Show the form for creating a new resource. - * - * @return Response - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * - * @return Response - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - * - * @param \App\Models\Host $host - * - * @return Response - */ - public function show(Host $host) - { - // - } - /** * Show the form for editing the specified resource. * - * @param \App\Models\Host $host + * @param Host $host * - * @return Response + * @return View */ public function edit(Host $host): View { @@ -75,8 +42,8 @@ public function edit(Host $host): View /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\Host $host + * @param Request $request + * @param Host $host * * @return RedirectResponse */ @@ -99,7 +66,7 @@ public function update(Request $request, Host $host): RedirectResponse /** * Remove the specified resource from storage. * - * @param \App\Models\Host $host + * @param Host $host * * @return RedirectResponse */ diff --git a/app/Http/Controllers/Admin/ModuleController.php b/app/Http/Controllers/Admin/ModuleController.php index cb47bd2..7995dbc 100644 --- a/app/Http/Controllers/Admin/ModuleController.php +++ b/app/Http/Controllers/Admin/ModuleController.php @@ -15,9 +15,11 @@ class ModuleController extends Controller /** * Display a listing of the resource. * - * @return Response + * @param Module $module + * + * @return View */ - public function index(Module $module) + public function index(Module $module): View { $modules = $module->paginate(100); @@ -39,11 +41,11 @@ public function create(): View /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request + * @param Request $request * - * @return Response + * @return RedirectResponse */ - public function store(Request $request) + public function store(Request $request): RedirectResponse { // @@ -64,10 +66,19 @@ public function store(Request $request) } + private function rules(): array + { + return [ + 'id' => 'required|string|max:255', + 'name' => 'required|string|max:255', + 'url' => 'required|url', + ]; + } + /** * Display the specified resource. * - * @param \App\Models\Module $module + * @param Module $module * * @return View */ @@ -81,7 +92,7 @@ public function show(Module $module): View /** * Show the form for editing the specified resource. * - * @param \App\Models\Module $module + * @param Module $module * * @return Response */ @@ -95,8 +106,8 @@ public function edit(Module $module): View /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\Module $module + * @param Request $request + * @param Module $module * * @return Response */ @@ -131,11 +142,11 @@ public function update(Request $request, Module $module): RedirectResponse /** * Remove the specified resource from storage. * - * @param \App\Models\Module $module + * @param Module $module * - * @return Response + * @return RedirectResponse */ - public function destroy(Module $module) + public function destroy(Module $module): RedirectResponse { // @@ -143,13 +154,4 @@ public function destroy(Module $module) return redirect()->route('admin.modules.index')->with('success', '模块已删除。'); } - - private function rules(): array - { - return [ - 'id' => 'required|string|max:255', - 'name' => 'required|string|max:255', - 'url' => 'required|url', - ]; - } } diff --git a/app/Http/Controllers/Admin/ReplyController.php b/app/Http/Controllers/Admin/ReplyController.php deleted file mode 100644 index 1f3145e..0000000 --- a/app/Http/Controllers/Admin/ReplyController.php +++ /dev/null @@ -1,91 +0,0 @@ -with('success', '已完成所有更改。'); } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * - * @return Response - */ - public - function destroy($id) - { - // - } } diff --git a/app/Http/Controllers/Admin/WorkOrderController.php b/app/Http/Controllers/Admin/WorkOrderController.php index e14cfb4..6161cae 100644 --- a/app/Http/Controllers/Admin/WorkOrderController.php +++ b/app/Http/Controllers/Admin/WorkOrderController.php @@ -2,12 +2,12 @@ namespace App\Http\Controllers\Admin; +use App\Exceptions\CommonException; use App\Http\Controllers\Controller; use App\Models\WorkOrder\Reply; use App\Models\WorkOrder\WorkOrder; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\View\View; class WorkOrderController extends Controller @@ -23,34 +23,12 @@ public function index(WorkOrder $workOrder): View return view('admin.work-orders.index', compact('workOrders')); } - /** - * Show the form for creating a new resource. - * - * @return Response - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * - * @return Response - */ - public function store(Request $request) - { - // - } - /** * Display the specified resource. * - * @param \App\Models\WorkOrder\WorkOrder $workOrder + * @param WorkOrder $workOrder * - * @return Response + * @return View */ public function show(WorkOrder $workOrder): View { @@ -67,7 +45,7 @@ public function show(WorkOrder $workOrder): View /** * Show the form for editing the specified resource. * - * @param \App\Models\WorkOrder\WorkOrder $workOrder + * @param WorkOrder $workOrder * * @return View */ @@ -81,8 +59,8 @@ public function edit(WorkOrder $workOrder): View /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\WorkOrder\WorkOrder $workOrder + * @param Request $request + * @param WorkOrder $workOrder * * @return RedirectResponse */ @@ -102,14 +80,18 @@ public function update(Request $request, WorkOrder $workOrder): RedirectResponse /** * Remove the specified resource from storage. * - * @param \App\Models\WorkOrder\WorkOrder $workOrder + * @param WorkOrder $workOrder * - * @return Response + * @return RedirectResponse */ public function destroy(WorkOrder $workOrder): RedirectResponse { // - $workOrder->safeDelete(); + try { + $workOrder->safeDelete(); + } catch (CommonException $e) { + return back()->with('error', $e->getMessage()); + } return redirect()->route('admin.work-orders.index')->with('success', '正在排队删除工单。'); } diff --git a/app/Models/Host.php b/app/Models/Host.php index 885512a..9a13f5b 100644 --- a/app/Models/Host.php +++ b/app/Models/Host.php @@ -11,7 +11,6 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo as BelongsToAlias; use Illuminate\Database\Eloquent\Relations\HasMany as HasManyAlias; use Illuminate\Support\Facades\Cache; -use Illuminate\Support\Facades\Log; // use Illuminate\Database\Eloquent\SoftDeletes; @@ -220,41 +219,6 @@ public function cost($price = null, $auto = true): bool return true; } - public function costBalance($amount = 1): bool - { - $transaction = new Transaction(); - - $month = now()->month; - - $month_cache_key = 'user_' . $this->user_id . '_month_' . $month . '_hosts_balances'; - $hosts_drops = Cache::get($month_cache_key, []); - - // 统计 Host 消耗的 Drops - if (isset($hosts_drops[$this->id])) { - $hosts_drops[$this->id] += $amount; - } else { - $hosts_drops[$this->id] = $amount; - } - - Cache::put($month_cache_key, $hosts_drops, 604800); - - $left = $transaction->reduceHostAmount($this->user_id, $this->id, $this->module_id, $amount); - - $this->addLog('balance', $amount); - - - broadcast(new UserEvent($this->user_id, 'balances.amount.reduced', $this->user)); - - if ($left < 0) { - $this->update([ - 'status' => 'suspended', - ]); - } - - return true; - } - - public function addLog($type = 'drops', float $amount = 0) { if ($amount == 0) { @@ -331,4 +295,38 @@ public function addLog($type = 'drops', float $amount = 0) return true; } + + public function costBalance($amount = 1): bool + { + $transaction = new Transaction(); + + $month = now()->month; + + $month_cache_key = 'user_' . $this->user_id . '_month_' . $month . '_hosts_balances'; + $hosts_drops = Cache::get($month_cache_key, []); + + // 统计 Host 消耗的 Drops + if (isset($hosts_drops[$this->id])) { + $hosts_drops[$this->id] += $amount; + } else { + $hosts_drops[$this->id] = $amount; + } + + Cache::put($month_cache_key, $hosts_drops, 604800); + + $left = $transaction->reduceHostAmount($this->user_id, $this->id, $this->module_id, $amount); + + $this->addLog('balance', $amount); + + + broadcast(new UserEvent($this->user_id, 'balances.amount.reduced', $this->user)); + + if ($left < 0) { + $this->update([ + 'status' => 'suspended', + ]); + } + + return true; + } } diff --git a/routes/admin.php b/routes/admin.php index 5d54c00..d3ef540 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -3,7 +3,6 @@ use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\HostController; use App\Http\Controllers\Admin\ModuleController; -use App\Http\Controllers\Admin\ReplyController; use App\Http\Controllers\Admin\UserController; use App\Http\Controllers\Admin\WorkOrderController; use Illuminate\Support\Facades\Route; @@ -23,9 +22,8 @@ ], function () { Route::resource('users', UserController::class)->only(['index', 'show', 'edit', 'update']); Route::resource('modules', ModuleController::class); - Route::resource('hosts', HostController::class); - Route::resource('work-orders', WorkOrderController::class); - Route::resource('work-orders.replies', ReplyController::class); + Route::resource('hosts', HostController::class)->only(['index', 'edit', 'update', 'destroy']); + Route::resource('work-orders', WorkOrderController::class)->only(['index', 'show', 'edit', 'update', 'destroy']); Route::view('commands', 'admin.commands')->name('commands'); });