Parcourir la source

各種削除機能の追加

develop
sosuke.iwabuchi il y a 1 an
Parent
révision
09070aed90
11 fichiers modifiés avec 211 ajouts et 1 suppressions
  1. +41
    -0
      app/Http/Controllers/Web/LoginUser/CustomerDeleteController.php
  2. +20
    -0
      app/Http/Controllers/Web/LoginUser/CustomerDeleteParam.php
  3. +42
    -0
      app/Http/Controllers/Web/LoginUser/ShopDeleteController.php
  4. +20
    -0
      app/Http/Controllers/Web/LoginUser/ShopDeleteParam.php
  5. +42
    -0
      app/Http/Controllers/Web/Shop/ShopDeleteController.php
  6. +20
    -0
      app/Http/Controllers/Web/Shop/ShopDeleteParam.php
  7. +5
    -0
      app/Logics/LoginUser/LoginUserLogic.php
  8. +9
    -0
      app/Logics/Shop/ShopLogic.php
  9. +7
    -0
      app/Models/HtpmsCustomer/Mst/Shop.php
  10. +2
    -1
      app/Models/User.php
  11. +3
    -0
      routes/api.php

+ 41
- 0
app/Http/Controllers/Web/LoginUser/CustomerDeleteController.php Voir le fichier

@@ -0,0 +1,41 @@
<?php

namespace App\Http\Controllers\Web\LoginUser;

use App\Codes\UserRole;
use App\Http\Controllers\Web\WebController;
use App\Logics\LoginUser\LoginUserLogic;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class CustomerDeleteController extends WebController
{

public function name(): string
{
return "顧客ログインユーザ削除";
}

public function description(): string
{
return "顧客ログインユーザを削除する";
}


public function __construct(protected CustomerDeleteParam $param, protected LoginUserLogic $logic)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$user = User::whereId($this->param->userId)
->whereRole(UserRole::CUSTOMER)
->firstOrFail();

$this->logic->delete($user);

return $this->successResponse();
}
}

+ 20
- 0
app/Http/Controllers/Web/LoginUser/CustomerDeleteParam.php Voir le fichier

@@ -0,0 +1,20 @@
<?php

namespace App\Http\Controllers\Web\LoginUser;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string userId
*/
class CustomerDeleteParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::USER_ID => $this->str(...Rule::id()),
];
}
}

+ 42
- 0
app/Http/Controllers/Web/LoginUser/ShopDeleteController.php Voir le fichier

@@ -0,0 +1,42 @@
<?php

namespace App\Http\Controllers\Web\LoginUser;

use App\Codes\UserRole;
use App\Http\Controllers\Web\WebController;
use App\Logics\LoginUser\LoginUserLogic;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class ShopDeleteController extends WebController
{

public function name(): string
{
return "店舗ログインユーザ削除";
}

public function description(): string
{
return "店舗ログインユーザを削除する";
}


public function __construct(protected ShopDeleteParam $param, protected LoginUserLogic $logic)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$user = User::whereId($this->param->userId)
->whereRole(UserRole::SHOP)
->whereCustomerCode($this->sessionUser->customerCode())
->firstOrFail();

$this->logic->delete($user);

return $this->successResponse();
}
}

+ 20
- 0
app/Http/Controllers/Web/LoginUser/ShopDeleteParam.php Voir le fichier

@@ -0,0 +1,20 @@
<?php

namespace App\Http\Controllers\Web\LoginUser;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string userId
*/
class ShopDeleteParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::USER_ID => $this->str(...Rule::id()),
];
}
}

+ 42
- 0
app/Http/Controllers/Web/Shop/ShopDeleteController.php Voir le fichier

@@ -0,0 +1,42 @@
<?php

namespace App\Http\Controllers\Web\Shop;

use App\Http\Controllers\Web\WebController;
use App\Logics\Shop\ShopLogic;
use App\Models\HtpmsCustomer\Mst\Shop;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class ShopDeleteController extends WebController
{

public function name(): string
{
return "店舗マスタ削除";
}

public function description(): string
{
return "店舗マスタを削除する";
}


public function __construct(protected ShopDeleteParam $param, protected ShopLogic $logic)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$param = $this->param;

$shop = Shop::whereId($param->shopId)
->firstOrFail();

$this->logic->delete($shop);


return $this->successResponse();
}
}

+ 20
- 0
app/Http/Controllers/Web/Shop/ShopDeleteParam.php Voir le fichier

@@ -0,0 +1,20 @@
<?php

namespace App\Http\Controllers\Web\Shop;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string shopId
*/
class ShopDeleteParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
];
}
}

+ 5
- 0
app/Logics/LoginUser/LoginUserLogic.php Voir le fichier

@@ -39,6 +39,11 @@ class LoginUserLogic
$user->save();
}

public function delete(User $user)
{
$user->delete();
}


private function checkEmailForCreate()
{


+ 9
- 0
app/Logics/Shop/ShopLogic.php Voir le fichier

@@ -32,4 +32,13 @@ class ShopLogic

return $shop;
}

public function delete(Shop $shop)
{
$shop->delete();

foreach ($shop->users as $user) {
$user->delete();
}
}
}

+ 7
- 0
app/Models/HtpmsCustomer/Mst/Shop.php Voir le fichier

@@ -3,6 +3,8 @@
namespace App\Models\HtpmsCustomer\Mst;

use App\Models\HtpmsCustomer\HtpmsCustomerAppModel;
use App\Models\User;
use Illuminate\Database\Eloquent\Relations\HasMany;

/**
* 店舗マスタ
@@ -22,4 +24,9 @@ class Shop extends HtpmsCustomerAppModel
{
return "店舗マスタ";
}

public function users(): HasMany
{
return $this->hasMany(User::class);
}
}

+ 2
- 1
app/Models/User.php Voir le fichier

@@ -78,7 +78,8 @@ class User extends Authenticatable implements IModelFeature
public static function getBuilder(string $name = 'main'): Builder
{
$instance = new static();
return DB::connection($instance->getConnectionName())->table(static::getTableName(), $name);
return DB::connection($instance->getConnectionName())->table(static::getTableName(), $name)
->whereNull($name . "." . self::COL_NAME_DELETED_AT);
}

public static function getTableName(): string


+ 3
- 0
routes/api.php Voir le fichier

@@ -32,17 +32,20 @@ Route::middleware('auth:sanctum')->group(function () {
RouteHelper::get('/customer/list', App\Http\Controllers\Web\Customer\CustomerListController::class);
RouteHelper::get('/login-user/customer/list', App\Http\Controllers\Web\LoginUser\CustomerListController::class);
RouteHelper::post('/login-user/customer/register', App\Http\Controllers\Web\LoginUser\CustomerRegisterController::class);
RouteHelper::post('/login-user/customer/delete', App\Http\Controllers\Web\LoginUser\CustomerDeleteController::class);
});

// 運営会社ルート
Route::middleware(RouteHelper::role([UserRole::CUSTOMER]))->group(function () {
RouteHelper::get('/login-user/shop/list', App\Http\Controllers\Web\LoginUser\ShopListController::class);
RouteHelper::post('/login-user/shop/register', App\Http\Controllers\Web\LoginUser\ShopRegisterController::class);
RouteHelper::post('/login-user/shop/delete', App\Http\Controllers\Web\LoginUser\ShopDeleteController::class);
RouteHelper::get('/parking/list', App\Http\Controllers\Web\Parking\ParkingListController::class);
RouteHelper::get('/parking/discount-ticket/list', App\Http\Controllers\Web\Parking\DiscountTicketListController::class);
RouteHelper::post('/role/switch/shop', App\Http\Controllers\Web\Auth\SwitchShopController::class);
RouteHelper::post('/login-user/shop/register', App\Http\Controllers\Web\LoginUser\ShopRegisterController::class);
RouteHelper::post('/shop/register', App\Http\Controllers\Web\Shop\ShopRegisterController::class);
RouteHelper::post('/shop/delete', App\Http\Controllers\Web\Shop\ShopDeleteController::class);
RouteHelper::get('/shop/list', App\Http\Controllers\Web\Shop\ShopListController::class);
RouteHelper::post('/shop/deposit/charge', App\Http\Controllers\Web\Shop\DepositChargeController::class);
RouteHelper::post('/shop/config', App\Http\Controllers\Web\Shop\Config\ShopConfigController::class);


Chargement…
Annuler
Enregistrer