LiuJ 1 dia atrás
pai
commit
6f8fc5f570
1 arquivos alterados com 38 adições e 23 exclusões
  1. 38 23
      app/JsonRpc/ClientService.php

+ 38 - 23
app/JsonRpc/ClientService.php

@@ -51,21 +51,31 @@ class ClientService implements ClientServiceInterface
     public function indexData(array $data): array
     {
         $time1 = microtime(true);
-        $data = json_decode($data['template'], true);
-        $wetbsite_id = $data['base']['website_id'] ?? 2;
+        // 调整获取方式
+        // 根据网站id获取,从website_template中获取 website_template
+        $website_id =  $data['website_id'] ?? 2;
+        var_dump("网站id:", $website_id);
+        $template = Db::table('website_template')->where('website_id', $website_id)->first();
+        var_dump("模板:", $template);
+        $template = $template->template_data;
+        $data = json_decode($template, true);
+
+        // $data = json_decode($data['template'], true);
+        // $website_id = $data['base']['website_id'] ?? 2;
+
         //设置缓存
-        $websiteInfoCacheKey = "awebsite:category:{$wetbsite_id}";
+        $websiteInfoCacheKey = "awebsite:category:{$website_id}";
         $websiteInfo =  $this->redis->get($websiteInfoCacheKey);  //false; 
         if ($websiteInfo === false) {
             // Redis 中没有缓存,从数据库中查询
-            $websiteInfo = Db::table('website_category')->where('website_id', $wetbsite_id)->get()->toArray();
+            $websiteInfo = Db::table('website_category')->where('website_id', $website_id)->get()->toArray();
             // 将查询结果存入 Redis,设置缓存时间为 3600 秒(1 小时)
             $this->redis->setex($websiteInfoCacheKey, 3600,  json_encode($websiteInfo));
         } else {
             // 从 Redis 中获取的数据需要反序列化
             $websiteInfo = json_decode($websiteInfo, true);
         }
-        $websiteInfo = Db::table('website_category')->where('website_id', $wetbsite_id)->get()->toArray();
+        $websiteInfo = Db::table('website_category')->where('website_id', $website_id)->get()->toArray();
         //取出website
         var_dump($websiteInfo, 'websiteInfo');
         //取出category_id 对应的数据
@@ -92,7 +102,8 @@ class ClientService implements ClientServiceInterface
             $websiteInfoIndexed[$value->category_id]->pinyin = $pinyin_str;
             // 算出一级  并且算出子级
             if ($value->pid == 0) {
-                // $cat_1st_arr[$value->category_id] = [];
+                if (empty($cat_1st_arr[$value->category_id]))
+                    $cat_1st_arr[$value->category_id] = [];
             } else {
                 if ($value->pid == 11) {
                     var_dump($value->category_id, 'value->category_id');
@@ -100,14 +111,16 @@ class ClientService implements ClientServiceInterface
                 $cat_1st_arr[$value->pid][] = $value->category_id;
             }
         }
+        var_dump($cat_1st_arr, 'cat_1st_arr');
         $time2 = microtime(true);
         $time_ = ($time2 - $time1);
         var_dump($time2, $time1, $time_, '返回路由需要多少时间');
 
         //获取
-        $getpage = $data['base']['getpage'] ?? 'index';
-
+        // $getpage = $data['base']['getpage'] ?? 'index';
+        $getpage = $data['getpage'] ?? 'index';
 
+        var_dump($getpage, 'leixing ');
         // index = 首页
         // class = 频道页
         // list = 列表页
@@ -117,7 +130,7 @@ class ClientService implements ClientServiceInterface
         // aboutArticle = 底部导航详情页
         // return $cat_1st_arr;
         // return $cat_1st_arr;
-        var_dump($cat_1st_arr[11], 'cat_1st_arr'); //一级所有子级的记录
+        // var_dump($cat_1st_arr[11], 'cat_1st_arr'); //一级所有子级的记录
         // var_dump($catiall, 'catiall');//拼音
         $templateData = [];
         switch ($getpage) {
@@ -130,29 +143,31 @@ class ClientService implements ClientServiceInterface
                     $componentData = $value['componentData'];
                     // $page = $componentData['page'];
                     // $pageSize = $componentData['pageSize'];
-                    $listType = $componentData['listType'];
+                    // $listType = $componentData['listType'];
 
-                    $category_id = $componentData['category_id'];
-                    $imgSize = $componentData['imgSize'];
-                    $textSize = $componentData['textSize'];
-                    $level = $componentData['level'];
-                    $child = $componentData['child'];
+                    $category_id = $componentData['category_id'] ?? $categoryIds[0]; //此处应该有值
+                    $imgSize = $componentData['imgSize'] ?? 1;
+                    $textSize = $componentData['textSize'] ?? 1;
+                    $level = $componentData['level'] ?? 1;
+                    $child = $componentData['child'] ?? [];
                     //获取子级
                     if ($child) {
                     }
-                    $child_id = $child['id'];
-                    $child_imgSize = $child['imgSize'];
-                    $child_textSize = $child['textSize'];
+                    $child_id = $child['id'] ?? $categoryIds[0];
+                    $child_imgSize = $child['imgSize'] ?? 1;
+                    $child_textSize = $child['textSize'] ?? 1;
 
                     // 拼音就是路由----
-                    unset($listType['pinyin']);
+                    // unset($listType['pinyin']);
                     //查询查询数据,返回到data字段里,根据这几个
                     if ($category_id > 0) {
+                        var_dump($category_id, '------------------category_id');
+                        var_dump($cat_1st_arr, '-----------1-------2');
                         // 第一次查询:imgurl 不为空的数据
                         $imgArticles = Db::table('article')
-                            ->leftJoin('article_ignore', function ($join) use ($wetbsite_id) {
+                            ->leftJoin('article_ignore', function ($join) use ($website_id) {
                                 $join->on('article.id', '=', 'article_ignore.article_id')
-                                    ->where('article_ignore.website_id', '=', $wetbsite_id);
+                                    ->where('article_ignore.website_id', '=', $website_id);
                             })
                             ->whereNull('article_ignore.article_id')
                             // ->whereIn('catid', [$category_id])
@@ -161,7 +176,7 @@ class ClientService implements ClientServiceInterface
                             ->whereNotNull('imgurl')
 
                             // ignore_ids  是空 或者[],或者不存在website_id的数据  json
-                            // ->where('ignore_ids', 'not like', '%' . $wetbsite_id . '%')
+                            // ->where('ignore_ids', 'not like', '%' . $website_id . '%')
                             ->where('imgurl', '!=', '')
                             ->limit($imgSize)
                             ->orderBy('updated_at', 'desc')
@@ -177,7 +192,7 @@ class ClientService implements ClientServiceInterface
                             // ->whereIn('catid', [$category_id])
                             ->whereIn('catid', $temp_arr = array_merge([$category_id], $cat_1st_arr[$category_id]))
                             ->where('status', 1)
-                            // ->where('ignore_ids', 'not like', '%' . $wetbsite_id . '%')
+                            // ->where('ignore_ids', 'not like', '%' . $website_id . '%')
                             // ->whereNull('imgurl')
                             ->limit($textSize)
                             ->orderBy('updated_at', 'desc')