From 3d4b28a545b5683cd9417d7e19fa8c65598fbf54 Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Tue, 16 Aug 2022 18:44:16 +0800 Subject: [PATCH] update . --- .../Controllers/Admin/Host/HostController.php | 30 ++++--- .../Admin/WorkOrder/WorkOrderController.php | 29 ++++--- .../Remote/Host/DropController.php | 2 +- .../Remote/Host/HostController.php | 66 +++++++++++++++ app/Jobs/HostCost.php | 8 +- app/Jobs/UserSave.php | 9 +-- app/Models/Host.php | 81 +++++++++++++++++++ app/Models/Workorder/Workorder.php | 7 +- ...2_08_13_051705_create_workorders_table.php | 3 - .../2022_08_13_083649_create_tasks_table.php | 6 +- routes/api/remote.php | 1 + 11 files changed, 197 insertions(+), 45 deletions(-) create mode 100644 app/Http/Controllers/Remote/Host/HostController.php create mode 100644 app/Models/Host.php diff --git a/app/Http/Controllers/Admin/Host/HostController.php b/app/Http/Controllers/Admin/Host/HostController.php index db33142..ece70b6 100644 --- a/app/Http/Controllers/Admin/Host/HostController.php +++ b/app/Http/Controllers/Admin/Host/HostController.php @@ -2,17 +2,19 @@ namespace App\Http\Controllers\Admin\Host; -use App\Models\User; -use App\Models\User\Host; -use Illuminate\Http\Request; use App\Http\Controllers\Controller; +use App\Models\Host; +use App\Models\User; +use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; +use Illuminate\Http\Response; class HostController extends Controller { /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return Response */ public function index(Request $request) { @@ -31,7 +33,8 @@ public function index(Request $request) * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * + * @return JsonResponse|Response */ public function store(Request $request, Host $host) { @@ -69,8 +72,9 @@ public function store(Request $request, Host $host) /** * Display the specified resource. * - * @param \App\Models\User\Host $host - * @return \Illuminate\Http\Response + * @param Host $host + * + * @return JsonResponse */ public function show(User $user, Host $host) { @@ -82,9 +86,10 @@ public function show(User $user, Host $host) /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\User\Host $host - * @return \Illuminate\Http\Response + * @param \Illuminate\Http\Request $request + * @param Host $host + * + * @return Response */ public function update(Request $request, Host $host) { @@ -94,8 +99,9 @@ public function update(Request $request, Host $host) /** * Remove the specified resource from storage. * - * @param \App\Models\User\Host $host - * @return \Illuminate\Http\Response + * @param Host $host + * + * @return Response */ public function destroy(Host $host) { diff --git a/app/Http/Controllers/Admin/WorkOrder/WorkOrderController.php b/app/Http/Controllers/Admin/WorkOrder/WorkOrderController.php index d2a2356..593dabf 100644 --- a/app/Http/Controllers/Admin/WorkOrder/WorkOrderController.php +++ b/app/Http/Controllers/Admin/WorkOrder/WorkOrderController.php @@ -3,8 +3,8 @@ namespace App\Http\Controllers\Admin\WorkOrder; use App\Models\User; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use App\Models\WorkOrder\Reply; use App\Models\WorkOrder\WorkOrder; use App\Http\Controllers\Controller; use Illuminate\Support\Arr; @@ -14,7 +14,7 @@ class WorkOrderController extends Controller /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return JsonResponse */ public function index(WorkOrder $work_order) { @@ -26,8 +26,9 @@ public function index(WorkOrder $work_order) /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @param Request $request + * + * @return JsonResponse */ public function store(Request $request) { @@ -54,8 +55,10 @@ public function store(Request $request) /** * Display the specified resource. * - * @param \App\Models\WorkOrder\WorkOrder $workorder - * @return \Illuminate\Http\Response + * @param User $user + * @param WorkOrder $work_order + * + * @return JsonResponse */ public function show(User $user, Workorder $work_order) { @@ -67,9 +70,11 @@ public function show(User $user, Workorder $work_order) /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\WorkOrder\WorkOrder $work_order - * @return \Illuminate\Http\Response + * @param Request $request + * @param User $user + * @param WorkOrder $work_order + * + * @return JsonResponse */ public function update(Request $request, User $user, WorkOrder $work_order) { @@ -85,8 +90,10 @@ public function update(Request $request, User $user, WorkOrder $work_order) /** * Remove the specified resource from storage. * - * @param \App\Models\WorkOrder\WorkOrder $work_order - * @return \Illuminate\Http\Response + * @param User $user + * @param WorkOrder $work_order + * + * @return JsonResponse */ public function destroy(User $user, WorkOrder $work_order) { diff --git a/app/Http/Controllers/Remote/Host/DropController.php b/app/Http/Controllers/Remote/Host/DropController.php index 5ba8d53..685b245 100644 --- a/app/Http/Controllers/Remote/Host/DropController.php +++ b/app/Http/Controllers/Remote/Host/DropController.php @@ -3,7 +3,7 @@ namespace App\Http\Controllers\Remote\Host; use App\Http\Controllers\Controller; -use App\Models\User\Host; +use App\Models\Host; use Illuminate\Http\Request; class DropController extends Controller diff --git a/app/Http/Controllers/Remote/Host/HostController.php b/app/Http/Controllers/Remote/Host/HostController.php new file mode 100644 index 0000000..428c802 --- /dev/null +++ b/app/Http/Controllers/Remote/Host/HostController.php @@ -0,0 +1,66 @@ + 'array' + ]; + + + // user + public function user() { + return $this->belongsTo(User::class); + } + + // module + public function module() { + return $this->belongsTo(Module::class); + } + + // workOrders + public function workOrders() { + return $this->hasMany(WorkOrder::class); + } + + // module 远程一对一 + // public function module() { + // return $this->hasOneThrough(Module::class, ProviderModule::class); + // } + + + // scope + public function scopeActive($query) { + return $query->where('status', 'running')->where('price', '!=', 0); + } + + // on create + protected static function boot() + { + parent::boot(); + + static::creating(function ($model) { + // if sanctum + if (auth('sanctum')->check()) { + $model->user_id = auth('sanctum')->id(); + } else { + // if user_id is null + // check user_id is exists + throw_if(!User::find($model->user_id), CommonException::class, 'user is not exists'); + } + + // $model->load('module'); + // $model->module->load(['provider', 'module']); + + // add to queue + + }); + } +} diff --git a/app/Models/Workorder/Workorder.php b/app/Models/Workorder/Workorder.php index d58beb7..c0eedd9 100644 --- a/app/Models/Workorder/Workorder.php +++ b/app/Models/Workorder/Workorder.php @@ -2,12 +2,11 @@ namespace App\Models\WorkOrder; -use App\Models\User\Host; -use Illuminate\Support\Arr; -use App\Models\Module\Module; use App\Exceptions\CommonException; -use Illuminate\Database\Eloquent\Model; +use App\Models\Host; +use App\Models\Module\Module; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Model; class WorkOrder extends Model { diff --git a/database/migrations/2022_08_13_051705_create_workorders_table.php b/database/migrations/2022_08_13_051705_create_workorders_table.php index f0e46cd..8bed6b6 100644 --- a/database/migrations/2022_08_13_051705_create_workorders_table.php +++ b/database/migrations/2022_08_13_051705_create_workorders_table.php @@ -1,9 +1,6 @@ middleware(['api'])->group(function () { Route::apiResource('modules', Remote\ModuleController::class)->only(['index']); Route::apiResource('servers', Remote\ServerController::class); + Route::apiResource('hosts', Remote\Host\HostController::class); Route::patch('hosts/{host}/drops', [Remote\Host\DropController::class, 'update']); Route::apiResource('hosts.tasks', Remote\Host\TaskController::class);