領収証発行サービス
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

55 行
1.4KB

  1. <?php
  2. namespace App\Http\Controllers\Web\ReceiptIssuingOrder;
  3. use App\Http\Controllers\Web\IParam;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Logic\ReceiptIssuingOrder\Custom\HelloTechno\PDFDownLoadManagerHelloTechno;
  6. use App\Logic\ReceiptIssuingOrder\UpdateManager;
  7. use App\Models\ReceiptIssuingOrder;
  8. use App\Util\DateUtil;
  9. use Illuminate\Http\JsonResponse;
  10. use Illuminate\Http\Request;
  11. class EmailOrderController extends WebController
  12. {
  13. public function name(): string
  14. {
  15. return "領収証Email送付依頼";
  16. }
  17. public function description(): string
  18. {
  19. return "領収証をEmail送付依頼を登録する";
  20. }
  21. public function __construct(
  22. protected EmailOrderParam $param,
  23. private UpdateManager $manager,
  24. private PDFDownLoadManagerHelloTechno $pdf,
  25. ) {
  26. parent::__construct();
  27. }
  28. protected function getParam(): IParam
  29. {
  30. return $this->param;
  31. }
  32. protected function run(Request $request): JsonResponse
  33. {
  34. $param = $this->param;
  35. $file = $this->pdf->initByToken($param->accessToken)
  36. ->checkTimestamp($param->timestamp)
  37. ->getA4File();
  38. $this->manager->initByToken($param->accessToken)
  39. ->checkTimestamp($param->timestamp)
  40. ->emailOrder($param->email, $file)
  41. ->update();
  42. return $this->successResponse();
  43. }
  44. }