rabin 3 years ago
parent
commit
9549dd71ff
2 changed files with 40 additions and 18 deletions
  1. 1 1
      service/agent/lib/Manage.php
  2. 39 17
      service/agent/src/Children.php

+ 1 - 1
service/agent/lib/Manage.php

@@ -286,7 +286,6 @@ class Manage
                     # 对区域进行占用
                     $role = Dever::db('setting/role')->one($order['role']);
                     if ($role && $role['type'] == 2) {
-                        Dever::load('area/api')->upStatus($order['area'], 2);
                         $area_data = array('mid' => $order['mid'], 'order_id' => $order['id'], 'role' => $order['role'], 'area' => $order['area']);
                         $area_datas = array('mid' => $order['mid']);
                         $area = Dever::db('agent/member_area')->find($area_datas);
@@ -298,6 +297,7 @@ class Manage
                         }
                         $area_data['price'] = $order['price'];
                         Dever::db('agent/member_area')->insert($area_data);
+                        Dever::load('area/api')->upStatus($order['area'], 2);
                         
                         if(!$old_area){
                             $old_area='';

+ 39 - 17
service/agent/src/Children.php

@@ -9,26 +9,39 @@ class Children
 	public function home()
 	{
 		$cur = Dever::input('mid');
+		$result = $index = array();
+		$k = -1;
+
 		$parent = Dever::load('invite/api')->getParentAll($cur, 5);
-		$result = array();
-		$data = array();
-		if($parent){
-			$index = array();
-			$count = count($parent) - 1;
+		if ($parent) {
 			foreach($parent as $k => $v) {
 				$uid = $v['uid'];
 				$v = $this->button($v['uid'], $v['uid']);
 				if ($k == 0) {
 					$result = $v;
-				} 
+				}
 				$this->handle($result, $index, $k, $uid, $parent, $cur);
 			}
 		}
-		$this->handle($result, $index, $k+1, $cur, $parent, false);
+		$k = $k+1;
+		$child = $this->handle($result, $index, $k, $cur, array(), false);
+
+		if ($child) {
+			$k = $k+1;
+			foreach ($child as $i => $v) {
+				$c = $this->handle($result, $index, $k, $v['mid'], array(), false, $i);
+				if ($c) {
+					foreach ($c as $j => $v1) {
+						//$d = $this->handle($result, $index, $k+1, $v['mid'], array(), false, $j);
+					}
+				}
+			}
+		}
+		
 		exit(Dever::json_encode($result));
 	}
 
-	public function handle(&$result, &$index, $k, $uid, $parent, $cur)
+	public function handle(&$result, &$index, $k, $uid, $parent, $cur, $i = -1)
 	{
 		if (isset($parent[$k+1]['uid']) && $parent[$k+1]['uid']) {
 			$cur = $parent[$k+1]['uid'];
@@ -38,28 +51,37 @@ class Children
 		}
 		list($data, $index[$k]) = $this->child($uid, $cur, $color);
 
+		if (!$data) {
+			return false;
+		}
+
 		# 这里后续优化吧
+		if ($i < 0 && $k > 0) {
+			$i = $index[$k-1];
+		}
 		if ($k == 0) {
 			$result['children'] = $data;
 		} elseif ($k == 1) {
-			$result['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$i]['children'] = $data;
 		} elseif ($k == 2) {
-			$result['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 3) {
-			$result['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 4) {
-			$result['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 5) {
-			$result['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 6) {
-			$result['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 7) {
-			$result['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 8) {
-			$result['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
 		} elseif ($k == 9) {
-			$result['children'][$index[$k-9]]['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-3]]['children'][$index[$k-1]]['children'] = $data;
+			$result['children'][$index[$k-9]]['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-3]]['children'][$i]['children'] = $data;
 		}
+
+		return $data;
 	}
 
 	public function child($parent, $cur = false, $color = 2)