From 801626e745f4997b5e81a92610e52a0e8db5fa3c Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Tue, 9 Apr 2024 13:05:31 +0900 Subject: [PATCH] =?UTF-8?q?=E8=AA=8D=E8=A8=BC=E3=81=AA=E3=81=84=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=BB=E3=82=B9=E3=81=AE=E5=A0=B4=E5=90=88=E3=81=A7?= =?UTF-8?q?=E3=82=82=E9=A1=A7=E5=AE=A2=E3=82=B9=E3=82=A4=E3=83=83=E3=83=81?= =?UTF-8?q?=E3=81=8C=E5=BF=85=E8=A6=81=E3=81=AA=E3=82=B1=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=82=92=E3=83=95=E3=82=A9=E3=83=AD=E3=83=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Acquisition/GetAcquisitionTokenController.php | 1 + .../Web/QRService/CreateTicketController.php | 4 +++- .../Web/QRService/CreateTicketParam.php | 3 +++ app/Http/Controllers/Web/WebController.php | 2 +- app/Sessions/SessionUser.php | 15 ++++++++++++--- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Web/QRService/Acquisition/GetAcquisitionTokenController.php b/app/Http/Controllers/Web/QRService/Acquisition/GetAcquisitionTokenController.php index 67219e9..7977ef2 100644 --- a/app/Http/Controllers/Web/QRService/Acquisition/GetAcquisitionTokenController.php +++ b/app/Http/Controllers/Web/QRService/Acquisition/GetAcquisitionTokenController.php @@ -43,6 +43,7 @@ class GetAcquisitionTokenController extends WebController $res = [ "token" => $token->token, + "customer_id" => $this->sessionUser->customerId(), ]; return $this->successResponse($res); diff --git a/app/Http/Controllers/Web/QRService/CreateTicketController.php b/app/Http/Controllers/Web/QRService/CreateTicketController.php index 43a3118..a1710f6 100644 --- a/app/Http/Controllers/Web/QRService/CreateTicketController.php +++ b/app/Http/Controllers/Web/QRService/CreateTicketController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Web\QRService; use App\Http\Controllers\Web\WebController; use App\Logics\QRService\CreateLogic; use App\Logics\QRService\QRCryptoLogic; +use App\Models\HtpmsCustomer\HtpmsCustomerConnectionSwitch; use App\Models\HtpmsCustomer\QRService\AcquisitionTicket; use App\Models\HtpmsCustomer\QRService\AcquisitionTicketToken; use Illuminate\Http\JsonResponse; @@ -33,8 +34,9 @@ class CreateTicketController extends WebController { $param = $this->param; - $token = AcquisitionTicketToken::whereToken($param->token)->first(); + $token = AcquisitionTicketToken::whereToken($param->token)->first(); if ($token === null) { + logger(sprintf("トークン無 (%d) %s", $param->customerId, $param->token)); return $this->failedResponse(); } diff --git a/app/Http/Controllers/Web/QRService/CreateTicketParam.php b/app/Http/Controllers/Web/QRService/CreateTicketParam.php index 675d7aa..97524ff 100644 --- a/app/Http/Controllers/Web/QRService/CreateTicketParam.php +++ b/app/Http/Controllers/Web/QRService/CreateTicketParam.php @@ -3,8 +3,10 @@ namespace App\Http\Controllers\Web\QRService; use App\Http\Controllers\Web\BaseParam; +use App\Models\ColumnName; /** + * @property int $customerId * @property string $token * @property string|null $ticketId */ @@ -13,6 +15,7 @@ class CreateTicketParam extends BaseParam public function rules(): array { return [ + 'customer_id' => $this->numeric(), 'token' => $this->str(), 'ticket_id' => $this->str(true), ]; diff --git a/app/Http/Controllers/Web/WebController.php b/app/Http/Controllers/Web/WebController.php index a18baf3..821c5e6 100644 --- a/app/Http/Controllers/Web/WebController.php +++ b/app/Http/Controllers/Web/WebController.php @@ -173,7 +173,7 @@ abstract class WebController extends BaseController $this->validated = $validator->validated(); $this->getParam()->setData($this->validated); - $this->sessionUser->init(); + $this->sessionUser->init($this->validated); $this->transaction->beginTransaction(); $ret = $this->run($request); diff --git a/app/Sessions/SessionUser.php b/app/Sessions/SessionUser.php index 89575d2..96f5d69 100644 --- a/app/Sessions/SessionUser.php +++ b/app/Sessions/SessionUser.php @@ -22,23 +22,26 @@ class SessionUser private bool $isSwtiched = false; private bool $isInit = false; - public function init() + public function init(array $param = []) { if ($this->isInit === true) { return; } - $this->initSessionUser(); + $this->initSessionUser($param); $this->isInit = true; } - private function initSessionUser() + private function initSessionUser(array $param) { // 認証していない場合はスキップ $this->user = Auth::user(); if ($this->user instanceof User && $this->user->customer_id) { HtpmsCustomerConnectionSwitch::switch($this->user->customer_id); + } else if (!!data_get($param, "customer_id")) { + HtpmsCustomerConnectionSwitch::switch(data_get($param, "customer_id")); } + $user = Auth::user(); $ckeck = Auth::check(); if ($this->user === null) { @@ -123,6 +126,12 @@ class SessionUser if ($this->user->customer_code === null) throw new LogicException(); return $this->user->customer_code; } + public function customerId(): int + { + if ($this->user === null) throw new LogicException(); + if ($this->user->customer_id === null) throw new LogicException(); + return $this->user->customer_id; + } private function getStoreKey(string $key): string {