|
...
|
...
|
@@ -29,6 +29,7 @@ use App\Models\WebSetting\WebSettingReceiving; |
|
|
|
use App\Services\CosService;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
...
|
...
|
@@ -67,9 +68,14 @@ class ProjectUpdate extends Command |
|
|
|
protected function start_update()
|
|
|
|
{
|
|
|
|
$task_id = $this->get_task();
|
|
|
|
if (!$task_id) {
|
|
|
|
if ($task_id === false) {
|
|
|
|
//所有任务执行完成
|
|
|
|
sleep(60);
|
|
|
|
return true;
|
|
|
|
} elseif ($task_id === 0) {
|
|
|
|
//队列任务已处理完,有进程正在查询数据库,等待5秒后执行
|
|
|
|
sleep(5);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$task = UpdateLog::where('id', $task_id)->where('status', UpdateLog::STATUS_UN)->first();
|
|
...
|
...
|
@@ -707,25 +713,11 @@ class ProjectUpdate extends Command |
|
|
|
//扩展字段
|
|
|
|
if ($six_read) {
|
|
|
|
if ($item['extend'] ?? []) {
|
|
|
|
if($project_id == 1646){
|
|
|
|
//特殊项目处理
|
|
|
|
$extend_list = [];
|
|
|
|
foreach ($item['extend'] as $k_e=>$v_e){
|
|
|
|
if(empty($v_e)){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($v_e as $k_e_e => $v_e_e){
|
|
|
|
$extend_list[$k_e.'_'.$k_e_e] = $v_e_e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$extend_list = $item['extend'];
|
|
|
|
}
|
|
|
|
foreach ($extend_list as $ke => $ve) {
|
|
|
|
foreach ($item['extend'] as $ke => $ve) {
|
|
|
|
$extend = $extend_model->read(['title' => $ke]);
|
|
|
|
if ($extend) {
|
|
|
|
if ($extend['type'] == 3) {
|
|
|
|
//图片
|
|
|
|
$gallery = [];
|
|
|
|
if (is_array($ve)) {
|
|
|
|
foreach ($ve as $ve_img) {
|
|
...
|
...
|
@@ -736,8 +728,24 @@ class ProjectUpdate extends Command |
|
|
|
}
|
|
|
|
$value = Arr::a2s($gallery);
|
|
|
|
} elseif ($extend['type'] == 4) {
|
|
|
|
$value = Arr::a2s([$this->source_download($ve, $project_id, $domain_arr['host'], $web_url_domain, $home_url, 1)]);
|
|
|
|
//文件
|
|
|
|
if (is_array($ve)) {
|
|
|
|
if (isset($ve['title']) || isset($ve['url'])) {
|
|
|
|
$file = [
|
|
|
|
[
|
|
|
|
'name' => isset($ve['title']) ? $ve['title'] : '',
|
|
|
|
'url' => isset($ve['url']) ? $this->source_download($ve['url'], $project_id, $domain_arr['host'], $web_url_domain, $home_url, 1) : ''
|
|
|
|
]
|
|
|
|
];
|
|
|
|
} else {
|
|
|
|
$file = [];
|
|
|
|
}
|
|
|
|
$value = Arr::a2s($file);
|
|
|
|
} else {
|
|
|
|
$value = Arr::a2s([$this->source_download($ve, $project_id, $domain_arr['host'], $web_url_domain, $home_url, 1)]);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
//文本
|
|
|
|
$value = $ve;
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -792,6 +800,11 @@ class ProjectUpdate extends Command |
|
|
|
return $task_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!Cache::add('console_update_task_select_mysql', true, 5)) {
|
|
|
|
//如果存在数据锁,表示有其他进程已往下执行,当前进程直接返回
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
$task_list = UpdateLog::where('status', UpdateLog::STATUS_UN)->orderBy('sort', 'asc')->orderBy('updated_at', 'asc')->limit(20)->get();
|
|
|
|
if ($task_list->count() == 0) {
|
|
|
|
return false;
|
|
...
|
...
|
@@ -808,7 +821,7 @@ class ProjectUpdate extends Command |
|
|
|
//获取地址路由
|
|
|
|
protected function get_url_route($url)
|
|
|
|
{
|
|
|
|
if (strpos($url, '%3A') !== false || strpos($url, '%2F') !== false) {
|
|
|
|
if (strpos($url, '%') !== false) {
|
|
|
|
$url = urldecode($url);
|
|
|
|
}
|
|
|
|
$arr = parse_url($url);
|
...
|
...
|
|