<?php
namespace app\models\system;

use crmeb\traits\ModelTrait;
use crmeb\basic\BaseModel;
use crmeb\services\UtilService;

/**
 * 附件目录
 * Class SystemAttachmentCategory
 * @package app\models\system
 */
class SystemAttachmentCategory extends BaseModel
{

    /**
     * 数据表主键
     * @var string
     */
    protected $pk = 'id';

    /**
     * 模型名称
     * @var string
     */
    protected $name = 'system_attachment_category';

    use ModelTrait;

    /**
     * 添加分类
     * @param $name
     * @param $att_size
     * @param $att_type
     * @param $att_dir
     * @param string $satt_dir
     * @param int $pid
     * @return SystemAttachmentCategory|\think\Model
     */
    public static function Add($name,$att_size,$att_type,$att_dir,$satt_dir='',$pid = 0)
    {
        $data['name'] = $name;
        $data['att_dir'] = $att_dir;
        $data['satt_dir'] = $satt_dir;
        $data['att_size'] = $att_size;
        $data['att_type'] = $att_type;
        $data['time'] = time();
        $data['pid'] = $pid;
        return self::create($data);
    }

    /**
     * 获取分类图
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function getAll($name, $mer_id = ''){
        $model = new self;
        if($name) $model = $model->where('name','LIKE',"%$name%");
        if($mer_id) $model = $model->where('mer_id', 'in', [0, $mer_id]);
//        $count=$model->where('pid',0)->count();
        $list=self::tidyMenuTier($model->select(),0);
        return compact('list');
    }
    public static function tidyMenuTier($menusList,$pid = 0,$navList = [])
    {

        foreach ($menusList as $k=>$menu){
            $menu = $menu->getData();
            $menu['title']=$menu['name'];
            if($menu['pid'] == $pid){
                unset($menusList[$k]);
                $menu['children'] = self::tidyMenuTier($menusList,$menu['id']);
                if ($menu['children']) $menu['expand']=true;
                $navList[] = $menu;
            }
        }
        return $navList;
    }

    /**
     * 获取分类下拉列表
     * @param int $id
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function getCateList($id = 10000, $mer_id = ''){
        $model = new self();
        if($id == 0) $model = $model->where('pid',$id);
        $model = $model->where('mer_id', 'in', [0, $mer_id]);
        return sort_list_tier($model->select()->toArray());
    }

    /**
     * 获取单条信息
     * @param $att_id
     * @return mixed
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function getinfo($att_id){
        $model = new self;
        $where['att_id'] = $att_id;
        return $model->where($where)->select()->toArray()[0];
    }

}