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

67 行
1.6KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Pdf\QRService;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Models\HtpmsCustomer\Mst\Shop;
  5. use App\Models\HtpmsCustomer\QRService\AcquisitionTicketToken;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Http\Response;
  8. use PDF;
  9. class AcquisitionAnnouncementController extends WebController
  10. {
  11. public function name(): string
  12. {
  13. return "QRサービス券取得用ページ取得";
  14. }
  15. public function description(): string
  16. {
  17. return "QRサービス券取得用ページを取得する";
  18. }
  19. public function __construct(protected AcquisitionAnnouncementParam $param)
  20. {
  21. parent::__construct();
  22. }
  23. protected function run(Request $request): Response
  24. {
  25. $shopId = $this->sessionUser->shopId();
  26. $shop = Shop::findOrFail($shopId);
  27. $token = AcquisitionTicketToken::whereShopId($shopId)
  28. ->firstOrFail();
  29. $url = implode("/", [
  30. config('app.url'),
  31. "qr-service",
  32. "acquisition",
  33. $this->sessionUser->customerId(),
  34. $token->token,
  35. ]);
  36. $url = str_replace("//", "/", $url);
  37. $pdf = PDF::loadView("pdf/qr-service/acquisition_announcement", [
  38. "url" => $url,
  39. "shopName" => $shop->name,
  40. ]);
  41. $filename = "acquisition_announcement.pdf";
  42. $ret = $pdf->setPaper("A4")
  43. ->setOption('encoding', 'utf-8')
  44. ->inline()
  45. ->header("Content-Disposition", sprintf('inline; filename=%s', $filename));
  46. return $ret;
  47. }
  48. }