Browse Source

点餐页优化

gorden 7 months ago
parent
commit
008ab971c8
1 changed files with 46 additions and 2 deletions
  1. 46 2
      app/admin/service/goods/GoodsService.php

+ 46 - 2
app/admin/service/goods/GoodsService.php

@@ -603,10 +603,54 @@ class GoodsService
         }
 
         $data = array_merge($data,$goods);
-        
         $tree = new Tree($data);
+        $cascaderData = $tree->getTree();
+
+        foreach($cascaderData as $key1 => $cascader1){
+            if(isset($cascader1['children'])){
+                foreach($cascader1['children'] as $key2 => $cascader2){
+                    if(isset($cascader2['children'])){
+                        foreach($cascader2['children'] as $key3 => $cascader3){
+                            if(isset($cascader3['children'])){
+                                foreach($cascader3['children'] as $key4 => $cascader4){
+                                    if (!isset($cascader4['goods_id'])){
+                                        unset($cascaderData[$key1]['children'][$key2]['children'][$key3]['children'][$key4]);
+                                    }
+                                }
+                            }else if (!isset($cascader3['goods_id'])){
+                                unset($cascaderData[$key1]['children'][$key2]['children'][$key3]);
+                            }
+                            if (isset($cascader3['children']) && count($cascaderData[$key1]['children'][$key2]['children']) == 0){
+                                unset($cascaderData[$key1]['children'][$key2]);
+                            }
+                            if (isset($cascader3['children']) && count($cascaderData[$key1]['children'][$key2]['children'][$key3]['children']) > 0){
+                                $cascaderData[$key1]['children'][$key2]['children'][$key3]['children'] = array_values($cascaderData[$key1]['children'][$key2]['children'][$key3]['children']);
+                            }
+                        }
+                    }else if (!isset($cascader2['goods_id'])){
+                        unset($cascaderData[$key1]['children'][$key2]);
+                    }
+                    if (isset($cascader2['children']) && count($cascaderData[$key1]['children'][$key2]['children']) == 0){
+                        unset($cascaderData[$key1]['children'][$key2]);
+                    }
+                    if (isset($cascader2['children']) && isset($cascaderData[$key1]['children'][$key2]) && count($cascaderData[$key1]['children'][$key2]['children']) > 0){
+                        $cascaderData[$key1]['children'][$key2]['children'] = array_values($cascaderData[$key1]['children'][$key2]['children']);
+                    }
+                }
+            }else if (!isset($cascader1['goods_id'])){
+                unset($cascaderData[$key1]);
+            }
+            if (isset($cascader1['children']) && count($cascaderData[$key1]['children']) == 0){
+                
+                unset($cascaderData[$key1]);
+            }
+            if (isset($cascader1['children']) && isset($cascaderData[$key1]) && count($cascaderData[$key1]['children']) > 0){
+                $cascaderData[$key1]['children'] = array_values($cascaderData[$key1]['children']);
+            }
+        }
+        $cascaderData = array_values($cascaderData);
 
-        return json_success('success', $tree->getTree());
+        return json_success('success', $cascaderData);
     }
 
     /**