<?php
/**
 * Created by PhpStorm.
 * User: dognwenzhang <772009936@qq.com>
 * Date: 2020/02/16   下午13：05
 */
namespace app\admin\model\article;

use crmeb\traits\ModelTrait;
use app\admin\model\article\Article as ArticleModel;
use crmeb\basic\BaseModel;
use crmeb\services\UtilService as Util;

/**
 * 文章分类model
 * Class ArticleCategory
 * @package app\admin\model\wechat
 */
class ArticleCategory extends BaseModel
{
    use ModelTrait;

    protected $pk = 'id';

    protected $name = 'article_category';

    /**
     * 获取系统分页数据   分类
     * @param array $where
     * @return array
     */
    public static function systemPage($where = array()){
        $model = new self;
        if($where['title'] !== '') $model = $model->where('title','LIKE',"%$where[title]%");
        if($where['status'] !== '') $model = $model->where('status',$where['status']);
        $model = $model->where('is_del',0);
        $model = $model->where('hidden',0);
        return self::page($model);
    }

    /**
     * 删除分类
     * @param $id
     * @return bool
     */
    public static function delArticleCategory($id)
    {
        if(count(self::getArticle($id,'*'))>0)
            return self::setErrorInfo('请先删除改分类下的文章!');
        return self::edit(['is_del'=>1],$id,'id');
    }

    /**
     * 获取分类名称和id
     * @return array
     */
    public  static function getField(){
          return self::where('is_del',0)->where('status',1)->where('hidden',0)->column('title','id');
    }
    /**
     * 分级排序列表
     * @param null $model
     * @return array
     */
    public static function getTierList($model = null)
    {
        if($model === null) $model = new self();
        return Util::sortListTier($model->where('is_del',0)->where('status',1)->select()->toArray());
    }

    /**
     * 获取分类底下的文章
     * id  分类表中的分类id
     * return array
     * */
    public static function getArticle($id,$field){
        $res = ArticleModel::where('status',1)->where('hide',0)->column($field,'id');
        $new_res = array();
        foreach ($res as $k=>$v){
            $cid_arr = explode(',',$v['cid']);
            if(in_array($id,$cid_arr)){
                $new_res[$k] = $res[$k];
            }
        }
        return $new_res;
    }

    /**
     * TODO 获取文章分类
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function getArticleCategoryList(){
       $list = self::where('is_del',0)->where('status',1)->select();
       if($list) return $list->toArray();
       return [];
    }

    /**
     * TODO 获取文章分类信息
     * @param $id
     * @param string $field
     * @return mixed
     */
    public static function getArticleCategoryInfo($id, $field = 'title')
    {
        $model = new self;
        if($id) $model = $model->where('id',$id);
        $model = $model->where('is_del',0);
        $model = $model->where('status',1);
        return $model->column($field,'id');
    }

}