<?php
namespace App\Models\Cms;

use Illuminate\Database\Eloquent\Model;

class CmsDepartmentModel extends Model
{
    protected $table = 'department';
    public $timestamps = false;
    protected $primaryKey = 'departmentId';

    //采购部门的总ID
    const PURCHASE_DEPARTMENT_ID = 8;

    //销售部门的总ID
    const SALES_DEPARTMENT_ID = 7;

    // 获取部门人员
    public static function getUsersByDepartmentId($departmentId, $status = '', $filter = '')
    {
        $departmentIds = [];

        self::getSubDepartmentId($departmentId, $departmentIds);

        return CmsUserInfoModel::whereIn('department_id', $departmentIds)
            ->where(function ($query) use ($status) {
                if ($status !== '') {
                    $query->where('status', '=', $status);
                }
            })
            ->where(function ($query) use ($filter) {
                if ($filter) {
                    $query->whereRaw($filter);
                }
            })
            ->get()->toArray();
    }

    // 获取下级部门ID
    public static function getSubDepartmentId($departmentId, &$departmentIds)
    {
        // 获取下级部门
        $sub_department = CmsUserDepartmentModel::where('parent_id', $departmentId)->select([
            'department_id',
            'department_name'
        ])->get();
        if ($sub_department) {
            foreach ($sub_department as $v) {
                self::getSubDepartmentId($v['department_id'], $departmentIds);
            }
        }

        $departmentIds[] = $departmentId;

        return $departmentIds;
    }
}