SettingInfoController.class.php 4.11 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 16/9/27
 * Time: 20:44
 * @reader zs_anything 2017-06-29
 */

namespace Apicp\Controller\Invite;

use Common\Common\User;
use Common\Common\Department;
use Common\Model\AttrModel;
use Common\Service\AttrService;
use Common\Service\InviteSettingService;

class SettingInfoController extends AbstractController
{

    /**
     * 【通讯录】获取邀请函设置
     * @author liyifei
     */
    public function Index_post()
    {

        $settingServ = new InviteSettingService();
        $data = $settingServ->get_by_conds([]);
        if (empty($data)) {
            E('_ERR_DATA_IS_NULL');
        }

        // 读取所有已设置开启的属性详情
        $newForm = [];
        $attrServ = new AttrService();
        $attrs = $attrServ->getAttrList(true, [AttrModel::ATTR_TYPE_SPECIAL, AttrModel::ATTR_TYPE_LEADER], true);
        foreach ($attrs as $k => $attr) {
            $newForm[$k] = [
                'order' => intval($attr['order']),
                'postion' => intval($attr['postion']),
                'attr_name' => $attr['attr_name'],
                'field_name' => $attr['field_name'],
                'is_open' => intval($attr['is_open']),
                'is_open_edit' => intval($attr['is_open_edit']),
                'is_required' => intval($attr['is_required']),
                'is_required_edit' => intval($attr['is_required_edit']),
            ];
        }

        // 格式化邀请人员、审批人员、部门信息
        $inviteUdpids = array(
            'selectedList' => array()
        );
        if (!empty($data['invite_udpids'])) {
            $inviteUdpids = unserialize($data['invite_udpids']);
            if (empty($inviteUdpids['selectedList'])) {
                $inviteUdpids['selectedList'] = array();
            } else {

                // add zs_anything 2017-06-28 begin
                // 过滤已不存在的邀请授权对象
                list($existAuthIds, $existAuthInfoList) = $this->filterNonExistAuthTarget($inviteUdpids['selectedList']);

                $inviteUdpids['selectedList'] = $existAuthInfoList;
                $inviteUdpids['auths'] = $existAuthIds;

                // add zs_anything 2017-06-28 end
            }
        }
        // 格式化审核人员
        $checkUdpids = '';
        if (!empty($data['check_udpids'])) {
            $checkUdpids = $this->formateUser(unserialize($data['check_udpids']));
        }
        // 格式化部门
        $department = '';
        if (!empty($data['departments'])) {
            $department = $this->formateDepartment(unserialize($data['departments']));
        }
        // 邀请者填写
        $inviterWrite = array();
        if (!empty($data['inviter_write'])) {
            $inviterWrite = unserialize($data['inviter_write']);
        }

        $this->_result = [
            'type' => intval($data['type']),
            'qrcode_expire' => intval($data['qrcode_expire']),
            'departments' => $department,
            'inviter' => $inviteUdpids,
            'checker' => $checkUdpids,
            'form' => $newForm,
            'check_type' => $data['check_type'],
            'inviter_write' => $inviterWrite
        ];

        return true;
    }

    /**
     * 格式化人员信息
     * @param $uids
     * @return array
     */
    public function formateUser($uids)
    {

        $data = [];
        $user = new User();
        $list = $user->listByUid($uids);
        foreach ($list as $k => $item) {
            $data[] = [
                'uid' => $item['memUid'],
                'name' => $item['memUsername'],
                'face' => $item['memFace'],
            ];
        }
        return $data;
    }

    /**
     * 格式化部门信息
     * @param $dps
     * @return array
     */
    public function formateDepartment($dps)
    {

        $data = [];
        $department = new Department();
        $list = $department->listById($dps);
        foreach ($list as $k => $item) {
            $data[] = [
                'dp_id' => $item['dpId'],
                'dp_name' => $item['dpName'],
            ];
        }
        return $data;
    }


}