|  | @@ -28,59 +28,94 @@ class Manage
 | 
	
		
			
				|  |  |          $id = $id['where_id'];
 | 
	
		
			
				|  |  |          $area = Dever::param('area', $data);#修改后
 | 
	
		
			
				|  |  |          $role = Dever::param('role', $data);
 | 
	
		
			
				|  |  | -        if ($area && is_array($area)) {
 | 
	
		
			
				|  |  | -            $area_string = implode(',', $area);
 | 
	
		
			
				|  |  | -            if (strstr($area_string, '-1')) {
 | 
	
		
			
				|  |  | -                Dever::alert('请选择正确的区域');
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            $member = Dever::db('agent/member')->find($id);
 | 
	
		
			
				|  |  | -            if ($area_string == $member['area']) {
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            $role = $member['role'];
 | 
	
		
			
				|  |  | -            $member_role = Dever::db('setting/role')->one($member['role']);
 | 
	
		
			
				|  |  | -            if ($member_role && $member_role['type'] == 2) {
 | 
	
		
			
				|  |  | -                Dever::load('area/api')->upStatus($member['area'], 1);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                $area_data = array('mid' => $id);
 | 
	
		
			
				|  |  | -                $area_info = Dever::db('agent/member_area')->find($area_data);
 | 
	
		
			
				|  |  | -                if ($area_info) {
 | 
	
		
			
				|  |  | -                    Dever::db('agent/member_area')->update(array('where_id' => $area_info['id'], 'state' => 2));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            $role = Dever::db('setting/role')->one($role);
 | 
	
		
			
				|  |  | +        $level_id = Dever::param('level_id', $data);
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        $member = Dever::db('agent/member')->find($id);
 | 
	
		
			
				|  |  | +        if (!$member) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if ($area && is_array($area) && $role) {
 | 
	
		
			
				|  |  | +            $role = Dever::db('setting/role')->find($role);
 | 
	
		
			
				|  |  | +            $area_string = array();
 | 
	
		
			
				|  |  |              if ($role && $role['type'] == 2) {
 | 
	
		
			
				|  |  | -                $num = count($area);
 | 
	
		
			
				|  |  | -                if ($role['area'] == 1 && $num < 2) {
 | 
	
		
			
				|  |  | -                    Dever::alert('请选择城市');
 | 
	
		
			
				|  |  | -                } elseif ($role['area'] == 2 && $num < 3) {
 | 
	
		
			
				|  |  | -                    Dever::alert('请选择区县');
 | 
	
		
			
				|  |  | -                } elseif ($role['area'] == 3 && $num < 4) {
 | 
	
		
			
				|  |  | -                    Dever::alert('请选择街道');
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                Dever::load('area/api')->upStatus($area_string, 2);
 | 
	
		
			
				|  |  | -                $area_data = array('mid' => $id, 'order_id' => -1, 'role' => $member['role'], 'area' => $area_string);
 | 
	
		
			
				|  |  | -                $area_data['type'] = 3;
 | 
	
		
			
				|  |  | -                $area_data['price'] = 0;
 | 
	
		
			
				|  |  | -                $area_data['status'] = 1;
 | 
	
		
			
				|  |  | -                $oldorder = Dever::db('agent/order')->state(array('mid' =>$id));
 | 
	
		
			
				|  |  | -                if (count($oldorder)>=2){
 | 
	
		
			
				|  |  | -                    $oldorder = Dever::db('agent/order')->getFindOne(array('mid' => $id,'order_type' => 2,'state' => 1));
 | 
	
		
			
				|  |  | -                }else{
 | 
	
		
			
				|  |  | -                    $oldorder = Dever::db('agent/order')->find(array('mid' => $id,'order_type' => 1));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                $oldrole = Dever::db('setting/role')->find($oldorder['role']);
 | 
	
		
			
				|  |  | -                $area_data['old_role'] = $oldrole['id'];
 | 
	
		
			
				|  |  | -                Dever::db('agent/member_area')->insert($area_data);
 | 
	
		
			
				|  |  | -                if(!$member['area']){
 | 
	
		
			
				|  |  | -                    $member['area']='';
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                $admin = Dever::load('manage/auth.info');
 | 
	
		
			
				|  |  | -                // $this->area_log($id,-1,$area_data['type'],$member['area'],$area,$area_data['price'],$member['role'],$admin['id']);
 | 
	
		
			
				|  |  | -               // $mid,$order_id,$type,$old_role,$new_role,$price,$area,$audit_admin
 | 
	
		
			
				|  |  | -                $this->area_log($id,-1,$area_data['type'],$area_data['old_role'],$member['role'],$area_data['price'],$area,$admin['id']);
 | 
	
		
			
				|  |  | +                $area_string = Dever::load('agent/lib/order')->checkArea($area, $role, $member['id']);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                $area_string = implode(',', $area);
 | 
	
		
			
				|  |  | +                $area_string = str_replace(',-1', '', $area_string);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            $data['set_area'] = $area_string;
 | 
	
		
			
				|  |  | +            $this->upLog($member, $role, $area_string, -1, 3);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if ($level_id && $level_id != $member['level_id']) {
 | 
	
		
			
				|  |  | +            $group_num = Dever::load('invite/api')->getChildNum($member['id'], 1);
 | 
	
		
			
				|  |  | +            Dever::load('agent/lib/level_log')->up($member['id'], -1, $member['level_id'], $level_id, 0, 0, $group_num);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return $data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    # 更改日志
 | 
	
		
			
				|  |  | +    private function upLog($member, $role, $area, $order_id = -1, $type = 3)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        if (is_numeric($role)) {
 | 
	
		
			
				|  |  | +            $role = Dever::db('setting/role')->find($role);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (!$role) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $this->upRole($member, $role, $area, $order_id);
 | 
	
		
			
				|  |  | +        $this->upArea($member, $role, $area, $order_id, $type);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private function upRole($member, $role, $area, $order_id = -1)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        if ($role['id'] == $member['role']) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $data['mid'] = $member['id'];
 | 
	
		
			
				|  |  | +        $data['order_id'] = $order_id;
 | 
	
		
			
				|  |  | +        $data['old_role'] = $member['role'];
 | 
	
		
			
				|  |  | +        $data['new_role'] = $role['id'];
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        $data['area'] = $area;
 | 
	
		
			
				|  |  | +        if ($order_id && $order_id > 0) {
 | 
	
		
			
				|  |  | +            $data['type'] = 1;
 | 
	
		
			
				|  |  | +            $order = Dever::db('agent/order')->find($order_id);
 | 
	
		
			
				|  |  | +            $data['price'] = $order['price'];
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $data['type'] = 2;
 | 
	
		
			
				|  |  | +            $admin = Dever::load('manage/auth.info');
 | 
	
		
			
				|  |  | +            $data['audit_admin'] = $admin['id'];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        Dever::db('agent/member_account_log')->insert($data);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private function upArea($member, $role, $area, $order_id = -1, $type = 3)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        if (!$role) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if ($area == $member['area']) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $area_data = array('mid' => $member['id']);
 | 
	
		
			
				|  |  | +        $area_info = Dever::db('agent/member_area')->find($area_data);
 | 
	
		
			
				|  |  | +        if ($area_info) {
 | 
	
		
			
				|  |  | +            Dever::db('agent/member_area')->update(array('where_id' => $area_info['id'], 'state' => 2));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if ($role && $role['type'] == 2) {
 | 
	
		
			
				|  |  | +            Dever::load('area/api')->upStatus($area, 2);
 | 
	
		
			
				|  |  | +            $area_data['order_id'] = $order_id;
 | 
	
		
			
				|  |  | +            $area_data['role'] = $role['id'];
 | 
	
		
			
				|  |  | +            $area_data['area'] = $area;
 | 
	
		
			
				|  |  | +            $area_data['type'] = $type;
 | 
	
		
			
				|  |  | +            $area_data['price'] = 0;
 | 
	
		
			
				|  |  | +            $area_data['status'] = 1;
 | 
	
		
			
				|  |  | +            Dever::db('agent/member_area')->insert($area_data);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $this->area_log($member['id'], $order_id, $member['area'], $area);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |       
 | 
	
		
			
				|  |  |      # 获取
 | 
	
	
		
			
				|  | @@ -279,72 +314,32 @@ class Manage
 | 
	
		
			
				|  |  |                      $update['role'] = $order['role'];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      Dever::db('agent/member')->update($update);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    #账户升级变更记录
 | 
	
		
			
				|  |  | -                    $account = array('mid' => $order['mid'], 'order_type' => 2);
 | 
	
		
			
				|  |  | -                    if ($order['order_type']==1){
 | 
	
		
			
				|  |  | -                        $oldrole['id'] = '';
 | 
	
		
			
				|  |  | -                        $newrole['id'] = $order['role'];
 | 
	
		
			
				|  |  | -                    }else{
 | 
	
		
			
				|  |  | -                        $neworder = Dever::db('agent/order')->state($account);
 | 
	
		
			
				|  |  | -                        if (count($neworder)>=2){
 | 
	
		
			
				|  |  | -                            $neworder = Dever::db('agent/order')->getFindOne(array('id' => $order['id'],'mid' => $order['mid'],'order_type' => 2,'state' => 1));
 | 
	
		
			
				|  |  | -                        }else{
 | 
	
		
			
				|  |  | -                            $neworder = Dever::db('agent/order')->getFindOne(array('mid' => $order['mid'],'order_type' => 1));
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        $newrole = Dever::db('setting/role')->find($order['role']);
 | 
	
		
			
				|  |  | -                        $oldrole = Dever::db('setting/role')->find($neworder['role']);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    $acc['mid'] = $order['mid'];
 | 
	
		
			
				|  |  | -                    $acc['order_id'] = $order['id'];
 | 
	
		
			
				|  |  | -                    $acc['old_role'] = $oldrole['id'];
 | 
	
		
			
				|  |  | -                    $acc['new_role'] = $newrole['id'];
 | 
	
		
			
				|  |  | -                    $acc['price'] = $order['price'];
 | 
	
		
			
				|  |  | -                    $acc['area'] = $order['area'];
 | 
	
		
			
				|  |  | -                    Dever::db('agent/member_account_log')->insert($acc);
 | 
	
		
			
				|  |  | -                    # 对区域进行占用
 | 
	
		
			
				|  |  | -                    $role = Dever::db('setting/role')->one($order['role']);
 | 
	
		
			
				|  |  | -                    if ($role && $role['type'] == 2) {
 | 
	
		
			
				|  |  | -                        $area_data = array('mid' => $order['mid'], 'order_id' => $order['id'], 'new_role' => $order['role'], 'area' => $order['area']);
 | 
	
		
			
				|  |  | -                        $area_datas = array('mid' => $order['mid']);
 | 
	
		
			
				|  |  | -                        $area = Dever::db('agent/member_area')->find($area_datas);
 | 
	
		
			
				|  |  | -                        // print_R($area);die;
 | 
	
		
			
				|  |  | -                        if($area){
 | 
	
		
			
				|  |  | -                           Dever::db('agent/member_area')->update(array('where_id'=>$area['id'],'set_state'=>2));
 | 
	
		
			
				|  |  | -                            Dever::load('area/api')->upStatus($area['area'], 1);
 | 
	
		
			
				|  |  | -                            $old_area = $area['area'];
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        $area_data['price'] = $order['price'];
 | 
	
		
			
				|  |  | -                         $oldorder = Dever::db('agent/order')->state(array('mid' =>$order['mid']));
 | 
	
		
			
				|  |  | -                        if (count($oldorder)>2){
 | 
	
		
			
				|  |  | -                            $oldorder = Dever::db('agent/order')->getFindOne(array('id' => $order['id'],'mid' => $order['mid'],'order_type' => 2,'state' => 1));
 | 
	
		
			
				|  |  | -                        }else{
 | 
	
		
			
				|  |  | -                            $oldorder = Dever::db('agent/order')->find(array('mid' => $order['mid'],'order_type' => 1));
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        $oldrole = Dever::db('setting/role')->find($oldorder['role']);
 | 
	
		
			
				|  |  | -                        $area_data['old_role'] = $oldrole['id'];
 | 
	
		
			
				|  |  | -                        Dever::db('agent/member_area')->insert($area_data);
 | 
	
		
			
				|  |  | -                        Dever::load('area/api')->upStatus($order['area'], 2);
 | 
	
		
			
				|  |  | -                       
 | 
	
		
			
				|  |  | -                        $this->area_log($order['mid'],$order['id'],$order['type'],$area_data['old_role'],$order['role'],$order['price'],$order['area'],-1);  
 | 
	
		
			
				|  |  | +                    if ($order['price'] > 0) {
 | 
	
		
			
				|  |  | +                        $type = 1;
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        $type = 2;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | +                    $this->upLog($member, $order['role'], $order['area'], $order['id'], $type);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      #区域日志
 | 
	
		
			
				|  |  | -    public function area_log($mid,$order_id,$type,$old_role,$new_role,$price,$area,$audit_admin){
 | 
	
		
			
				|  |  | +    public function area_log($mid,$order_id,$old_area, $area) {
 | 
	
		
			
				|  |  |          $data['mid']=$mid;
 | 
	
		
			
				|  |  |          $data['order_id']=$order_id;
 | 
	
		
			
				|  |  | -        $data['type']=$type;
 | 
	
		
			
				|  |  | -        $data['old_role']=$old_role;
 | 
	
		
			
				|  |  | -        $data['new_role']=$new_role;
 | 
	
		
			
				|  |  | -        $data['price']=$price;
 | 
	
		
			
				|  |  | +        $data['old_area']=$old_area;
 | 
	
		
			
				|  |  |          $data['area']=$area;
 | 
	
		
			
				|  |  | -        $data['aduit_admin'] = $audit_admin;
 | 
	
		
			
				|  |  | +        if ($order_id && $order_id > 0) {
 | 
	
		
			
				|  |  | +            $data['type'] = 1;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $admin = Dever::load('manage/auth.info');
 | 
	
		
			
				|  |  | +            $data['audit_admin'] = $admin['id'];
 | 
	
		
			
				|  |  | +            $data['type'] = 2;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  |          $ids=Dever::db('agent/member_area_log')->insert($data);
 | 
	
		
			
				|  |  |          return $ids;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # 发放权益
 | 
	
	
		
			
				|  | @@ -604,7 +599,7 @@ class Manage
 | 
	
		
			
				|  |  |                  $member = Dever::db('agent/member')->find($where['mid']);
 | 
	
		
			
				|  |  |                  $desc = $member['name'] . '成为代理商,佣金'.$t['per'].'%';
 | 
	
		
			
				|  |  |                  
 | 
	
		
			
				|  |  | -                Dever::load('agent/lib/member')->up($member, $order['id'], $order['role'], $where['type'], $where['parent_mid'], $t['cash'], $order['agent_cash'], $t['parent_level'], $desc, $t['child_num']);
 | 
	
		
			
				|  |  | +                Dever::load('agent/lib/member')->up($where['parent_mid'], $order['id'], $order['role'], $where['type'], $t['cash'], $order['agent_cash'], $t['parent_level'], $desc, $t['child_num']);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 |