|
|
@@ -2710,7 +2710,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$index_rule = json_decode($rule['index_rule']);
|
|
|
$class_rule = json_decode($rule['class_rule']);
|
|
|
// return Result::success($index_rule);
|
|
|
- $tempalte['index'] = $this->randomPage($data,1,$index_rule);
|
|
|
+ $tempalte['index'] = $this->randomPage($data,$data['page'],$index_rule);
|
|
|
// $tempalte['class'] = $this->randomPage($data,2,$class_rule);
|
|
|
// $tempalte['list'] = $this->randomPage($data,3);
|
|
|
// $tempalte['article'] = $this->randomPage($data,4);
|
|
|
@@ -2909,13 +2909,15 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$data['page'] = $page;
|
|
|
$component = $this->randomComponent($sector_id,$data,$sector);
|
|
|
|
|
|
- return ['sector_id'=>$sector_id,'component'=>$component];
|
|
|
+ return ['sector_id'=>$sector_id,
|
|
|
+ 'component'=>$component
|
|
|
+ ];
|
|
|
}
|
|
|
public function randomComponent($sector_id,$data,$sector){
|
|
|
+ // return $sector;
|
|
|
// 获取原始查询结果
|
|
|
$rawResults = SectorComponent::whereIn('sector_component.sectorid', $sector_id)
|
|
|
->leftJoin('component','component.component_type','sector_component.component_id')
|
|
|
-
|
|
|
->leftJoin('component_img','component_img.component_id','component.component_type')
|
|
|
->where('component_img.template_id','=',$data['template_id'])
|
|
|
->select('component.*','component_img.img_name','component_img.img_id','component_img.img_url',
|
|
|
@@ -2925,7 +2927,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$groupedResults = [];
|
|
|
$arr = 0;
|
|
|
$component_list = [];
|
|
|
-
|
|
|
+ $sorts = [];
|
|
|
+ // return $rawResults;
|
|
|
// $groupedResults重构数组,将相同位置的组件合并,相同组件的样式合并(已经包括所有选择的组件及组件样式)
|
|
|
foreach ($rawResults as $key => $item) {
|
|
|
$sectorId = $item->sectorid;
|
|
|
@@ -2935,6 +2938,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component_column = $item->component_column;
|
|
|
$component_type = $item->type_id;
|
|
|
$component_ad = $item->ad;
|
|
|
+
|
|
|
if (!isset($groupedResults[$sectorId])) {
|
|
|
$groupedResults[$sectorId] = [];
|
|
|
}
|
|
|
@@ -2966,15 +2970,14 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
]
|
|
|
];
|
|
|
// 检查 $sectorId 和 $sort_id 是否为合法的数组键类型(字符串或整数)
|
|
|
-
|
|
|
}else{
|
|
|
if(isset($com_key)){
|
|
|
$com_key++;
|
|
|
}
|
|
|
if((isset($component_ids) && in_array($componentId,$component_ids)) && isset($img_arr)){
|
|
|
- // if(isset($img_arr)){
|
|
|
+ if(in_array($sortId,$sorts)){
|
|
|
$img_arr++;
|
|
|
- // }
|
|
|
+ }
|
|
|
$groupedResults[$sectorId][$sort_id][$com_key]['images'][$img_arr] = [
|
|
|
'img_name' => $item->img_name,
|
|
|
'img_id' => $item->img_id,
|
|
|
@@ -3019,9 +3022,10 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
}
|
|
|
// 判断此组件是否存在数组中的依据(若是有重复的组件,一定是组件样式重复)
|
|
|
$component_ids[$key] = $componentId;
|
|
|
+ $sorts[$key] = $item->sort_id;
|
|
|
}
|
|
|
|
|
|
- // return $groupedResults;
|
|
|
+ return $groupedResults;
|
|
|
|
|
|
$result = [];
|
|
|
// return $sectors;
|
|
|
@@ -3036,45 +3040,49 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
];
|
|
|
// $sector_key[$key] = array_keys($value );
|
|
|
$sector_component = [];
|
|
|
- foreach ($groupedResults[$sectorid] as $sortId => $components) {
|
|
|
- // 通栏某一位置的随机组件
|
|
|
- if(count($components) > 1){
|
|
|
- $componentIds = count($components);
|
|
|
- $selectedComponentId = rand(0, $componentIds - 1);
|
|
|
- }else{
|
|
|
- $selectedComponentId = 0;
|
|
|
- }
|
|
|
- // $Component = $components[$selectedComponentId];
|
|
|
- $Component['component_type'] = $components[$selectedComponentId]['component_type'];
|
|
|
- $Component['sort'] = $components[$selectedComponentId]['sort'];
|
|
|
- // 通栏某一位置的随机组件样式图
|
|
|
- // 检查 $Component['images'] 是否存在且为数组
|
|
|
- if (isset($components[$selectedComponentId]['images']) && is_array($components[$selectedComponentId]['images'])) {
|
|
|
- $images = count($components[$selectedComponentId]['images']);
|
|
|
- $selectedImage = 0;
|
|
|
- if ($images > 1) {
|
|
|
- $selectedImage = rand(0, $images - 1);
|
|
|
- }
|
|
|
- if (isset($components[$selectedComponentId]['images'][$selectedImage])) {
|
|
|
- $Component['component_style'] = is_object($components[$selectedComponentId]['images'][$selectedImage]) ? $components[$selectedComponentId]['images'][$selectedImage]->img_id : $components[$selectedComponentId]['images'][$selectedImage]['img_id'];
|
|
|
+ if(isset($groupedResults[$sectorid]) && !empty($groupedResults[$sectorid]) && is_array($groupedResults[$sectorid])){
|
|
|
+ foreach ($groupedResults[$sectorid] as $sortId => $components) {
|
|
|
+ // 通栏某一位置的随机组件
|
|
|
+ if(count($components) > 1){
|
|
|
+ $componentIds = count($components);
|
|
|
+ $selectedComponentId = rand(0, $componentIds - 1);
|
|
|
+ }else{
|
|
|
+ $selectedComponentId = 0;
|
|
|
}
|
|
|
+ // var_dump($components[$selectedComponentId]);
|
|
|
+ // $Component = $components[$selectedComponentId];
|
|
|
+ $Component['component_type'] = $components[$selectedComponentId]['component_type'] ?? 0;
|
|
|
+ $Component['sort'] = $components[$selectedComponentId]['sort'] ?? 1;
|
|
|
+ // 通栏某一位置的随机组件样式图
|
|
|
+ // 检查 $Component['images'] 是否存在且为数组
|
|
|
+ // if (isset($components[$selectedComponentId]['images']) && is_array($components[$selectedComponentId]['images'])) {
|
|
|
+ // $images = count($components[$selectedComponentId]['images']);
|
|
|
+ // $selectedImage = 0;
|
|
|
+ // if ($images > 1) {
|
|
|
+ // $selectedImage = rand(0, $images - 1);
|
|
|
+ // }
|
|
|
+ // if (isset($components[$selectedComponentId]['images'][$selectedImage])) {
|
|
|
+ // $Component['component_style'] = is_object($components[$selectedComponentId]['images'][$selectedImage]) ? $components[$selectedComponentId]['images'][$selectedImage]->img_id : $components[$selectedComponentId]['images'][$selectedImage]['img_id'];
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // $Component['componentData'] = $components[$selectedComponentId]['componentData'];
|
|
|
+ // if($data['page'] == 1 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
|
|
|
+ // $Component['componentData']['name'] = '请选择栏目';
|
|
|
+ // }
|
|
|
+ // if($data['page'] == 2 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
|
|
|
+ // $Component['componentData']['name'] = '自动生成';
|
|
|
+ // }
|
|
|
+ // if($components[$selectedComponentId]['type_id'] == 11){
|
|
|
+ // $template_data[$key]['ad'] = $components[$selectedComponentId]['componentData']['ad'];
|
|
|
+ // $Component['componentData'] = [];
|
|
|
+ // }
|
|
|
+ // if($components[$selectedComponentId]['type_id'] == 15){
|
|
|
+ // $template_data[$key]['ad'] = $components[$selectedComponentId]['ad'];
|
|
|
+ // // $components[$selectedComponentId]['componentData'] = [];
|
|
|
+ // }
|
|
|
+ $sector_component[$sortId] = $Component;
|
|
|
+ // $sector_component[$sortId] = $selectedComponentId;
|
|
|
}
|
|
|
- $Component['componentData'] = $components[$selectedComponentId]['componentData'];
|
|
|
- if($data['page'] == 1 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
|
|
|
- $Component['componentData']['name'] = '请选择栏目';
|
|
|
- }
|
|
|
- if($data['page'] == 2 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
|
|
|
- $Component['componentData']['name'] = '自动生成';
|
|
|
- }
|
|
|
- if($components[$selectedComponentId]['type_id'] == 11){
|
|
|
- $template_data[$key]['ad'] = $components[$selectedComponentId]['componentData']['ad'];
|
|
|
- $Component['componentData'] = [];
|
|
|
- }
|
|
|
- if($components[$selectedComponentId]['type_id'] == 15){
|
|
|
- $template_data[$key]['ad'] = $components[$selectedComponentId]['ad'];
|
|
|
- // $components[$selectedComponentId]['componentData'] = [];
|
|
|
- }
|
|
|
- $sector_component[$sortId] = $Component;
|
|
|
// var_dump("image",$image);
|
|
|
}
|
|
|
$template_data[$key]['componentList'] = $sector_component;
|