作者 Your Name
... ... @@ -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);
... ...
... ... @@ -66,7 +66,7 @@ class ExtensionModuleController extends BaseController
'module_id.required' => '模块id不能为空',
]);
$moduleFieldModel = new ExtensionModuleField();
$list = $moduleFieldModel->list(['module_id'=>$this->param['module_id']],'sort');
$list = $moduleFieldModel->list(['module_id'=>$this->param['module_id']],'sort',['*'],'desc');
$moduleValueModel = new ExtensionModuleValue();
foreach ($list as $k => $v){
$v['is_use'] = 0;
... ... @@ -136,12 +136,25 @@ class ExtensionModuleController extends BaseController
],[
'module_id.required' => '模块id不能为空',
]);
$searchParam = [
'module_id'=>$this->param['module_id'],
];
$data = [];
$moduleValueModel = new ExtensionModuleValue();
$lists = $moduleValueModel->list(['module_id'=>$this->param['module_id']]);
if(isset($this->param['field_id']) && ($this->param['field_id'] != 0) && isset($this->param['value'])){
$uuidArr = $moduleValueModel->formatQuery(['field_id'=>$this->param['field_id'],'value'=>$this->param['value'],'module_id'=>$this->param['module_id']])->distinct()->pluck('id')->toArray();
if(!empty($uuidArr)){
$searchParam['uuid'] = ['in',$uuidArr];
}
}
if(isset($this->param['start_time']) && !empty($this->param['start_time']) && isset($this->param['end_time']) && !empty($this->param['end_time'])){
$searchParam['created_at'] = ['between',[$this->param['start_time'],$this->param['end_time']]];
}
$lists = $moduleValueModel->list($searchParam);
if(!empty($lists)){
foreach ($lists as $k => $v){
$data[$v['uuid']][$v['field_id']] = $v['value'];
$data[$v['uuid']]['created_at'] = $v['created_at'];
}
}
$resultData = [];
... ... @@ -286,7 +299,33 @@ class ExtensionModuleController extends BaseController
*/
public function setSort(){
$moduleFieldModel = new ExtensionModuleField();
$moduleFieldModel->edit(['sort'=>$this->param['sort']],['id'=>$this->param['id']]);
$num = 100;
foreach ($this->param['id'] as $id){
$moduleFieldModel->edit(['sort'=>$num],['id'=>$id]);
$num--;
}
$this->response('success');
}
/**
* @remark :设置搜索参数
* @name :setSearchParam
* @author :lyh
* @method :post
* @time :2024/8/23 16:24
*/
public function setSearchParam(){
$this->request->validate([
'module_id'=>'required',
'id'=>'required|array'
],[
'module_id.required' => '模块id不能为空',
'id.required'=>'id不能为空',
'id.array'=>'id是一个数组'
]);
$moduleFieldModel = new ExtensionModuleField();
$moduleFieldModel->edit(['is_search'=>0],['module_id'=>$this->param['module_id']]);
$moduleFieldModel->edit(['is_search'=>1],['id'=>['in',$this->param['id']]]);
$this->response('success');
}
}
... ...
... ... @@ -586,6 +586,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/sendUniqueStr', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'sendUniqueStr'])->name('extension_module_sendUniqueStr');
Route::any('/getFieldType', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'getFieldType'])->name('extension_module_getFieldType');
Route::any('/setSort', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'setSort'])->name('extension_module_setSort');
Route::any('/setSearchParam', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'setSearchParam'])->name('extension_module_setSearchParam');
});
//自定义小语种文本信息
... ...