FormController.class.php
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
/**
* Created by PhpStorm.
* User: liyifei2012it
* Date: 16/9/18
* Reader: zhoutao 2017-06-13 10:11:48
* Reader: zhoutao 2017-06-30 10:05:44
* Time: 11:52
*/
namespace Api\Controller\Invite;
use Common\Common\Cache;
use Common\Model\AttrModel;
use Common\Service\AttrService;
use Common\Service\InviteLinkService;
class FormController extends AbstractController
{
protected $_require_login = false;
/**
* 邀请函表单接口
* @author liyifei
*/
public function Index_post()
{
$link_id = (int)I('post.link_id');
// 检查邀请链接是否可用
$this->_checkLinkId($link_id);
$inviteLinkService = new InviteLinkService();
if (empty($link_id) || !($link = $inviteLinkService->get($link_id))) {
E('1009:邀请连接错误');
return false;
}
$default_data = unserialize($link['default_data']);
// 获取人员属性表单
$attrServ = new AttrService();
$attrs = $attrServ->getAttrList(true, [AttrModel::ATTR_TYPE_SPECIAL, AttrModel::ATTR_TYPE_LEADER]);
// 读取所有已设置开启的属性详情
$form = $this->getForm($attrs, $default_data);
// 获取人员属性设置
$default = $this->getDefault($attrs, $default_data);
// 获取企业信息
$enterpriseInfo = Cache::instance()->get(
'Common.EnterpriseDetail',
'',
['expire' => cfg('ENTERPRISE_DETAIL_CACHE_EXPIRE')]
);
$this->_result = [
'list' => $form,
'default_data' => $default,
'qy_logo' => $enterpriseInfo['corpSquareLogo']
];
return true;
}
/**
* 获取人员属性字段
* @param $attrs
* @param $default_data array
* + 组织
* + 岗位
* + 角色
* @return array
*/
private function getForm($attrs, $default_data)
{
$form = [];
foreach ($attrs as $k => $attr) {
$hadMemRole = 'memRole' == $attr['field_name'] && !empty($default_data['role']);
$hadMemJob = 'memJob' == $attr['field_name'] && !empty($default_data['job']);
if ($hadMemJob || $hadMemRole) {
continue;
}
$form[$k] = [
'field_name' => $attr['field_name'],
'attr_name' => $attr['attr_name'],
'order' => intval($attr['order']),
'type' => intval($attr['type']),
'option' => $attr['option'],
'is_required' => $attr['is_required'],
'area' => AttrModel::AREA_PERSONAL,
];
}
return array_values($form);
}
/**
* 获取人员属性设置
* @param $default_data
* @param $attrs
* @return array
*/
private function getDefault($attrs, $default_data)
{
$attrs = array_combine_by_key($attrs, 'field_name');
$default = array();
foreach ($default_data as $_k => $_v) {
if ('department' == $_k) {
$default['dpName'] = array('组织', $_v['dpName']);
} elseif ('job' == $_k) {
$default[$attrs['memJob']['field_name']] = array($attrs['memJob']['attr_name'], $_v);
} elseif ('role' == $_k) {
$default[$attrs['memRole']['field_name']] = array($attrs['memRole']['attr_name'], $_v);
}
}
return $default;
}
}