From f49b46607e4bf3f021a78f6cb2282bc7d86eb8c1 Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Wed, 19 Jul 2023 13:27:04 +0900 Subject: [PATCH] =?UTF-8?q?=E5=88=A9=E7=94=A8=E8=A6=8F=E7=B4=84=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AcceptSomePoliciesController.php | 56 +++++++++++++++++++ .../AcceptSomePoliciesParam.php | 30 ++++++++++ .../TokenCheckController.php | 4 ++ .../ReceiptIssuingOrder/UpdateManager.php | 16 ++++++ app/Models/ReceiptIssuingOrder.php | 3 + ...t_issuing_orders_table_accept_policies.php | 48 ++++++++++++++++ routes/api.php | 1 + 7 files changed, 158 insertions(+) create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesController.php create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesParam.php create mode 100644 database/migrations/2023_07_19_084900_add_column_receipt_issuing_orders_table_accept_policies.php diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesController.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesController.php new file mode 100644 index 0000000..1792493 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesController.php @@ -0,0 +1,56 @@ +param; + } + + protected function run(Request $request): JsonResponse + { + $param = $this->param; + + $this->manager->initByToken($param->accessToken); + + if ($param->acceptPrivacyPolicy) { + $this->manager->acceptPrivacyPolicy(); + } + if ($param->acceptCorrectEntry) { + $this->manager->acceptCorrectEntry(); + } + if ($param->acceptSitePolicy) { + $this->manager->acceptSitePolicy(); + } + + $this->manager->update(); + + return $this->successResponse(); + } +} diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesParam.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesParam.php new file mode 100644 index 0000000..2893367 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/AcceptSomePoliciesParam.php @@ -0,0 +1,30 @@ + $this->str(), + ReceiptIssuingOrder::COL_NAME_ACCEPT_PRIVACY_POLICY => $this->boolean(true), + ReceiptIssuingOrder::COL_NAME_ACCEPT_CORRECT_ENTRY => $this->boolean(true), + ReceiptIssuingOrder::COL_NAME_ACCEPT_SITE_POLICY => $this->boolean(true), + ], + $this->timestamp(), + ); + } +} diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/TokenCheckController.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/TokenCheckController.php index 1dfb400..9664ed3 100644 --- a/app/Http/Controllers/Web/ReceiptIssuingOrder/TokenCheckController.php +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/TokenCheckController.php @@ -58,6 +58,10 @@ class TokenCheckController extends WebController ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME, ReceiptIssuingOrder::COL_NAME_STATUS_MAIL_POST_DATE, + ReceiptIssuingOrder::COL_NAME_ACCEPT_PRIVACY_POLICY, + ReceiptIssuingOrder::COL_NAME_ACCEPT_CORRECT_ENTRY, + ReceiptIssuingOrder::COL_NAME_ACCEPT_SITE_POLICY, + ]), [ 'confirmed' => $this->manager->isConfirmed(), diff --git a/app/Logic/ReceiptIssuingOrder/UpdateManager.php b/app/Logic/ReceiptIssuingOrder/UpdateManager.php index 5c671ad..397be85 100644 --- a/app/Logic/ReceiptIssuingOrder/UpdateManager.php +++ b/app/Logic/ReceiptIssuingOrder/UpdateManager.php @@ -82,6 +82,22 @@ class UpdateManager extends ReceiptIssuingOrderManager return $this; } + public function acceptPrivacyPolicy(): static + { + $this->order->accept_privacy_policy = true; + return $this; + } + public function acceptCorrectEntry(): static + { + $this->order->accept_correct_entry = true; + return $this; + } + public function acceptSitePolicy(): static + { + $this->order->accept_site_policy = true; + return $this; + } + /** * 郵送投函完了 * diff --git a/app/Models/ReceiptIssuingOrder.php b/app/Models/ReceiptIssuingOrder.php index 00af34a..bf3dd56 100644 --- a/app/Models/ReceiptIssuingOrder.php +++ b/app/Models/ReceiptIssuingOrder.php @@ -52,6 +52,9 @@ class ReceiptIssuingOrder extends AppModel const COL_NAME_MAIL_ADDRESS3 = "mail_address3"; const COL_NAME_MAIL_NAME = "mail_name"; const COL_NAME_MEMO = "memo"; + const COL_NAME_ACCEPT_PRIVACY_POLICY = "accept_privacy_policy"; + const COL_NAME_ACCEPT_CORRECT_ENTRY = "accept_correct_entry"; + const COL_NAME_ACCEPT_SITE_POLICY = "accept_site_policy"; protected $casts = [ self::COL_NAME_ORDER_DATETIME => 'datetime', diff --git a/database/migrations/2023_07_19_084900_add_column_receipt_issuing_orders_table_accept_policies.php b/database/migrations/2023_07_19_084900_add_column_receipt_issuing_orders_table_accept_policies.php new file mode 100644 index 0000000..4011f54 --- /dev/null +++ b/database/migrations/2023_07_19_084900_add_column_receipt_issuing_orders_table_accept_policies.php @@ -0,0 +1,48 @@ +boolean("accept_privacy_policy")->nullable()->comment("個人情報保護方針への同意"); + $table->boolean("accept_correct_entry")->nullable()->comment("虚偽の申請でないことへの同意"); + $table->boolean("accept_site_policy")->nullable()->comment("運営ポリシーへの同意"); + }); + Schema::table('receipt_issuing_order_histories', function (Blueprint $table) { + $table->boolean("accept_privacy_policy")->nullable()->comment("個人情報保護方針への同意"); + $table->boolean("accept_correct_entry")->nullable()->comment("虚偽の申請でないことへの同意"); + $table->boolean("accept_site_policy")->nullable()->comment("運営ポリシーへの同意"); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('receipt_issuing_orders', function (Blueprint $table) { + $table->dropColumn("accept_privacy_policy"); + $table->dropColumn("accept_correct_entry"); + $table->dropColumn("accept_site_policy"); + }); + Schema::table('receipt_issuing_order_histories', function (Blueprint $table) { + $table->dropColumn("accept_privacy_policy"); + $table->dropColumn("accept_correct_entry"); + $table->dropColumn("accept_site_policy"); + }); + } +}; diff --git a/routes/api.php b/routes/api.php index 75994b2..edd154f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,6 +19,7 @@ RouteHelper::get('/logout', App\Http\Controllers\Web\Auth\LogoutController::clas RouteHelper::post('/change-contract', App\Http\Controllers\Web\Auth\ChangeContractController::class); RouteHelper::get('/app-token-check', App\Http\Controllers\Web\ReceiptIssuingOrder\TokenCheckController::class); +RouteHelper::post('/receipt-issuing-order/accept/policies', App\Http\Controllers\Web\ReceiptIssuingOrder\AcceptSomePoliciesController::class); RouteHelper::post('/receipt-issuing-order/confirm', App\Http\Controllers\Web\ReceiptIssuingOrder\ConfirmController::class); RouteHelper::post('/receipt-issuing-order/email-order', App\Http\Controllers\Web\ReceiptIssuingOrder\EmailOrderController::class); RouteHelper::post('/receipt-issuing-order/mail-order', App\Http\Controllers\Web\ReceiptIssuingOrder\MailOrderController::class);