| @@ -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(); | |||||
| } | |||||
| } | |||||
| @@ -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()), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -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(); | |||||
| } | |||||
| } | |||||
| @@ -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()), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -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(); | |||||
| } | |||||
| } | |||||
| @@ -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()]), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -39,6 +39,11 @@ class LoginUserLogic | |||||
| $user->save(); | $user->save(); | ||||
| } | } | ||||
| public function delete(User $user) | |||||
| { | |||||
| $user->delete(); | |||||
| } | |||||
| private function checkEmailForCreate() | private function checkEmailForCreate() | ||||
| { | { | ||||
| @@ -32,4 +32,13 @@ class ShopLogic | |||||
| return $shop; | return $shop; | ||||
| } | } | ||||
| public function delete(Shop $shop) | |||||
| { | |||||
| $shop->delete(); | |||||
| foreach ($shop->users as $user) { | |||||
| $user->delete(); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -3,6 +3,8 @@ | |||||
| namespace App\Models\HtpmsCustomer\Mst; | namespace App\Models\HtpmsCustomer\Mst; | ||||
| use App\Models\HtpmsCustomer\HtpmsCustomerAppModel; | use App\Models\HtpmsCustomer\HtpmsCustomerAppModel; | ||||
| use App\Models\User; | |||||
| use Illuminate\Database\Eloquent\Relations\HasMany; | |||||
| /** | /** | ||||
| * 店舗マスタ | * 店舗マスタ | ||||
| @@ -22,4 +24,9 @@ class Shop extends HtpmsCustomerAppModel | |||||
| { | { | ||||
| return "店舗マスタ"; | return "店舗マスタ"; | ||||
| } | } | ||||
| public function users(): HasMany | |||||
| { | |||||
| return $this->hasMany(User::class); | |||||
| } | |||||
| } | } | ||||
| @@ -78,7 +78,8 @@ class User extends Authenticatable implements IModelFeature | |||||
| public static function getBuilder(string $name = 'main'): Builder | public static function getBuilder(string $name = 'main'): Builder | ||||
| { | { | ||||
| $instance = new static(); | $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 | public static function getTableName(): string | ||||
| @@ -32,17 +32,20 @@ Route::middleware('auth:sanctum')->group(function () { | |||||
| RouteHelper::get('/customer/list', App\Http\Controllers\Web\Customer\CustomerListController::class); | 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::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/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 () { | Route::middleware(RouteHelper::role([UserRole::CUSTOMER]))->group(function () { | ||||
| RouteHelper::get('/login-user/shop/list', App\Http\Controllers\Web\LoginUser\ShopListController::class); | 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/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/list', App\Http\Controllers\Web\Parking\ParkingListController::class); | ||||
| RouteHelper::get('/parking/discount-ticket/list', App\Http\Controllers\Web\Parking\DiscountTicketListController::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('/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('/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/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::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/deposit/charge', App\Http\Controllers\Web\Shop\DepositChargeController::class); | ||||
| RouteHelper::post('/shop/config', App\Http\Controllers\Web\Shop\Config\ShopConfigController::class); | RouteHelper::post('/shop/config', App\Http\Controllers\Web\Shop\Config\ShopConfigController::class); | ||||