diff --git a/app/Http/Controllers/Remote/DropController.php b/app/Http/Controllers/Remote/DropController.php new file mode 100644 index 0000000..f0fbab6 --- /dev/null +++ b/app/Http/Controllers/Remote/DropController.php @@ -0,0 +1,11 @@ +validate([ + 'amount' => 'required|numeric|max:1000', + ]); + + + + return $this->success(); + } +} diff --git a/app/Http/Controllers/Remote/TaskController.php b/app/Http/Controllers/Remote/User/TaskController.php similarity index 98% rename from app/Http/Controllers/Remote/TaskController.php rename to app/Http/Controllers/Remote/User/TaskController.php index acaa8dc..e3ab720 100644 --- a/app/Http/Controllers/Remote/TaskController.php +++ b/app/Http/Controllers/Remote/User/TaskController.php @@ -1,6 +1,6 @@ + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/User/WorkOrderRequest.php b/app/Http/Requests/User/WorkOrderRequest.php new file mode 100644 index 0000000..cf22a4a --- /dev/null +++ b/app/Http/Requests/User/WorkOrderRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Jobs/HostCost.php b/app/Jobs/HostCost.php index e2426db..eee09dc 100644 --- a/app/Jobs/HostCost.php +++ b/app/Jobs/HostCost.php @@ -55,6 +55,10 @@ public function handle() } } + if ($host->managed_price) { + $host->price = $host->managed_price; + } + $this->user->drops -= $host->price; // update cache diff --git a/app/Models/User/Host.php b/app/Models/User/Host.php index e744102..e53687c 100644 --- a/app/Models/User/Host.php +++ b/app/Models/User/Host.php @@ -4,7 +4,8 @@ use App\Models\User; use App\Models\Module\Module; -use App\Models\Module\ProviderModule; +// use App\Models\Module\ProviderModule; +use Illuminate\Support\Facades\Cache; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -35,10 +36,10 @@ public function user() { return $this->belongsTo(User::class); } - // provider module - public function provider_module() { - return $this->belongsTo(ProviderModule::class); - } + // // provider module + // public function provider_module() { + // return $this->belongsTo(ProviderModule::class); + // } // workorders public function workorders() { @@ -46,17 +47,16 @@ public function workorders() { } // module 远程一对一 - public function module() { - return $this->hasOneThrough(Module::class, ProviderModule::class); - } + // 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() { diff --git a/database/migrations/2022_08_15_104635_add_managed_price_to_hosts_table.php b/database/migrations/2022_08_15_104635_add_managed_price_to_hosts_table.php index 8b1043e..bddf669 100644 --- a/database/migrations/2022_08_15_104635_add_managed_price_to_hosts_table.php +++ b/database/migrations/2022_08_15_104635_add_managed_price_to_hosts_table.php @@ -15,7 +15,7 @@ public function up() { Schema::table('hosts', function (Blueprint $table) { // - $table->boolean('managed_price')->default(true)->index(); + $table->double('managed_price', 60, 8)->index()->nullable()->after('price'); }); } @@ -27,7 +27,8 @@ public function up() public function down() { Schema::table('hosts', function (Blueprint $table) { - // + // drop + $table->dropColumn('managed_price'); }); } }; diff --git a/routes/api/remote.php b/routes/api/remote.php index fd6bde4..6a466eb 100644 --- a/routes/api/remote.php +++ b/routes/api/remote.php @@ -6,5 +6,7 @@ Route::name('remote.')->middleware(['api'])->group(function () { Route::apiResource('modules', Remote\ModuleController::class)->only(['index']); Route::apiResource('servers', Remote\ServerController::class); + Route::delete('users/{user}/drops', [Remote\User\DropController::class, 'destroy']); + Route::apiResource('users.tasks', Remote\User\TaskController::class); // Route::apiResource('users', Controllers\User\UserController::class); });