<?php /** * Created by IntelliJ IDEA. * User: zhuxun37 * Date: 2017/5/23 * Time: 下午5:56 */ namespace Api\Controller\Invite; use Common\Common\Cache; use Common\Common\Department; use Common\Model\InviteSettingModel; use Common\Service\AttrService; use Common\Service\InviteSettingService; class ReadLinkController extends AbstractController { public function Index_post() { // 检查管理权限 $this->checkCurrentInvitePower($this->_login->user); // 获取邀请配置 $settingService = new InviteSettingService(); $data = $settingService->get_by_conds([]); if (empty($data)) { E('_ERR_MISS_INVITE_CONFIG'); } // 获取字段配置 $attrService = new AttrService(); $fields = $attrService->getAttrList(true, array(), false, false); $fields = array_combine_by_key($fields, 'field_name'); // 获取通讯录配置 $settings = Cache::instance()->get('Common.AppSetting'); // 获取企业信息 $enterprise = Cache::instance()->get( 'Common.EnterpriseDetail', '', ['expire' => cfg('ENTERPRISE_DETAIL_CACHE_EXPIRE')] ); // 邀请方式: 直接邀请 $assignDepartment = $this->getAssignDepartment($data); $this->_result = [ // 邀请方式 'type' => $data['type'], // 岗位填写方式 'jobMode' => $settings['jobMode']['value'], // 角色填写方式 'roleMode' => $settings['roleMode']['value'], // 企业名称 'qyName' => $enterprise['epName'], 'qyLogo' => $enterprise['corpSquareLogo'], // 岗位数据 'jobField' => $fields['memJob'], // 角色数据 'roleField' => $fields['memRole'], // 邀请人填写字段 'inviter_write' => empty($data['inviter_write']) ? [] : unserialize($data['inviter_write']), // 进入指定组织邀请 类型的 指定组织 'assignDepartment' => $assignDepartment ]; return true; } /** * 邀请方式为直接邀请, 获取指定进入的组织 包括 进入邀请人所在组织 * @param $data array 邀请设置 * @return array */ protected function getAssignDepartment($data) { $assignDepartment = []; if ($data['type'] == InviteSettingModel::TYPE_DIRECT) { // 进入指定组织 if (!empty($data['departments'])) { $assignDpId = unserialize($data['departments']); $depServ = new Department(); $assignDepartment = $depServ->getById($assignDpId[0]); if (empty($assignDepartment)) { E('_ERR_MISS_DIRECT_INVITE_DEPARTMENT'); } $assignDepartment = [array_intersect_key_reserved($assignDepartment, ['dpId', 'dpName'], true)]; // 进入邀请人所在组织 } else { $assignDepartment = array_intersect_key_reserved($this->_login->user['dpName'], ['dpId', 'dpName']); } } return $assignDepartment; } }