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

Merge branch 'category_03_11_liu'

rkljw пре 1 месец
родитељ
комит
63b0e7df8b

+ 21 - 1
app/Controller/WebsiteController.php

@@ -550,9 +550,11 @@ class WebsiteController extends AbstractController
             $requireData,
             [
                 'website_id' => 'required',
+                'category_arr_id' => 'required',
             ],
             [
                 'website_id.required' => '网站ID不能为空',
+                'category_arr_id.required' => '栏目id不能为空',
             ]
         );
         if ($validator->fails()){
@@ -694,7 +696,11 @@ class WebsiteController extends AbstractController
             return Result::error($errorMessage);
         }
         $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
-        return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
+        if($result['code']==200){
+            return Result::success(PublicData::buildCategoryTree($result['data']));
+        }else{
+            return Result::error($result['message']);
+        }
     }
     /**
      * 管理后台首页统计
@@ -1545,4 +1551,18 @@ class WebsiteController extends AbstractController
           $result = $this->websiteServiceClient->getWebsiteNavPoolSite($data);
           return $result['code']==200?Result::success($result['data']):Result::error($result['message']); 
       }
+
+    /**
+     * 查看所有的栏目
+     * @return array
+     */
+      public function getAllCategory()
+      {
+          $requireData = $this->request->all();
+          $result = $this->websiteServiceClient->getAllCategory($requireData);
+          if($result['code']==200){
+              return Result::success(PublicData::buildMenuTree($result['data']));
+          }
+          return Result::error($result['message']);
+      }
 }

+ 10 - 0
app/JsonRpc/WebsiteService.php

@@ -589,4 +589,14 @@ class WebsiteService extends AbstractServiceClient implements WebsiteServiceInte
     {
         return $this->__request(__FUNCTION__, $data);
     }
+
+    /**
+     * 获取所有栏目
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getAllCategory(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
 }

+ 6 - 0
app/JsonRpc/WebsiteServiceInterface.php

@@ -377,4 +377,10 @@ interface WebsiteServiceInterface
     public function getWebsiteNavPool(array $data);
     public function getWebsiteNavPoolSite(array $data);
 
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getAllCategory(array $data);
+
 }

+ 17 - 0
app/Tools/PublicData.php

@@ -29,6 +29,23 @@ class PublicData
         return $tree;
     }
 
+    public static  function buildCategoryTree($menuItems, $parentId = 0) {
+        $tree = [];
+        foreach ($menuItems as $item) {
+            if ($item['pid'] == $parentId) {
+                // 找到子菜单
+                $children = self::buildMenuTree($menuItems, $item['category_id']);
+                // 如果子菜单存在,则添加到当前菜单的children中
+                if ($children) {
+                    $item['children'] = $children;
+                }
+                // 将当前菜单添加到树中
+                $tree[] = $item;
+            }
+        }
+        return $tree;
+    }
+
     /**
      * 把数组里面的某一个字段作为key
      * @param $array

+ 2 - 0
config/api/website.php

@@ -109,6 +109,8 @@ Router::addGroup(
         Router::post('/getWebsiteNavPool', [WebsiteController::class, 'getWebsiteNavPool']);
         // 20250307 根据网站标识获和导航获取站点
         Router::post('/getWebsiteNavPoolSite', [WebsiteController::class, 'getWebsiteNavPoolSite']);
+        //获取所有的栏目
+        Router::get('/getAllCategory', [WebsiteController::class, 'getAllCategory']);
 
     },
     ['middleware' => [FooMiddleware::class]]