Department.class.php 5.64 KB
<?php
/**
 * Department.class.php
 * 部门接口操作类
 *
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
 * @copyright  Copyright (c) 2014 - ? VcySDK (http://www.vchangyi.com/)
 * @author     zhuxun37
 * @version    1.0.0
 */

namespace VcySDK;


class Department
{

    /**
     * 接口调用类
     *
     * @var object
     */
    private $serv = null;

    /**
     * SERVICE 类
     *
     * @var null
     */
    private $service = null;

    /**
     * 创建部门的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const CREATE_URL = '%s/department/create';

    /**
     * 编辑部门的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const MODIFY_URL = '%s/department/modify';

    /**
     * 删除部门的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const DELETE_URL = '%s/department/del';

    /**
     * 获取部门列表的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const LIST_URL = '%s/department/page-list';

    /**
     * 获取部门列表的接口地址 (无鉴权)
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const IGNORE_PERMISSIONS_LIST_URL = '%s/department/ignore-permissions/page-list';

    /**
     * 获取部门详情的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const DETAIL_URL = '%s/department/detail';

    /**
     * 获取部门类型列表的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const TYPE_LIST_URL = '%s/department/type-list';

    /**
     * 获取部门类型配置列表的接口地址
     * %s = {apiUrl}/a/{enumber}/{pluginIdentifier}/{thirdIdentifier}
     *
     * @var string
     */
    const FIELD_CONFIG_LIST_URL = '%s/department/field-config-list';

    /**
     * 初始化
     *
     * @param Service $serv 接口调用类
     */
    public function __construct(Service $serv)
    {

        $this->serv = $serv;
        $this->service = new Service();
    }

    /**
     * 创建部门
     *
     * @param array $condition 请求参数
     *                         + dpName string 部门名称
     *                         + dpParentid int 上级ID
     *                         + dpDisplayorder int 排序值
     *
     * @return boolean|multitype:
     */
    public function create($condition)
    {

        return $this->serv->postSDK(self::CREATE_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 编辑部门
     *
     * @param array $condition 请求参数
     *                         + dpId string 部门ID
     *                         + dpName string 部门名称
     *                         + dpParentid int 上级ID
     *                         + dpDisplayorder int 排序值
     *
     * @return boolean|multitype:
     */
    public function modify($condition)
    {

        return $this->serv->postSDK(self::MODIFY_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 删除部门
     *
     * @param array $condition 请求参数
     *                         + dpId string 部门ID
     *
     * @return boolean|multitype:
     */
    public function delete($condition)
    {

        return $this->serv->postSDK(self::DELETE_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 获取部门列表
     *
     * @param array $condition 查询条件数据
     * @param mixed $orders    排序字段
     * @param int   $page      当前页码
     * @param int   $perpage   每页记录数
     *
     * @return boolean|multitype:
     */
    public function listAll($condition = array(), $page = 1, $perpage = 30, $orders = array(), $ignorePermissions = true)
    {

        // 查询参数
        if (isset($condition['thirds']) && is_array($condition['thirds'])) {
            $this->service->getValue($condition, ['thirds']);
        }
        $condition = $this->serv->mergeListApiParams($condition, $orders, $page, $perpage);

        return $this->serv->postSDK(!$ignorePermissions ? self::LIST_URL : self::IGNORE_PERMISSIONS_LIST_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 获取部门详情
     *
     * @param array $condition 请求参数
     *                         + dpId string 部门ID
     *
     * @return boolean|multitype:
     */
    public function detail($condition)
    {

        return $this->serv->postSDK(self::DETAIL_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 获取部门类型列表
     * @param array $condition
     * @param int   $page
     * @param int   $perpage
     * @param array $orders
     * @return array|bool
     */
    public function listType($condition = array(), $page = 1, $perpage = 30, $orders = array())
    {

        $condition = $this->serv->mergeListApiParams($condition, $orders, $page, $perpage);

        return $this->serv->postSDK(self::TYPE_LIST_URL, $condition, 'generateApiUrlA');
    }

    /**
     * 获取部门类型配置列表
     * @param array $condition
     * @param int   $page
     * @param int   $perpage
     * @param array $orders
     * @return array|bool
     */
    public function listFieldConfig($condition = array(), $page = 1, $perpage = 30, $orders = array())
    {

        $condition = $this->serv->mergeListApiParams($condition, $orders, $page, $perpage);

        return $this->serv->postSDK(self::FIELD_CONFIG_LIST_URL, $condition, 'generateApiUrlA');
    }

}