|
@@ -2655,43 +2655,120 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
array_push($where,['sector.page_type', 'like', '%'.$data['page_type'].'%']);
|
|
array_push($where,['sector.page_type', 'like', '%'.$data['page_type'].'%']);
|
|
|
}
|
|
}
|
|
|
$sector = Sector::where($where)
|
|
$sector = Sector::where($where)
|
|
|
- ->leftJoin('sector_component','sector.sector_id','=','sector_component.sector_id')
|
|
|
|
|
- ->leftJoin('component','sector_component.component_id','component.component_type')
|
|
|
|
|
- ->select('sector.sector_name','sector_component.sector_id','component.*')
|
|
|
|
|
- // ->select('sector.*')
|
|
|
|
|
|
|
+ ->leftJoin('sector_component', 'sector.sector_id', '=', 'sector_component.sector_id')
|
|
|
|
|
+ ->leftJoin('component', 'sector_component.component_id', '=', 'component.component_type')
|
|
|
|
|
+ ->when(isset($data['template_id']), function ($query) use ($data) {
|
|
|
|
|
+ // 当 type_id 等于 11 时,关联查询 component_img 表并添加 img_url 字段
|
|
|
|
|
+ return $query->leftJoin('component_img', function ($join) use ($data) {
|
|
|
|
|
+ $join->on('component.component_type', '=', 'component_img.component_id')
|
|
|
|
|
+ ->where('component_img.template_id', $data['template_id'])
|
|
|
|
|
+ ->where('component.type_id', 11);
|
|
|
|
|
+ });
|
|
|
|
|
+ })
|
|
|
|
|
+ ->select('sector.sector_name', 'sector_component.sector_id', 'component.*', 'component_img.img_url')
|
|
|
|
|
+ ->orderBy('component.sort_id')
|
|
|
->get()->all();
|
|
->get()->all();
|
|
|
|
|
+ $com_num = array_count_values(array_column($sector,'sector_id'));
|
|
|
|
|
+ // 使用 array_keys 和 array_diff 函数,不使用循环将值不为 1 的字段键提取到 $sectors_key 中
|
|
|
|
|
+ $sectors_key = array_keys(array_diff($com_num, [1]));
|
|
|
|
|
+ // return Result::success($sector);
|
|
|
|
|
+ $num = 0;
|
|
|
foreach($sector as $key => $value){
|
|
foreach($sector as $key => $value){
|
|
|
- $setor_id = $value['sector_id'];
|
|
|
|
|
- $page[$key][$setor_id]['sectorName'] = $value['sector_name'];
|
|
|
|
|
|
|
+ $sector_id = $value['sector_id'];
|
|
|
|
|
+ if(in_array($sector_id,$sectors_key)){
|
|
|
|
|
+ // $keys = $key;
|
|
|
|
|
+ $sector_key[$num] = $key;
|
|
|
|
|
+ $key = $sector_key[0];
|
|
|
|
|
+ // $comlist_key[$key][$sector_id]['componentList'][$num] = $sector_key ;
|
|
|
|
|
+ $num++;
|
|
|
|
|
+ // $key = $sector_key[0];
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $key = $key-$num;
|
|
|
|
|
+ // $comlist_key[$key][$sector_id]['componentList'] = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['sectorName'] = $value['sector_name'];
|
|
|
|
|
+ $componentList['component_style'] = 1;
|
|
|
|
|
+ $componentList['sort'] = $value['sort_id'];
|
|
|
|
|
+
|
|
|
// 1:资讯;2:广告;3:静态;
|
|
// 1:资讯;2:广告;3:静态;
|
|
|
// $component_code = json_decode($value['component_code']) ?? [];
|
|
// $component_code = json_decode($value['component_code']) ?? [];
|
|
|
-
|
|
|
|
|
|
|
+ // $component[$key] = $value['component_data'];
|
|
|
|
|
+ $component_data = empty($value['component_data']) ? null : (json_decode($value['component_data']) ?? []);
|
|
|
|
|
+ // 检查 $value['component_column'] 是否为非空字符串,避免传递 null 给 json_decode
|
|
|
|
|
+ $listType = empty($value['component_column']) ? null : (json_decode($value['component_column']) ?? []);;
|
|
|
// $page[$key][$setor_id]['componentList'] =
|
|
// $page[$key][$setor_id]['componentList'] =
|
|
|
- // '组件分类:1:资讯-头条组件;2:资讯-轮播组件;3:资讯-推荐图类组件;4:资讯-最新类组件;5:资讯-推荐类;6:资讯-热点类组件;7:资讯-栏目类组件;
|
|
|
|
|
- // 8:列表类组件;9:详情类组件;10:二级导航栏类组件;11:广告类;12:静态资源类;13:底部导航类;14:广告资讯混合类'
|
|
|
|
|
- if(in_array($value['type_id'],[1,2,3,4,5,6,7,8,9,13,14])){
|
|
|
|
|
|
|
+ // 组件分类:1:资讯-头条组件;2:资讯-轮播组件;3:资讯-推荐图类组件;4:资讯-最新类组件;5:资讯-推荐类;6:资讯-热点类组件;7:资讯-栏目类组件;8:列表类组件;9:详情类组件;
|
|
|
|
|
+ // 10:二级导航栏类组件;11:广告类;12:静态资源类;13:单页导航类;14:广告资讯混合类;15:滚动图文;16:搜索框类;17:单页列表类;18:单页详情类;
|
|
|
|
|
+ if(in_array($value['type_id'],[1,2,3,4,5,6,7,8,9,15,17,18])){
|
|
|
$type = 1;
|
|
$type = 1;
|
|
|
- }else if(in_array($value['type_id'],[10,12])){
|
|
|
|
|
|
|
+ $componentList['component_type'] = $type;
|
|
|
|
|
+ if(in_array($value['type_id'],[7,15]) && $data['page_type'] == 1){
|
|
|
|
|
+ $component_data->componentData->name = '请选择导航..';
|
|
|
|
|
+ }else if(in_array($value['type_id'],[7,15]) && $data['page_type'] == 2){
|
|
|
|
|
+ $component_data->componentData->name = '自动生成';
|
|
|
|
|
+ }else if($data['page_type'] == 3){
|
|
|
|
|
+ if($value['type_id'] == 4){
|
|
|
|
|
+ $component_data->componentData->name = '最新资讯';
|
|
|
|
|
+ }
|
|
|
|
|
+ if($value['type_id'] == 6){
|
|
|
|
|
+ $component_data->componentData->name = '热点精选';
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ unset($component_data->componentData->name);
|
|
|
|
|
+ }
|
|
|
|
|
+ $componentData = $component_data->componentData;
|
|
|
|
|
+ $componentList['componentData'] = is_object($componentData) ? (array)$componentData ?? [] : $componentData ?? [];
|
|
|
|
|
+
|
|
|
|
|
+ // $page_listType = is_object($listType) ? (array)$listType->listType ?? [] : $listType['listType'] ?? [];
|
|
|
|
|
+ $componentList['componentData']['listType'] = $listType->listType;
|
|
|
|
|
+ }else if(in_array($value['type_id'],[10,12,13,16])){
|
|
|
$type = 3;
|
|
$type = 3;
|
|
|
|
|
+ $componentList['component_type'] = $type;
|
|
|
|
|
+ $componentList['componentData']=(object)[];
|
|
|
}else if($value['type_id']== 11){
|
|
}else if($value['type_id']== 11){
|
|
|
$type = 2;
|
|
$type = 2;
|
|
|
- $page[$key][$setor_id]['componentList']['componentData']=[];
|
|
|
|
|
|
|
+ $componentList['component_type'] = $type;
|
|
|
|
|
+ $componentList['componentData']=(object)[];
|
|
|
$ad = json_decode($value['ad']) ?? [];
|
|
$ad = json_decode($value['ad']) ?? [];
|
|
|
|
|
+ if(is_object($ad)){
|
|
|
|
|
+ $ad->thumb = $value['img_url'];
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $ad['thumb'] = $value['img_url'];
|
|
|
|
|
+ }
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['ad'] =is_object($ad) ? (array)$ad ?? [] : $ad ?? [];
|
|
|
// 在 $page[$key][$setor_id] 中增加一个键值为 ad 的数组
|
|
// 在 $page[$key][$setor_id] 中增加一个键值为 ad 的数组
|
|
|
// $page[$key][$setor_id]['ad'] = is_object($ad) ? (array)$ad->ad ?? [] : $ad['ad'] ?? [];
|
|
// $page[$key][$setor_id]['ad'] = is_object($ad) ? (array)$ad->ad ?? [] : $ad['ad'] ?? [];
|
|
|
- $page[$key][$setor_id]['ad'] = $ad ?? [];
|
|
|
|
|
|
|
+
|
|
|
|
|
+ }else if($value['type_id'] == 14){
|
|
|
|
|
+ $type = 1;
|
|
|
|
|
+ $componentList['component_type'] = $type;
|
|
|
|
|
+ if($data['page_type'] == 1){
|
|
|
|
|
+ $component_data->componentData->name = '请选择导航..';
|
|
|
|
|
+ }
|
|
|
|
|
+ $componentData = $component_data->componentData;
|
|
|
|
|
+ $componentList['componentData'] = is_object($componentData) ? (array)$componentData ?? [] : $componentData ?? [];
|
|
|
|
|
+ $componentList['componentData']['listType'] = $listType->listType;
|
|
|
|
|
+ $ad = json_decode($value['ad']) ?? [];
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['ad'] =is_object($ad) ? (array)$ad ?? [] : $ad ?? [];
|
|
|
|
|
+
|
|
|
}else{
|
|
}else{
|
|
|
- $type = 0;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if(isset($sector_key) && in_array($sector_id,$sectors_key)){
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['componentList'][$num-1] = $componentList;
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['componentList'] = array_values($comlist_key[$key][$sector_id]['componentList']);
|
|
|
|
|
+
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $comlist_key[$key][$sector_id]['componentList'] = $componentList;
|
|
|
}
|
|
}
|
|
|
- $page[$key][$setor_id]['componentList']['component_style'] = 1;
|
|
|
|
|
- $page[$key][$setor_id]['componentList']['sort'] = $value['sort_id'];
|
|
|
|
|
- $page[$key][$setor_id]['componentList']['component_type'] = $type;
|
|
|
|
|
}
|
|
}
|
|
|
- // $sector_page = $this->getSectorPage($sector);
|
|
|
|
|
- if(empty($sector)){
|
|
|
|
|
|
|
+ // $page[$keys] = array_column($page,$sectors_key[0]);
|
|
|
|
|
+ $sector_page = json_encode($comlist_key);
|
|
|
|
|
+ if(empty($sector_page)){
|
|
|
return Result::error('通栏不存在!');
|
|
return Result::error('通栏不存在!');
|
|
|
}
|
|
}
|
|
|
- return Result::success($page);
|
|
|
|
|
|
|
+ return Result::success($sector_page);
|
|
|
|
|
+ // return Result::success(gettype($listType));
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 自助建站-组件管理-获取组件预览图列表
|
|
* 自助建站-组件管理-获取组件预览图列表
|