|
- <?php
-
- namespace App\Http\Controllers\Server;
-
- use App\Exceptions\AppCommonException;
- use App\Logics\QRService\CertificateLogic;
- use App\Logics\QRService\CreateLogic;
- use App\Logics\QRService\PrintingLogic;
- use App\Transmission\Layouts\Code\QRTypeCode;
- use App\Transmission\Layouts\IF24_02Request;
- use Exception;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Validation\ValidationException;
- use Nette\NotImplementedException;
-
- class IF24_02Controller extends IFController
- {
- protected function run(Request $request): array
- {
- try {
- IF24_02Request::validateLayout($request);
- } catch (ValidationException $e) {
- logger($e->getMessage(), [__LINE__]);
- logger($e->errors());
- logger($request->toArray());
- return $this->failResponse($request);
- }
-
- try {
- DB::beginTransaction();
- $layout = IF24_02Request::create($request);
- $this->handleRequest($layout);
- DB::commit();
- } catch (Exception $e) {
- DB::rollBack();
- throw $e;
- }
-
- return $this->successResponse($request);
- }
-
- private function handleRequest(IF24_02Request $request)
- {
- // 認証チェック
- if ($request->qrTypeCode === QRTypeCode::方式1_認証方式) {
- CertificateLogic::use(
- $request->header->parkingManagementCode,
- $request->publishingTerminalCode,
- $request->publishingDate,
- $request->publishingNo,
- $request->discountTicketCode,
- $request->adjustDatetime,
- $request->discountAmount,
- );
- } else if ($request->qrTypeCode === QRTypeCode::方式2_印字方式) {
- PrintingLogic::use(
- $request->shopNo,
- $request->header->parkingManagementCode,
- $request->publishingTerminalCode,
- $request->publishingDate,
- $request->publishingNo,
- $request->adjustDatetime,
- $request->discountAmount,
- );
- } else if ($request->qrTypeCode === QRTypeCode::方式3_取得方式) {
- CreateLogic::use(
- $request->shopNo,
- $request->header->parkingManagementCode,
- $request->publishingDate,
- $request->publishingNo,
- $request->discountTicketCode,
- $request->adjustDatetime,
- $request->discountAmount,
- );
- } else {
- throw new AppCommonException("想定外のQRタイプコード");
- }
- }
- }
|