DetailsV2Controller.class.php
3.86 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
/**
* 企业号管理组关系权限接口
* DetailsChooseController.class.php
* $author$ 何岳龙
* $date$ 2016年8月29日11:26:24
*/
namespace Api\Controller\ChooseMem;
use Common\Common\Department;
use Common\Common\User;
use Common\Common\Tag;
class DetailsV2Controller extends AbstractController
{
public function Index()
{
// 部门ids数组
$departmentIds = (array)I("post.departmentIds");
// 已选部门IDs数组
$selectedDepartmentIds = (array)I("post.selectedDepartmentIds");
// 获取部门数据
$ids = array_merge($departmentIds, $selectedDepartmentIds);
$departments = $this->_listDepartment($ids);
// 未选中标签IDs数组
$tagIds = (array)I("post.tagIds");
// 已选标签IDs数组
$selectedTagIds = (array)I("post.selectedTagIds");
// 获取标签数据
$ids = array_merge($tagIds, $selectedTagIds);
$tags = $this->_listTag($ids);
// 未选择UIDs数组
$userIds = (array)I("post.userIds");
// 已选UIDs数组
$selectedUserIds = (array)I("post.selectedUserIds");
// 获取用户数据
$ids = array_merge($userIds, $selectedUserIds);
$users = $this->_listUser($ids);
$this->_result = array(
'users' => $this->_pickData($users, $userIds),
'selectedUsers' => $this->_pickData($users, $selectedUserIds),
'departments' => $this->_pickData($departments, $departmentIds),
'selectedDepartments' => $this->_pickData($departments, $selectedDepartmentIds),
'tags' => $this->_pickData($tags, $tagIds),
'selectedTags' => $this->_pickData($tags, $selectedTagIds)
);
return true;
}
/**
* 从源数据中检出指定键值数据
* @param $sourceData
* @param $keys
* @return array
*/
protected function _pickData($sourceData, $keys)
{
$result = array();
foreach ($keys as $_k) {
if (empty($sourceData[$_k])) {
continue;
}
$result[] = $sourceData[$_k];
}
return $result;
}
/**
* 获取用户 openid
*
* @param array $uids 用户UID数组
*
* @return array
*/
protected function _listUser($uids)
{
// 如果用户 uid 不是数组或为空,就直接返回空数组
if (!is_array($uids) || empty($uids)) {
return array();
}
// 获取用户列表
$list = User::instance()->listByUid($uids);
return array_combine_by_key($list, 'memUid');
}
/**
* 获取部门列表详情
*
* @param array $dpIds 部门IDS
*
* @return array
*/
protected function _listDepartment($dpIds)
{
// 如果用户dpIds不是数组或为空,就直接返回空数组
if (!is_array($dpIds) || empty($dpIds)) {
return array();
}
// 获取部门列表数组
$departments = array();
// 获取全部部门
$list = Department::instance()->listAll();
// 遍历部门ID
foreach ($dpIds as $_dpId) {
// 获取部门信息
if (!isset($list[$_dpId])) {
continue;
}
$departments[$_dpId] = $list[$_dpId];
}
return $departments;
}
/**
* 获取标签列表
*
* @param array $tagIds 标签IDs
*
* @return array
*/
protected function _listTag($tagIds)
{
// 如果TagIds不是数组或为空,就直接返回空数组
if (!is_array($tagIds) || empty($tagIds)) {
return array();
}
// 获取部门列表数组
$data = Tag::instance()->listAll(array('tagIds' => $tagIds));
return array_combine_by_key($data['list'], 'tagId');
}
}