UnJoinListController.class.php
2.71 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
<?php
/**
*【积分抽奖-后台】未参与人员列表接口
* User: daijun
* Date: 2018/3/23
* Time: 下午3:42
*/
namespace Apicp\Controller\Activity;
use Common\Common\Constant;
use Common\Common\User;
use Common\Service\ActivityService;
use Common\Service\RecordService;
use Common\Service\RightService;
class UnJoinListController extends \Apicp\Controller\AbstractController
{
public function Index_post()
{
// 获取参数
$params = I('post.');
if (empty($params['ac_id'])) {
// 活动ID不能为空
E('_EMPTY_ACTIVITY_ID');
}
$activity_serv = new ActivityService();
$detail = $activity_serv->get($params['ac_id']);
if (empty($detail)) {
// 活动信息不存在
E('_ERR_ACTIVITY_DATA');
}
$record_serv = new RecordService();
$record_list = $record_serv->list_by_conds(['ac_id' => $params['ac_id']], null, [], 'uid');
// 已参与的人员uid集合
$uids = [];
if (!empty($record_list)) {
$uids = array_filter(array_unique(array_column($record_list, 'uid')));
}
// 查询权限人员集合
$right = new RightService();
$all_right_users = $right->get_uids_by_right($detail);
// 获取未参与人员uid集合
$un_join_uids = array_diff($all_right_users, $uids);
// 默认值
$page = !empty($params['page']) ? intval($params['page']) : Constant::DEFAULT_PAGE;
$limit = !empty($params['limit']) ? intval($params['limit']) : Constant::DEFAULT_LIMIT;
$list = [];
if (!empty($un_join_uids)) {
// 对未参与人员uid集合分页
$un_uids = $record_serv->get_page_data($un_join_uids, $page, $limit);
// 获取人员信息
$user_list = User::instance()->listByUid($un_uids);
foreach ($user_list as $user) {
// 循环格式化返回数据
$list[] = [
'memUid' => $user['memUid'],
'username' => $user['memUsername'],
'dp_name'=>empty($user['dpName'])?'':implode(',',array_column($user['dpName'],'dpName')),
'job' => $user['memJob'],
'role' => $user['memRole'],
'mobile' => $user['memMobile'],
];
}
}
// 返回数据
$this->_result = [
'page' => intval($page),
'limit' => intval($limit),
'join_total' => count($uids),
'un_join_total' => count($un_join_uids),
'total' => count($un_join_uids),
'list' => $list
];
return true;
}
}