This commit is contained in:
iVampireSP.com 2022-08-16 18:44:16 +08:00
parent 00029f75d5
commit 3d4b28a545
No known key found for this signature in database
GPG Key ID: 2F7B001CA27A8132
11 changed files with 197 additions and 45 deletions

View File

@ -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)
{

View File

@ -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)
{

View File

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

View File

@ -0,0 +1,66 @@
<?php
namespace App\Http\Controllers\Remote\Host;
use App\Http\Controllers\Controller;
use App\Models\Host;
use Illuminate\Http\Request;
class HostController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
Host::all();
}
/**
* 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 int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

View File

@ -3,16 +3,14 @@
namespace App\Jobs;
use App\Helpers\Lock;
use App\Models\Host;
use App\Models\User;
use App\Models\User\Host;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class HostCost implements ShouldQueue
{

View File

@ -3,15 +3,14 @@
namespace App\Jobs;
use App\Helpers\Lock;
use App\Models\Host;
use App\Models\User;
use App\Models\User\Host;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Cache;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Cache;
class UserSave implements ShouldQueue
{

81
app/Models/Host.php Normal file
View File

@ -0,0 +1,81 @@
<?php
namespace App\Models;
use App\Exceptions\CommonException;
use App\Models\Module\Module;
use App\Models\WorkOrder\WorkOrder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Host extends Model
{
use HasFactory, SoftDeletes;
protected $table = 'hosts';
protected $fillable = [
'name',
'module_id',
'user_id',
'price',
'configuration',
'status',
'managed_price',
];
protected $casts = [
'configuration' => '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
});
}
}

View File

@ -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
{

View File

@ -1,9 +1,6 @@
<?php
use App\Models\Module\Module;
use App\Models\Module\ProviderModule;
use App\Models\User;
use App\Models\User\Host;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

View File

@ -1,11 +1,9 @@
<?php
use App\Models\User;
use App\Models\User\Host;
use App\Models\Module\ProviderModule;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{

View File

@ -6,6 +6,7 @@
Route::name('remote.')->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);