Преглед изворни кода

修改接口:随机模板

15313670163 пре 4 месеци
родитељ
комит
332a0f2aea
1 измењених фајлова са 56 додато и 22 уклоњено
  1. 56 22
      app/JsonRpc/PublicRpcService.php

+ 56 - 22
app/JsonRpc/PublicRpcService.php

@@ -2867,37 +2867,51 @@ class PublicRpcService implements PublicRpcServiceInterface
         $repaet_key = 0;
         $num = 0;
         $type = [];
+        // return $rule_repaet_type;
         // 防止无限循环,设置最大迭代次数
-        $max_iterations = 1000; 
+        $max_iterations = 20; 
         $iteration_count = 0;
-        // return $rule_repeat;
+        // return [
+        //     'repaet_key' => $repaet_key,
+        //     'repeat_num' => $repeat_num,
+        //     'rule_repeat' => $rule_repeat,
+        //     'repeat_type' => $repeat_type,
+        //     'must_type' => $must_type,
+        // ];
         while($repaet_key < $repeat_num && $iteration_count < $max_iterations){
             $num++;
             foreach($repeat_type as $key => $value){
-                $type[$key] = $num;
+                if(!isset($type[$key])){
+                    $type[$key] = 0;
+                }else{
+                    $type[$key]++;
+                }
                 // $type代表每个类型的通栏数量,每个类型的通栏的数量应该≤规则限制的数量
-                if($repaet_key < $repeat_num  && $type[$key] <= $rule_repeat[$key]-1){
+                if($repaet_key < $repeat_num  && $type[$key] <= $rule_repeat[$key]){
                     // $max_repaert_num = $rule_repeat[$key];
                     // if($max_repaert_num < $num ){
-                        // $arr_key = $num+$key;
-                        if (count($value) > 0) {
+                    //     // $arr_key = $num+$key;
+                        if (count($value) > 1) {
                             // 若 可以随机的通栏类型存在多个通栏,随机取其一
                             $repeat_sector_key[$repaet_key] = $value[array_rand($value)];
                         } else {
                             $repeat_sector_key[$repaet_key] = $value[0];
                         }
-                        // $type[$repaet_key] = $repeat_sector_key[$repaet_key];
+                        $type[$repaet_key] = $repeat_sector_key[$repaet_key];
                         $repaet_key++;
                     // }
-                }else{
-                    break;
                 }
+                // else{
+                //     break;
+                // }
             }
+            // var_dump("num",  $type[$key]);
+            // var_dump("repeat_sector_key", $repeat_sector_key);
             $iteration_count++;
         }
-        
+        // return $repeat_sector_key;
         // var_dump("num", $num);
-        // var_dump("repeat_sector_key", $repeat_sector_key);
+        var_dump("repeat_sector_key", $repeat_sector_key);
         // 随机的重复通栏键值转换成真正的通栏
         $repeat_sector = [];
         foreach ($repeat_sector_key as $key => $value) {
@@ -2908,27 +2922,47 @@ class PublicRpcService implements PublicRpcServiceInterface
         $repeat_count = count($repeat_sector);
         var_dump("repeat_count",$repeat_count);
         // var_dump("repeat_sector", $repeat_sector);
-
+        //  return $repeat_sector;
 
         $sector = array_merge($repeat_sector,$sector_zuhe1);
         // 处理头条及轮播图在随机通栏中的特殊位置特殊处理
         $sector_specal_sort = array_column($sector,'sector_type');
-        if(in_array(6,$sector_specal_sort) || in_array(7,$sector_specal_sort)){
+        if((in_array(6,$sector_specal_sort) || in_array(7,$sector_specal_sort)) ){
+            
             $toutiao_key = array_search(6,$sector_specal_sort) ?? null;
             $pic_key = array_search(7,$sector_specal_sort) ?? null;
+            $cat_key = array_search(5,$sector_specal_sort) ?? null;
             $toutiao = $sector[$toutiao_key];
             $pic =  $sector[$pic_key];
-            $soty_1 = $sector[0];
+            $cat =  $sector[$cat_key];
+            $sort_1 = $sector[0];
             $sort_2 = $sector[1];
-            if(!empty($toutiao_key)){
-                $sector[0] = $toutiao;
-                $sector[$toutiao_key] = $soty_1;
-                $sector[1] = $pic;
-                $sector[$pic_key] = $sort_2;
-            }else{
-                 $sector[0] = $pic;
-                $sector[$pic_key] = $sort_2;
+            $sort_3 = $sector[2];
+            if($data['page'] == 1){
+                if(!empty($toutiao_key)){
+                    $sector[0] = $toutiao;
+                    $sector[$toutiao_key] = $sort_1;
+                    $sector[1] = $pic;
+                    $sector[$pic_key] = $sort_2;
+                }else{
+                     $sector[0] = $pic;
+                    $sector[$pic_key] = $sort_1;
+                }
             }
+            if($data['page'] == 2){
+                $sector[0] = $cat;
+                $sector[$cat_key] = $sort_1;
+                if(!empty($toutiao_key)){
+                    $sector[1] = $toutiao;
+                    $sector[$toutiao_key] = $sort_2;
+                    $sector[2] = $pic;
+                    $sector[$pic_key] = $sort_3;
+                }else{
+                     $sector[1] = $pic;
+                    $sector[$pic_key] = $sort_2;
+                }
+            }
+            
 
         }
         $sector_id = array_column($sector,'id');