<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 17/10/12 * Time: 17:22 */ namespace Common\Model; use Common\Common\Constant; use Common\Common\Department; use Common\Common\Tag; use Common\Common\User; use Common\Common\Job; use Common\Common\Role; class CourseRightModel extends \Com\Model { // 构造方法 public function __construct() { parent::__construct('Right', 'oa_course_'); } /** * 格式化数据库中的权限数据 * @author zhonglei * @param array $rights 权限数据 * @return array */ public function formatDBData($rights) { $data = []; // 数据分组、去重 foreach ($rights as $right) { if (!isset($data[$right['obj_type']]) || (isset($data[$right['obj_type']]) && !in_array($right['obj_id'], $data[$right['obj_type']]))) { $data[$right['obj_type']][] = $right['obj_id']; } } return $data; } /** * 合并人员搜索条件和课程可见范围(请求UC人员列表时使用) * @author liyifei * @param array $userConds 人员搜索条件 * @param array $rights 课程可见范围 * @return array */ public function mergeRightData($userConds, $rights) { // 课程权限:部门 if (isset($rights[Constant::RIGHT_TYPE_DEPARTMENT])) { $userConds['dpIdList'] = isset($userConds['dpIdList']) ? array_values(array_unique(array_merge($userConds['dpIdList'], $rights[Constant::RIGHT_TYPE_DEPARTMENT]))) : []; // 按部门条件查询时,表示部门是否递归查询人员 【0:不递归(默认值)、1:递归】 if (!empty($userConds['dpIdList'])) { $userConds['departmentChildrenFlag'] = 1; } } // 课程权限:职位 if (isset($rights[Constant::RIGHT_TYPE_JOB])) { $userConds['jobIdList'] = isset($userConds['jobIdList']) ? array_values(array_unique(array_merge($userConds['jobIdList'], $rights[Constant::RIGHT_TYPE_JOB]))) : []; } // 课程权限:角色 if (isset($rights[Constant::RIGHT_TYPE_ROLE])) { $userConds['roleIdList'] = isset($userConds['roleIdList']) ? array_values(array_unique(array_merge($userConds['roleIdList'], $rights[Constant::RIGHT_TYPE_ROLE]))) : []; } // 课程权限:人员 if (isset($rights[Constant::RIGHT_TYPE_USER])) { $userConds['memUids'] = isset($userConds['memUids']) ? array_values(array_unique(array_merge($userConds['memUids'], $rights[Constant::RIGHT_TYPE_USER]))) : []; } return $userConds; } }