<?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; } }