优化代码

This commit is contained in:
iVampireSP.com 2022-11-19 14:04:42 +08:00
parent f107118db9
commit 1abe651bc9
No known key found for this signature in database
GPG Key ID: 2F7B001CA27A8132
7 changed files with 86 additions and 266 deletions

View File

@ -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
*/

View File

@ -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',
];
}
}

View File

@ -1,91 +0,0 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\WorkOrder\Reply;
use Illuminate\Http\Request;
class ReplyController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Models\WorkOrder\Reply $reply
*
* @return \Illuminate\Http\Response
*/
public function show(Reply $reply)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\WorkOrder\Reply $reply
*
* @return \Illuminate\Http\Response
*/
public function edit(Reply $reply)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\WorkOrder\Reply $reply
*
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Reply $reply)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\WorkOrder\Reply $reply
*
* @return \Illuminate\Http\Response
*/
public function destroy(Reply $reply)
{
//
}
}

View File

@ -11,7 +11,6 @@
use Carbon\Carbon;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
@ -20,9 +19,9 @@ class UserController extends Controller
/**
* Display a listing of the resource.
*
* @return Response
* @return View
*/
public function index()
public function index(): View
{
//
@ -31,28 +30,6 @@ public function index()
return view('admin.users.index', compact('users'));
}
/**
* 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.
*
@ -93,10 +70,10 @@ public function edit(User $user)
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param User $user
* @param Request $request
* @param User $user
*
* @return \Illuminate\Http\RedirectResponse|Response
* @return RedirectResponse
*/
public function update(Request $request, User $user)
{
@ -150,17 +127,4 @@ public function update(Request $request, User $user)
return back()->with('success', '已完成所有更改。');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
*
* @return Response
*/
public
function destroy($id)
{
//
}
}

View File

@ -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', '正在排队删除工单。');
}

View File

@ -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;
}
}

View File

@ -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');
});