Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

70 lines
2.1KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Customer;
  3. use App\Email\Members\UserInfoUpdateOrderNotice;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Kintone\Models\Customer;
  6. use App\Kintone\Models\UserInfoUpdateApplication;
  7. use App\Logic\EmailManager;
  8. use App\Logic\GeneralApplicationManager;
  9. use Illuminate\Http\JsonResponse;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\Auth;
  12. class UpdateUserInfoOrderController extends WebController
  13. {
  14. public function name(): string
  15. {
  16. return "利用者情報変更依頼";
  17. }
  18. public function description(): string
  19. {
  20. return "利用者情報変更依頼を登録する";
  21. }
  22. public function __construct(protected UpdateUserInfoOrderParam $param)
  23. {
  24. parent::__construct();
  25. $this->middleware('auth:sanctum');
  26. }
  27. protected function run(Request $request): JsonResponse
  28. {
  29. $param = $this->param;
  30. $customer = Customer::getSelf();
  31. $application = new UserInfoUpdateApplication();
  32. $manager = new GeneralApplicationManager($application);
  33. $manager
  34. ->setCustomer($customer)
  35. ->makeApplication();
  36. $application->nameBefore = $customer->customerName;
  37. $application->nameAfter = $param->name;
  38. $application->nameKanaBefore = $customer->customerNameKana;
  39. $application->nameKanaAfter = $param->nameKana;
  40. $application->zipCodeBefore = $customer->zipCode;
  41. $application->zipCodeAfter = $param->zipCode;
  42. $application->addressBefore = $customer->address;
  43. $application->addressAfter = $param->address;
  44. $application->phoneNoBefore = $customer->phoneNumber;
  45. $application->phoneNoAfter = $param->phoneNo;
  46. $application->memo = $param->memo;
  47. // メール送信
  48. $email = new UserInfoUpdateOrderNotice($application, $customer);
  49. $email->setUser(Auth::user());
  50. $emailMmanager = new EmailManager($email);
  51. $emailMmanager->confirm();
  52. $application->save();
  53. return $this->successResponse();
  54. }
  55. }