InquiryController.php 1.7 KB
<?php

namespace App\Http\Controllers\Api;

use App\Exceptions\InquiryFilterException;
use App\Models\SyncSubmitTask\SyncSubmitTask;
use App\Services\CosService;
use Illuminate\Http\Request;

/**
 * Class InquiryController
 * @package App\Http\Controllers\Api
 * @author zbj
 * @date 2024/2/2
 */
class InquiryController extends BaseController
{
    /**
     * 提交询盘
     * C端部署自己服务器的
     * @param Request $request
     * @return false|string
     * @author zbj
     * @date 2024/2/2
     */
    public function submit(Request $request){
        $data = $request->post();
        @file_put_contents(storage_path('logs/form_submit_' . date('Y-m-d') . '.log'), var_export(date('Y-m-d H:i:s') . "-询盘表单提交数据:" . json_encode($data), true) . PHP_EOL, FILE_APPEND);

        try {
            $files = $request->allFiles()['data'] ?? [];
            foreach ($files as $key => $file) {
                $cos = new CosService();
                $fileinfo = $cos->checkInquiryFile($file);
                $fileName = uniqid().rand(10000,99999).'.'.$file->getClientOriginalExtension();
                $path = $cos->uploadFile($file, '/inquiry/'. date('Ymd'), $fileName);
                $data['data'][$key] = [
                    'path' => $path,
                    'original_name' => $fileinfo['name'],
                ];
            }
        }catch (InquiryFilterException $e){
            return $this->error($e->getMessage());
        }catch (\Exception $e){
            return $this->error('File upload fail');
        }

        //异步处理
        if(!SyncSubmitTask::addTask(SyncSubmitTask::TYPE_INQUIRY, $data)){
            return $this->error();
        }
        return $this->success();
    }
}