作者 zhl

u video task

... ... @@ -18,6 +18,7 @@ yarn-error.log
/.vscode
composer.lock
app/Console/Commands/Test/Demo.php
app/Console/Commands/Test/DataRecovery.php
/public/upload
/public/runtime
public/nginx.htaccess
... ...
... ... @@ -119,7 +119,7 @@ class VideoTask extends Command
*/
public function sendSubTask()
{
$subTask = KeywordVideoTaskLog::where(['status' => TaskSub::STATUS_INIT])->orderBy('id', 'asc')->limit($this->max_sub_task)->get();
$subTask = KeywordVideoTaskLog::where(['status' => KeywordVideoTaskLog::STATUS_INIT])->orderBy('id', 'asc')->limit($this->max_sub_task)->get();
if ($subTask->isEmpty())
return true;
foreach ($subTask as $val) {
... ... @@ -134,11 +134,12 @@ class VideoTask extends Command
'images' => $valData['images']
],
'task_id' => $task_id,
'callback_url' => url('a/getKeywordVideo?project_id='.$val->project_id.'&keyword_id='.$val->keyword_id.'&video='),
'callback_url' => env('APP_URL') . '/api/video_task_callback',
// 'callback_url' => url('a/getKeywordVideo?project_id='.$val->project_id.'&keyword_id='.$val->keyword_id.'&video='),
];
$result = Http::post('http://216.250.255.116:7866/create_task', $data);
$val->task_id = $task_id;
$val->status = KeywordVideoTaskLog::STATUS_RUNING;
$val->status = KeywordVideoTaskLog::STATUS_RUNNING;
$val->request_result = $result;
$val->save();
}
... ...
... ... @@ -7,9 +7,13 @@
*/
namespace App\Http\Controllers\Api;
use App\Models\Com\KeywordVideoTaskLog;
use App\Models\Product\Keyword;
use App\Models\Visit\SyncSubmitTask;
use App\Models\Visit\Visit;
use App\Services\ProjectServer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
/**
* Class NoticeController
... ... @@ -58,4 +62,44 @@ class NoticeController extends BaseController
SyncSubmitTask::createTask($array, SyncSubmitTask::TYPE_VISIT);
return $this->success([]);
}
/**
* 生成视频任务回调
* @param Request $request
* @return int
*/
public function videoTaskCallback(Request $request)
{
// 获取参数
$task_id = $request->input('task_id');
$status = intval($request->input('status', 0));
$thumb = $request->input('video_thumb');
$video = $request->input('embed_code');
$all = $request->all();
// 获取子任务
$log = KeywordVideoTaskLog::where(['task_id' => $task_id])->first();
if (empty($log))
return 200;
// 更新子任务状态 更新任务信息
$log->status = KeywordVideoTaskLog::STATUS_FINISH;
$log->result_status = $status;
$log->result_info = json_encode($all);
$log->save();
if ($status != 200) {
return 200;
}
// 更新关键词信息
ProjectServer::useProject($log->project_id);
$keyword = Keyword::where(['id' => $log->keyword_id])->first();
// 关键词可能已被删除
if (empty($keyword))
return 200;
$keyword->video = $video;
$keyword->video_thumb = $thumb;
$keyword->save();
DB::disconnect('custom_mysql');
return 200;
}
}
... ...
... ... @@ -14,7 +14,8 @@ use App\Models\Base;
class KeywordVideoTaskLog extends Base
{
const STATUS_INIT = 0;
const STATUS_RUNING = 1;
const STATUS_RUNNING = 1;
const STATUS_FINISH = 2;
protected $table = 'gl_keyword_video_task_log';
}
... ...
... ... @@ -24,3 +24,4 @@ Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::cl
Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images');
Route::post('inquiry_submit', [\App\Http\Controllers\Api\InquiryController::class, 'submit'])->name('api.inquiry_submit');
Route::post('video_task_callback', [\App\Http\Controllers\Api\NoticeController::class, 'videoTaskCallback'])->name('api.video_task_callback');
\ No newline at end of file
... ...