生成pdf
This commit is contained in:
@@ -2,9 +2,11 @@
|
||||
namespace app\common\controller;
|
||||
|
||||
use app\common\controller\BaseController;
|
||||
use app\common\model\UsedCar;
|
||||
use app\common\service\OssService;
|
||||
use app\common\traits\crud\CrudControllerTrait;
|
||||
use app\common\service\UsedCarService;
|
||||
use app\common\utils\pdf\service\MpdfDriver;
|
||||
use support\Request;
|
||||
|
||||
class UsedCarController extends BaseController
|
||||
@@ -64,6 +66,16 @@ class UsedCarController extends BaseController
|
||||
}
|
||||
$data['images_pull'] = $images_pull;
|
||||
|
||||
}
|
||||
if (!empty($data['attachment'])){
|
||||
$attachments = explode(',', $data['attachment']);
|
||||
$ossService = new OssService();
|
||||
$attachment_pull = [];
|
||||
foreach ($attachments as $attachment){
|
||||
$attachment_pull[] = $ossService->generatePrivateUrl($attachment);
|
||||
}
|
||||
$data['attachment_pull'] = $attachment_pull;
|
||||
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
@@ -77,4 +89,39 @@ class UsedCarController extends BaseController
|
||||
return $this->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function producePdf(Request $request){
|
||||
try {
|
||||
$raw = $this->service->serviceShow($request);
|
||||
$data = $this->transformData($raw, method_exists($this, 'showFormat')
|
||||
? [$this, 'showFormat']
|
||||
: null);
|
||||
$images = [];
|
||||
foreach ($data['images_pull'] as $key => $image){
|
||||
$images[] = $this->service->downloadImage($image);
|
||||
}
|
||||
$data['images'] = $images;
|
||||
$pdf = (new MpdfDriver())->exportUsedCarPdf($data);
|
||||
UsedCar::where('id', $data['id'])->update(['pdf_src' => $pdf]);
|
||||
|
||||
array_map('unlink', glob(runtime_path('pdf/images/*.jpg')));
|
||||
return $this->success($pdf);
|
||||
} catch (\Throwable $e) {
|
||||
return $this->error($e->getMessage().$e->getLine().$e->getFile());
|
||||
}
|
||||
}
|
||||
|
||||
public function downloadPdf(Request $request){
|
||||
$raw = $this->service->serviceShow($request);
|
||||
$filePath = runtime_path('pdf') . $raw['pdf_src'];
|
||||
|
||||
if (!file_exists($filePath)) {
|
||||
return response('文件不存在', 404);
|
||||
}
|
||||
|
||||
return response()->download(
|
||||
$filePath,
|
||||
$raw['product_name'].'-'.$raw['id'].'pdf' // 下载时显示的文件名
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user