|
|
@@ -40,6 +40,7 @@ use App\Model\ComponentType;
|
|
|
use App\Model\Article;
|
|
|
use App\Model\WebsiteCategory;
|
|
|
use App\Model\AdPlace;
|
|
|
+use App\Model\Company;
|
|
|
use App\Model\WebsiteImg;
|
|
|
use App\Model\SectorComponent;
|
|
|
use App\Model\ComponentImg;
|
|
|
@@ -1219,11 +1220,18 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'sort_id' => $key + 1,
|
|
|
'place_id' => $data['place_type'],
|
|
|
];
|
|
|
+ $componentTypes[] = $item;
|
|
|
+ $components[] = [
|
|
|
+ 'sort_id' => $key + 1,
|
|
|
+ 'component_type' => $item,
|
|
|
+ ];
|
|
|
+ $place_ids[] = $data['place_type'];
|
|
|
}
|
|
|
}
|
|
|
$component_num = count($component);
|
|
|
$count = count(array_unique($component));
|
|
|
- // return Result::success($sector_component);
|
|
|
+
|
|
|
+ // return Result::success($component_sort);
|
|
|
if(count($sort) != $data['component_num'] || $component_num != $count){
|
|
|
return Result::error('组件关联错误!');
|
|
|
}
|
|
|
@@ -1243,11 +1251,25 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
Db::rollBack();
|
|
|
return Result::error('通栏关联组件失败!');
|
|
|
}
|
|
|
- // $up_component = Component::whereIn('component_type',$sector_component['component_id'])->update(['status' => 2]);
|
|
|
- // if(empty($up_component)){
|
|
|
- // Db::rollBack();
|
|
|
- // return Result::error('通栏关联组件失败!');
|
|
|
- // }
|
|
|
+ // unset($sector_component['place_id']);
|
|
|
+ // unset($sector_component['sector_id']);
|
|
|
+ // 2. 查询数据库中已存在的component_type(只保留存在的记录)
|
|
|
+ $existingTypes = Component::whereIn('component_type', $componentTypes)
|
|
|
+ ->pluck('component_type') // 提取存在的component_type
|
|
|
+ ->toArray();
|
|
|
+ // 3. 过滤$components数组,只保留数据库中已存在的记录(核心:避免新增)
|
|
|
+ $updateData = array_filter($components, function ($item) use ($existingTypes) {
|
|
|
+ return in_array($item['component_type'], $existingTypes);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 4. 执行upsert(此时$updateData中只有已存在的记录,不会新增)
|
|
|
+ if (!empty($updateData)) {
|
|
|
+ $component_sort = Component::upsert($updateData,['component_type'],['sort_id']);
|
|
|
+ }
|
|
|
+ if(empty($component_sort)){
|
|
|
+ Db::rollBack();
|
|
|
+ return Result::error('组件位置关联失败!');
|
|
|
+ }
|
|
|
$result = Sector::insertGetId($data);
|
|
|
if (empty($result)) {
|
|
|
Db::rollBack();
|
|
|
@@ -1332,13 +1354,12 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$sector_component = [];
|
|
|
foreach ($sort as $key => $subArray) {
|
|
|
foreach ($subArray as $k => $item) {
|
|
|
- $component[] = $item;
|
|
|
- $sector_component[] = [
|
|
|
- 'sector_id' => $data['sector_id'],
|
|
|
- 'component_id' => $item,
|
|
|
+ $componentTypes[] = $item;
|
|
|
+ $components[] = [
|
|
|
'sort_id' => $key + 1,
|
|
|
- 'place_id' => $data['place_type'],
|
|
|
+ 'component_type' => $item,
|
|
|
];
|
|
|
+ $place_ids[] = $data['place_type'];
|
|
|
}
|
|
|
}
|
|
|
// // 批量插入数据到 ComponentSector 表
|
|
|
@@ -1378,6 +1399,23 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
// Db::rollBack();
|
|
|
// return Result::error('通栏关联组件失败!');
|
|
|
// }
|
|
|
+ // 2. 查询数据库中已存在的component_type(只保留存在的记录)
|
|
|
+ $existingTypes = Component::whereIn('component_type', $componentTypes)
|
|
|
+ ->pluck('component_type') // 提取存在的component_type
|
|
|
+ ->toArray();
|
|
|
+ // 3. 过滤$components数组,只保留数据库中已存在的记录(核心:避免新增)
|
|
|
+ $updateData = array_filter($components, function ($item) use ($existingTypes) {
|
|
|
+ return in_array($item['component_type'], $existingTypes);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 4. 执行upsert(此时$updateData中只有已存在的记录,不会新增)
|
|
|
+ if (!empty($updateData)) {
|
|
|
+ $component_sort = Component::upsert($updateData,['component_type'],['sort_id']);
|
|
|
+ }
|
|
|
+ if(empty($component_sort)){
|
|
|
+ Db::rollBack();
|
|
|
+ return Result::error('组件位置关联失败!');
|
|
|
+ }
|
|
|
$result = Sector::where('id', $data['id'])->update($data);
|
|
|
if (empty($result)) {
|
|
|
Db::rollBack();
|
|
|
@@ -1466,9 +1504,10 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'component_keyword' => $data['component_keyword'],
|
|
|
];
|
|
|
$component_head_code = [
|
|
|
- 'component_type' => $add_arr['component_type'],
|
|
|
- 'type_id' => $add_arr['type_id'],
|
|
|
+ 'component_id' => $add_arr['component_type'],
|
|
|
+ 'component_type' => $add_arr['type_id'],
|
|
|
'component_name' => $add_arr['component_name'],
|
|
|
+ 'component_style' => 1,
|
|
|
];
|
|
|
$add_arr['component_code'] = json_encode($component_head_code,true);
|
|
|
switch($data['type_id']){
|
|
|
@@ -1478,12 +1517,15 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
case 4: //4:资讯-最新类组件;
|
|
|
case 5: //5:资讯-推荐类组件;
|
|
|
case 6: //6:资讯-热点类组件;
|
|
|
+ // $component_data['componentData']['name'] = '';
|
|
|
$add_arr['level'] = $data['type_id'];
|
|
|
$add_arr['img_num'] = intval($data['img_num']);
|
|
|
$add_arr['text_num'] = intval($data['text_num']);
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => $add_arr['level'],
|
|
|
+ 'name' => '',
|
|
|
+ 'category_arr' => [],
|
|
|
'imgSize' => $data['img_num'] ?? '',
|
|
|
'textSize' => $data['text_num'] ?? '',
|
|
|
'child' => [
|
|
|
@@ -1492,10 +1534,17 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'textSize' => ''
|
|
|
]
|
|
|
];
|
|
|
+ if($data['type_id'] == 4){
|
|
|
+ $component_data['componentData']['name'] = '热点精选';
|
|
|
+ }
|
|
|
+ if($data['type_id'] == 5){
|
|
|
+ $component_data['componentData']['name'] = '热点精选';
|
|
|
+ }
|
|
|
$add_arr['component_data'] = json_encode($component_data, true);
|
|
|
$add_arr['component_column'] = $component_type['com_code'] ?? '';
|
|
|
break;
|
|
|
case 7: //7:资讯-栏目类组件;
|
|
|
+ case 15: //15:滚动图文类;
|
|
|
$add_arr['img_num'] = intval($data['img_num']);
|
|
|
$add_arr['text_num'] = intval($data['text_num']);
|
|
|
$add_arr['child_imgnum'] = intval($data['child_imgnum'] ?? null);
|
|
|
@@ -1503,6 +1552,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => '',
|
|
|
+ 'name' => '',
|
|
|
+ 'category_arr' => [],
|
|
|
'imgSize' => $add_arr['img_num'] ?? '',
|
|
|
'textSize' => $add_arr['text_num'] ?? '',
|
|
|
'child' => [
|
|
|
@@ -1514,7 +1565,6 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$add_arr['component_data'] = json_encode($component_data,true);
|
|
|
$add_arr['component_column'] = $component_type['com_code'] ?? '';
|
|
|
break;
|
|
|
-
|
|
|
case 8: //8:列表类组件;
|
|
|
$add_arr['pageSize'] = intval($data['pageSize']);
|
|
|
$component_data['componentData'] = [
|
|
|
@@ -1569,7 +1619,9 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
// $ad_imginfo = json_decode($data['img_info'],true);
|
|
|
|
|
|
break;
|
|
|
- case 13: //13:底部导航类;
|
|
|
+ // case 13: //13:底部导航类;
|
|
|
+ case 17: //17:单页列表类;
|
|
|
+ case 18: //18:单页详情类;
|
|
|
$component_data['componentData'] = [
|
|
|
'fcat_id' => '',
|
|
|
];
|
|
|
@@ -1590,6 +1642,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => '',
|
|
|
+ 'name' => '',
|
|
|
+ 'category_arr' => [],
|
|
|
'imgSize' => $data['img_num'] ?? '',
|
|
|
'textSize' => $data['text_num'] ?? '',
|
|
|
'child' => [
|
|
|
@@ -1618,6 +1672,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
if($data['type_id'] == 11 || $data['type_id'] == 14){
|
|
|
Db::beginTransaction();
|
|
|
try{
|
|
|
@@ -1722,9 +1777,10 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'component_keyword' => $data['component_keyword'],
|
|
|
];
|
|
|
$component_head_code = [
|
|
|
- 'component_type' => $add_arr['component_type'],
|
|
|
- 'type_id' => $add_arr['type_id'],
|
|
|
+ 'component_id' => $add_arr['component_type'],
|
|
|
+ 'component_type' => $add_arr['type_id'],
|
|
|
'component_name' => $add_arr['component_name'],
|
|
|
+ 'component_style' => 1,
|
|
|
];
|
|
|
$add_arr['component_code'] = json_encode($component_head_code,true);
|
|
|
switch($data['type_id']){
|
|
|
@@ -1734,12 +1790,15 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
case 4: //4:资讯-最新类组件;
|
|
|
case 5: //5:资讯-推荐类组件;
|
|
|
case 6: //6:资讯-热点类组件;
|
|
|
+ // $component_data['componentData']['name'] = '';
|
|
|
$add_arr['level'] = $data['type_id'];
|
|
|
$add_arr['img_num'] = intval($data['img_num']);
|
|
|
$add_arr['text_num'] = intval($data['text_num']);
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => $add_arr['level'],
|
|
|
+ 'category_arr' => [],
|
|
|
+ 'name' => '',
|
|
|
'imgSize' => $data['img_num'] ?? '',
|
|
|
'textSize' => $data['text_num'] ?? '',
|
|
|
'child' => [
|
|
|
@@ -1748,10 +1807,17 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
'textSize' => ''
|
|
|
]
|
|
|
];
|
|
|
+ if($data['type_id'] == 4){
|
|
|
+ $component_data['componentData']['name'] = '最新资讯';
|
|
|
+ }
|
|
|
+ if($data['type_id'] == 5){
|
|
|
+ $component_data['componentData']['name'] = '热点精选';
|
|
|
+ }
|
|
|
$add_arr['component_data'] = json_encode($component_data, true);
|
|
|
$add_arr['component_column'] = $component_type['com_code'] ?? '';
|
|
|
break;
|
|
|
case 7: //7:资讯-栏目类组件;
|
|
|
+ case 15: //15:滚动图文类;
|
|
|
$add_arr['img_num'] = intval($data['img_num']);
|
|
|
$add_arr['text_num'] = intval($data['text_num']);
|
|
|
$add_arr['child_imgnum'] = intval($data['child_imgnum'] ?? null);
|
|
|
@@ -1759,6 +1825,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => '',
|
|
|
+ 'name' => '',
|
|
|
+ 'category_arr' => [],
|
|
|
'imgSize' => $add_arr['img_num'] ?? '',
|
|
|
'textSize' => $add_arr['text_num'] ?? '',
|
|
|
'child' => [
|
|
|
@@ -1823,7 +1891,9 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
// $add_arr['adimg_info'] = $data['img_info'];
|
|
|
// $ad_imginfo = json_decode($data['img_info'],true);
|
|
|
break;
|
|
|
- case 13: //13:底部导航类;
|
|
|
+ // case 13: //13:底部导航类;
|
|
|
+ case 17: //17:单页列表类;
|
|
|
+ case 18: //18:单页详情类;
|
|
|
$component_data['componentData'] = [
|
|
|
'fcat_id' => '',
|
|
|
];
|
|
|
@@ -1844,6 +1914,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$component_data['componentData'] = [
|
|
|
'category_id' => '',
|
|
|
'level' => '',
|
|
|
+ 'name' => '',
|
|
|
+ 'category_arr' => [],
|
|
|
'imgSize' => $data['img_num'] ?? '',
|
|
|
'textSize' => $data['text_num'] ?? '',
|
|
|
'child' => [
|