|
|
@@ -1218,6 +1218,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'component_id' => $item,
|
|
|
'sort_id' => $key + 1,
|
|
|
'place_id' => $data['place_type'],
|
|
|
+ 'sectorid' => $data['id'],
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
@@ -1229,10 +1230,11 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
}
|
|
|
// 通栏分类:1:资讯类:2:通栏广告类;3:混合类;4:头条类;5:轮播图类;
|
|
|
$sector_code = [
|
|
|
- 'sectorName' => $data['sector_name'],
|
|
|
- 'sectorId' => $data['sector_id'],
|
|
|
- 'sectorType' => $data['sector_type'],
|
|
|
- 'sectorPlace' => $data['place_type'],
|
|
|
+ $data['sector_id'] => [
|
|
|
+ 'sectorName' => $data['sector_name'],
|
|
|
+ 'sectorImg' => $data['sector_img'],
|
|
|
+ 'sectorHeight' =>$data['pic_height']
|
|
|
+ ],
|
|
|
];
|
|
|
// return Result::success($sector_code);
|
|
|
$data['sector_code'] = json_encode($sector_code);
|
|
|
@@ -1335,6 +1337,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component[] = $item;
|
|
|
$sector_component[] = [
|
|
|
'sector_id' => $data['sector_id'],
|
|
|
+ 'sectorid' => $data['id'],
|
|
|
'component_id' => $item,
|
|
|
'sort_id' => $key + 1,
|
|
|
'place_id' => $data['place_type'],
|
|
|
@@ -1352,7 +1355,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$data['sector_code'] = json_encode($sector_code);
|
|
|
Db::beginTransaction();
|
|
|
try {
|
|
|
- $com_sector = SectorComponent::where('sector_id', $sector['sector_id'])->pluck('component_id');
|
|
|
+ $com_sector = SectorComponent::where('sectorid', $data['id'])->pluck('component_id');
|
|
|
if(empty($com_sector)){
|
|
|
Db::rollBack();
|
|
|
return Result::error('通栏解除组件关联失败!');
|
|
|
@@ -1362,7 +1365,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
// Db::rollBack();
|
|
|
// return Result::error('通栏解除组件关联失败!');
|
|
|
// }
|
|
|
- $del_SectorComponent = SectorComponent::where('sector_id', $sector['sector_id'])->delete();
|
|
|
+ $del_SectorComponent = SectorComponent::where('sectorid', $data['id'])->delete();
|
|
|
if(empty($del_SectorComponent)){
|
|
|
Db::rollBack();
|
|
|
return Result::error('通栏解除组件关联失败!');
|
|
|
@@ -2901,17 +2904,17 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
|
|
|
}
|
|
|
$sector_id = array_column($sector,'id');
|
|
|
- $sector_code = array_column($sector,'sector_code');
|
|
|
+ // $sector_code = array_column($sector,'sector_code');
|
|
|
// $sector_code = array_flip($sector_code);
|
|
|
- foreach ($sector_code as &$item) {
|
|
|
- $item = json_decode($item, true);
|
|
|
- }
|
|
|
- unset($item);
|
|
|
- $component = $this->randomComponent($sector_id,$data,$sector_code);
|
|
|
+ // foreach ($sector_code as &$item) {
|
|
|
+ // $item = json_decode($item, true);
|
|
|
+ // }
|
|
|
+ // unset($item);
|
|
|
+ $component = $this->randomComponent($sector_id,$data,$sector);
|
|
|
|
|
|
- return ['sector_code'=>$sector_code,'sector'=>$sector,'component'=>$component];
|
|
|
+ return ['sector_id'=>$sector_id,'component'=>$component];
|
|
|
}
|
|
|
- public function randomComponent($sector_id,$data,$sector_code){
|
|
|
+ public function randomComponent($sector_id,$data,$sector){
|
|
|
// 获取原始查询结果
|
|
|
$rawResults = SectorComponent::whereIn('sector_component.sectorid', $sector_id)
|
|
|
->leftJoin('component','component.component_type','sector_component.component_id')
|
|
|
@@ -2923,66 +2926,106 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
// return $rawResults;
|
|
|
// 按sectorid和sort_id分组数据
|
|
|
$groupedResults = [];
|
|
|
- foreach ($rawResults as $item) {
|
|
|
+ $arr = 0;
|
|
|
+ $component_list = [];
|
|
|
+ foreach ($rawResults as $key => $item) {
|
|
|
$sectorId = $item->sectorid;
|
|
|
$sortId = $item->sort_id;
|
|
|
$componentId = $item->component_type;
|
|
|
-
|
|
|
+ $component_data = $item->component_data;
|
|
|
+ $component_column = $item->component_column;
|
|
|
if (!isset($groupedResults[$sectorId])) {
|
|
|
$groupedResults[$sectorId] = [];
|
|
|
}
|
|
|
-
|
|
|
- if (!isset($groupedResults[$sectorId][$sortId])) {
|
|
|
- $groupedResults[$sectorId][$sortId] = [];
|
|
|
- }
|
|
|
-
|
|
|
- if (!isset($groupedResults[$sectorId][$sortId][$componentId])) {
|
|
|
- $groupedResults[$sectorId][$sortId][$componentId] = [
|
|
|
- 'component' => $item->component_type,
|
|
|
- 'images' => []
|
|
|
+ $componentData = !empty($component_data) && is_string($component_data) ? json_decode($component_data, true) : [];
|
|
|
+ $component_listtype = !empty($component_column) && is_string($component_column) ? json_decode($component_column, true) : [];
|
|
|
+ $component_code = !empty($component_code) && is_string($component_code) ? json_decode($component_code, true) : [];
|
|
|
+ // 确保 $componentData['componentData'] 是数组,避免 array_push 传入 null
|
|
|
+ if (!isset($componentData['componentData']) || !is_array($componentData['componentData'])) {
|
|
|
+ $componentData['componentData'] = [];
|
|
|
+ }
|
|
|
+ $componentData['componentData'] += $component_listtype;
|
|
|
+ $component_code = $componentData;
|
|
|
+ $component_list[$key] = $component_code;
|
|
|
+ // $component_list[$key]['listType'] = $component_listtype;
|
|
|
+ // }
|
|
|
+ $sort_id = intval($sortId-1);
|
|
|
+ if (!isset($groupedResults[$sectorId][$sort_id])) {
|
|
|
+
|
|
|
+ // $groupedResults[$sectorId][$sortId] = [];
|
|
|
+ $groupedResults[$sectorId][$sort_id] = [
|
|
|
+ 'component_type' => $item->component_type,
|
|
|
+ 'sort_id' => $sortId,
|
|
|
+ 'images' => [
|
|
|
+ 'img_name' => $item->img_name,
|
|
|
+ 'img_id' => $item->img_id,
|
|
|
+ 'img_url' => $item->img_url,
|
|
|
+ ]
|
|
|
];
|
|
|
+ // 检查 $sectorId 和 $sort_id 是否为合法的数组键类型(字符串或整数)
|
|
|
+ if (is_scalar($sectorId) && is_scalar($sort_id)) {
|
|
|
+ $groupedResults[(int)$sectorId][(int)$sort_id]['componentData'] = $component_code['componentData'];
|
|
|
+ } else {
|
|
|
+ // 处理非法键类型的情况,可根据实际需求修改错误处理逻辑
|
|
|
+ trigger_error('Illegal offset type for $sectorId or $sort_id', E_USER_WARNING);
|
|
|
+ }
|
|
|
}
|
|
|
+ // 检查 $component_data 是否为 null 或空字符串,避免 json_decode 接收 null 参数
|
|
|
+ // if (!isset($groupedResults[$sectorId][$sortId])) {
|
|
|
+
|
|
|
+ // $arr++;
|
|
|
+ // }
|
|
|
|
|
|
- if (!empty($item->component_img)) {
|
|
|
- $groupedResults[$sectorId][$sortId][$componentId]['images'][] = [
|
|
|
- 'img_name' => $item->img_name,
|
|
|
- 'img_id' => $item->img_id,
|
|
|
- 'img_url' => $item->img_url,
|
|
|
- ];
|
|
|
- }
|
|
|
+ // if (!empty($item->component_img)) {
|
|
|
+ // $groupedResults[$sectorId][$sortId][$componentId]['images'][] = [
|
|
|
+ // 'img_name' => $item->img_name,
|
|
|
+ // 'img_id' => $item->img_id,
|
|
|
+ // 'img_url' => $item->img_url,
|
|
|
+ // ];
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
// 重组数据结构为: sectorid -> sort_id -> {component, img}
|
|
|
$result = [];
|
|
|
- foreach ($sector_code as $key => $value) {
|
|
|
- // array_push($value['sort_id'],$key);
|
|
|
- $page['template'][$key] = $value;
|
|
|
- $sector_key[$key] = array_keys($value);
|
|
|
- // foreach ($rawResults as $sortId => $components) {
|
|
|
- // // 随机选择一个组件
|
|
|
- // $componentIds = array_keys($components);
|
|
|
- // $selectedComponentId = $componentIds[array_rand($componentIds)];
|
|
|
- // $selectedComponent = $components[$selectedComponentId];
|
|
|
- // // 随机选择一个样式
|
|
|
- // $images = $selectedComponent['images'];
|
|
|
- // $selectedImage = [];
|
|
|
- // if (!empty($images)) {
|
|
|
- // $selectedImage = $images[array_rand($images)];
|
|
|
- // }
|
|
|
+ // $sector_key = array_keys($sector_code[0]);
|
|
|
+ // return $sector_code[0];
|
|
|
+ // foreach ($sector as $key => $value) {
|
|
|
+ // // array_push($value['sort_id'],$key);
|
|
|
+ // $page['template'][$key] = [
|
|
|
+ // $value['sector_id'] => [
|
|
|
+ // 'sectorName' => $value['sector_name'],
|
|
|
+ // 'sectorHeight' => $value['pic_height'],
|
|
|
+ // ]
|
|
|
+ // ];
|
|
|
+ // if($value['sector_type'] == 2){
|
|
|
+
|
|
|
+ // }
|
|
|
+ // // $sector_key[$key] = array_keys($value );
|
|
|
+ // foreach ($rawResults as $sortId => $components) {
|
|
|
+ // // // 随机选择一个组件
|
|
|
+ // // $componentIds = array_keys($components);
|
|
|
+ // // $selectedComponentId = $componentIds[array_rand($componentIds)];
|
|
|
+ // // $selectedComponent = $components[$selectedComponentId];
|
|
|
+ // // // 随机选择一个样式
|
|
|
+ // // $images = $selectedComponent['images'];
|
|
|
+ // // $selectedImage = [];
|
|
|
+ // // if (!empty($images)) {
|
|
|
+ // // $selectedImage = $images[array_rand($images)];
|
|
|
+ // // }
|
|
|
|
|
|
- // // 构建最终结构
|
|
|
- // if (!isset($result[$sectorId])) {
|
|
|
- // $result[$sectorId] = [];
|
|
|
- // }
|
|
|
- // $result[$sectorId][$sortId] = [
|
|
|
- // 'component' => $selectedComponent['component'],
|
|
|
- // 'img' => $selectedImage
|
|
|
- // ];
|
|
|
- // }
|
|
|
- // $page['template'][$key][$sector_key]['componentData'] = $result[$sectorId];
|
|
|
- }
|
|
|
+ // // // 构建最终结构
|
|
|
+ // // if (!isset($result[$sectorId])) {
|
|
|
+ // // $result[$sectorId] = [];
|
|
|
+ // // }
|
|
|
+ // // $result[$sectorId][$sortId] = [
|
|
|
+ // // 'component' => $selectedComponent['component'],
|
|
|
+ // // 'img' => $selectedImage
|
|
|
+ // // ];
|
|
|
+ // }
|
|
|
+ // // $page['template'][$key][$sector_key]['componentData'] = $result[$sectorId];
|
|
|
+ // }
|
|
|
|
|
|
- return $sector_key;
|
|
|
+ return $groupedResults;
|
|
|
}
|
|
|
public function getPageCode($sector,$page){
|
|
|
if(empty($sector)){
|