Quellcode durchsuchen

修改随机模板的接口;

15313670163 vor 4 Monaten
Ursprung
Commit
f6ef381eb4
1 geänderte Dateien mit 41 neuen und 13 gelöschten Zeilen
  1. 41 13
      app/JsonRpc/PublicRpcService.php

+ 41 - 13
app/JsonRpc/PublicRpcService.php

@@ -2707,8 +2707,31 @@ class PublicRpcService implements PublicRpcServiceInterface
             return Result::error('此皮肤不存在!');
             return Result::error('此皮肤不存在!');
         }
         }
         $rule = TemplateRule::first();
         $rule = TemplateRule::first();
-        $index_rule = json_decode($rule['index_rule']);
-        $class_rule = json_decode($rule['class_rule']);
+        switch ($data['page']) {
+            case 1:
+                $index_rule = json_decode($rule['index_rule']);
+                break;
+            case 2:
+                $index_rule = json_decode($rule['class_rule']);
+                break;
+            case 3:
+                $index_rule = json_decode($rule['list_rule']);
+                break;
+            case 4:
+                $index_rule = json_decode($rule['article_rule']);
+                break;
+            case 5:
+                $index_rule = json_decode($rule['search_rule']);
+                break;
+            case 6:
+                $index_rule = json_decode($rule['aloneList_rule']);
+                break;
+            case 7:
+                $index_rule = json_decode($rule['aloneArticle_rule']);
+                break;
+            default:
+                break;
+        }
         // return Result::success($index_rule);
         // return Result::success($index_rule);
         $tempalte['index'] = $this->randomPage($data,$data['page'],$index_rule);
         $tempalte['index'] = $this->randomPage($data,$data['page'],$index_rule);
         // $tempalte['class'] = $this->randomPage($data,2,$class_rule);
         // $tempalte['class'] = $this->randomPage($data,2,$class_rule);
@@ -2731,7 +2754,7 @@ class PublicRpcService implements PublicRpcServiceInterface
         if(empty($sectors)){
         if(empty($sectors)){
             return Result::error('通栏不存在!');
             return Result::error('通栏不存在!');
         }
         }
-
+        // return $sectors;
         // 获取每个类别的通栏数量
         // 获取每个类别的通栏数量
         $type_num = array_count_values(array_column($sectors,'sector_type'));
         $type_num = array_count_values(array_column($sectors,'sector_type'));
         // 此页面通栏的所有类别
         // 此页面通栏的所有类别
@@ -2760,7 +2783,7 @@ class PublicRpcService implements PublicRpcServiceInterface
         }
         }
         // var_dump("sector_types",$all_sector_types);
         // var_dump("sector_types",$all_sector_types);
         // var_dump("must_type",$must_type);
         // var_dump("must_type",$must_type);
-        // return $type_num;
+        // return $is_must;
 
 
 
 
         // 非必须通栏的随机处理
         // 非必须通栏的随机处理
@@ -2804,7 +2827,7 @@ class PublicRpcService implements PublicRpcServiceInterface
         // var_dump("randomKeys",$randomKeys);
         // var_dump("randomKeys",$randomKeys);
         // var_dump("random_sector",$random_sector);
         // var_dump("random_sector",$random_sector);
         var_dump("rand_count",$rand_count);
         var_dump("rand_count",$rand_count);
-        // return $random_type;
+        // return $random_sector;
 
 
         // 必需通栏
         // 必需通栏
         $must_type = array_intersect($all_sector_types,$must_type);
         $must_type = array_intersect($all_sector_types,$must_type);
@@ -2832,7 +2855,7 @@ class PublicRpcService implements PublicRpcServiceInterface
                 $rule_repeat[$key] = $value-1;
                 $rule_repeat[$key] = $value-1;
             }
             }
         }
         }
-        // var_dump("repeat_num",$repeat_num);
+        var_dump("repeat_num",$repeat_num);
         // return $sector_zuhe1;
         // return $sector_zuhe1;
 
 
         // 剩余通栏进行重复处理
         // 剩余通栏进行重复处理
@@ -2844,8 +2867,11 @@ class PublicRpcService implements PublicRpcServiceInterface
         $repaet_key = 0;
         $repaet_key = 0;
         $num = 0;
         $num = 0;
         $type = [];
         $type = [];
+        // 防止无限循环,设置最大迭代次数
+        $max_iterations = 1000; 
+        $iteration_count = 0;
         // return $rule_repeat;
         // return $rule_repeat;
-        for($repaet_key; $repaet_key < $repeat_num;){
+        while($repaet_key < $repeat_num && $iteration_count < $max_iterations){
             $num++;
             $num++;
             foreach($repeat_type as $key => $value){
             foreach($repeat_type as $key => $value){
                 $type[$key] = $num;
                 $type[$key] = $num;
@@ -2867,7 +2893,7 @@ class PublicRpcService implements PublicRpcServiceInterface
                     break;
                     break;
                 }
                 }
             }
             }
-            
+            $iteration_count++;
         }
         }
         
         
         // var_dump("num", $num);
         // var_dump("num", $num);
@@ -2908,7 +2934,7 @@ class PublicRpcService implements PublicRpcServiceInterface
         $sector_id = array_column($sector,'id');
         $sector_id = array_column($sector,'id');
         $data['page'] = $page;
         $data['page'] = $page;
         $component[] = $this->randomComponent($sector_id,$data,$sector);
         $component[] = $this->randomComponent($sector_id,$data,$sector);
-
+        var_dump("sector_id",$sector_id);
         return ['sector_id'=>$sector_id,
         return ['sector_id'=>$sector_id,
         // 'sector'=>$sector,
         // 'sector'=>$sector,
         'component'=>$component,
         'component'=>$component,
@@ -3080,6 +3106,7 @@ class PublicRpcService implements PublicRpcServiceInterface
                     // $Component = $components[$selectedComponentId];
                     // $Component = $components[$selectedComponentId];
                     $Component['component_type'] = $components[$selectedComponentId]['component_type'] ?? 0;
                     $Component['component_type'] = $components[$selectedComponentId]['component_type'] ?? 0;
                     $Component['sort'] = $components[$selectedComponentId]['sort'] ?? 1;
                     $Component['sort'] = $components[$selectedComponentId]['sort'] ?? 1;
+                    $Component['type_id'] = $components[$selectedComponentId]['type_id'] ?? 0;
                     // 通栏某一位置的随机组件样式图
                     // 通栏某一位置的随机组件样式图
                     // 检查 $Component['images'] 是否存在且为数组
                     // 检查 $Component['images'] 是否存在且为数组
                     if (isset($components[$selectedComponentId]['images']) && is_array($components[$selectedComponentId]['images'])) {
                     if (isset($components[$selectedComponentId]['images']) && is_array($components[$selectedComponentId]['images'])) {
@@ -3094,20 +3121,21 @@ class PublicRpcService implements PublicRpcServiceInterface
                     }
                     }
                     // var_dump($images);
                     // var_dump($images);
                     $Component['componentData'] = $components[$selectedComponentId]['componentData'];
                     $Component['componentData'] = $components[$selectedComponentId]['componentData'];
-                    if($data['page'] == 1 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
+                    if($data['page'] == 1 &&(isset($components[$selectedComponentId]['componentData']['type_id']) && in_array($components[$selectedComponentId]['type_id'],[7,14,15])) ){
                         $Component['componentData']['name'] = '请选择栏目';
                         $Component['componentData']['name'] = '请选择栏目';
                     }
                     }
-                    if($data['page'] == 2 && in_array($components[$selectedComponentId]['type_id'],[7,14,15])){
+                    if($data['page'] == 2 && (isset($components[$selectedComponentId]['componentData']['type_id']) && in_array($components[$selectedComponentId]['type_id'],[7,14,15]))){
                         $Component['componentData']['name'] = '自动生成';
                         $Component['componentData']['name'] = '自动生成';
                     }
                     }
-                    if($components[$selectedComponentId]['type_id'] == 11){
+                    if(isset($components[$selectedComponentId]['componentData']['type_id']) && $components[$selectedComponentId]['type_id'] == 11){
                        $template_data[$key]['ad'] = $components[$selectedComponentId]['componentData']['ad'];
                        $template_data[$key]['ad'] = $components[$selectedComponentId]['componentData']['ad'];
                        $Component['componentData'] = [];
                        $Component['componentData'] = [];
                     }
                     }
-                    if($components[$selectedComponentId]['type_id'] == 15){
+                    if(isset($components[$selectedComponentId]['componentData']['type_id']) && $components[$selectedComponentId]['type_id'] == 15){
                        $template_data[$key]['ad'] = $components[$selectedComponentId]['ad'];
                        $template_data[$key]['ad'] = $components[$selectedComponentId]['ad'];
                     //    $components[$selectedComponentId]['componentData'] = [];
                     //    $components[$selectedComponentId]['componentData'] = [];
                     }
                     }
+                    // var_dump('---------------------------',$components[$selectedComponentId]);
                     $sector_component[$sortId] = $Component;
                     $sector_component[$sortId] = $Component;
                     //  $sector_component[$sortId] = $selectedComponentId;
                     //  $sector_component[$sortId] = $selectedComponentId;
                 }
                 }