MergePdf.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace app\event;
  3. use app\model\saas\SaasOrderDetail;
  4. use yzh52521\EasyHttp\Http;
  5. class MergePdf
  6. {
  7. public function imgMergePdf(array $data = [])
  8. {
  9. if (empty($data['shop'])) return true;
  10. $detail = (new SaasOrderDetail)->where(["shop_id" => $data['shop'],"openid" => $data['openid'],"order_sn" => $data['order'],'status' => 0])->select();
  11. if ($detail->isEmpty()) return true;
  12. foreach ($detail as $key=>$val) {
  13. if ($val['extension'] !== 'pdf') {
  14. $pathUri = [];
  15. for ($i = 1; $i <= $val['total_page']; $i ++) {
  16. $pathUri[$i] = "https://".sConf("storage.cos_http_domain")."/".$val['path']."?ci-process=doc-preview&dstType=jpg&imageDpi=300&page={$i}";
  17. }
  18. $resp = Http::asJson()->withHeaders(['x-api-key' => "your-api-key-here"])->post("http://127.0.0.1:3000/api/images-to-pdf",[
  19. "imageUrls" => array_values($pathUri),
  20. "pdfName" => $data['order']."_".$val['id'],
  21. "options" => [
  22. "compression" => false,
  23. "quality" => 100
  24. ]
  25. ])->array();
  26. if ($resp['success']) {
  27. (new SaasOrderDetail)->where("id",$val['id'])->update(['path' => $resp['data']['pdfUrl'],'old_path' => $val['path'], 'status' => 1]);
  28. }
  29. }
  30. }
  31. }
  32. }