function getSonLists($upid=0,$space=''){

    $icon = array(
        '      │',
        '      ├─',
        '      └─'
    );  //格式化的字符
    $category_type = $this->category_type;

    $map['up_id'] = array('eq',$upid);
    // $map['id'] = array('neq',1);
    $lists = M('Category')->where($map)->field('id,catname,up_id,status,sort,model_id,path,type')->order('sort asc,id asc')->select();
    $n = count($lists);
    $cat_all = array();
    if($n){
        $m=1;
        for($i=0;$i<$n;$i++){
            if($n==$m){//只有一个子栏目/最后一个栏目
                $pre = $icon[2];
            }else{
                $pre = $icon[1];
            }
                $pad = $space ? $icon[0] : "";
            $lists[$i]['name']=($space ? $space.$pre : "").$lists[$i]['catname'];
            $cat_all[]=$lists[$i];
            $cat_bbb=$this->getSonLists($lists[$i]['id'], $space.$pad." "); //递归下一级分类
            if(count($cat_bbb)){//包含子栏目 合并
                $cat_all=array_merge($cat_all,$cat_bbb);
            }
            $m++;
        }
    }

    return $cat_all;
}