<?php /** *【线下培训-后台】班级管理列表 * * @author: houyingcai * @email: 594609175@qq.com * @date : 2017-08-29 10:08:15 * @version $Id$ */ namespace Apicp\Controller\Team; use Common\Service\EducationService; use Common\Service\RightUsersService; class ListController extends \Apicp\Controller\AbstractController { public function Index_post() { $params = I('post.'); // 默认值 $params['page'] = !empty($params['page']) ? intval($params['page']) : 1; $params['limit'] = !empty($params['limit']) ? intval($params['limit']) : self::PAGE_LIMIT_DEFAULT; $right_users_server = new RightUsersService(); $education_server = new EducationService(); // 培训ID不能为空 if (empty($params['ed_id'])) { E('_EMPTY_ED_ID'); } $education = $education_server->get($params['ed_id']); // 培训不存在 if (empty($education)) { E('_ERR_EDUCATION_NOT_EXIST'); } // 获取培训状态 $ed_status = $education_server->get_ed_status($education); // 根据部门ID集合,角色ID,岗位ID获取人员ID集合 if ($params['dpIDs'] || $params['roleID'] || $params['jobID'] || $params['memUsername']) { $ed_uids = $right_users_server->list_uids_by_dp_job_role( $params['dpIDs'], $params['roleID'], $params['jobID'], $params['memUsername'] ); unset( $params['dpIDs'], $params['roleID'], $params['jobID'], $params['memUsername'] ); // 用户为空直接返回 if (empty($ed_uids)) { $this->_result = [ 'total' => 0, 'all_total' => 0, 'sign_total' => 0, 'unsign_total' => 0, 'page' => $params['page'], 'limit' => $params['limit'], 'list' => [], 'ed_status' => $ed_status, 'ed_is_sign_up' => $education['ed_is_sign_up'], 'ed_is_check' => $education['ed_is_check'], 'ed_is_charge' => $education['ed_is_charge'], ]; return true; } } // 人员ID集合不为空 if (!empty($ed_uids)) { $params['ru_uids'] = $ed_uids; } // 根据搜索条件统计班级人员数量 $total = $right_users_server->count_by_right_users($params); $search_list = []; // 班级人员不为空 if ($total) { // 根据搜索条件获取班级人员列表 $search_list = $right_users_server->list_by_right_users($params); $uids = array_column($search_list, 'ru_uid'); // 获取用户详细信息 $user_list = $right_users_server->get_all_user_by_cache($uids); // 组装返回数组 foreach ($search_list as $k => &$v) { $dpNames = array_column($user_list[$v['ru_uid']]['dpName'], 'dpName'); $order_num = ($params['page'] - 1) * $params['limit'] + ($k + 1); $v['ru_id'] = intval($v['ru_id']); $v['ed_id'] = intval($v['ed_id']); $v['order_num'] = $order_num; $v['memUsername'] = $user_list[$v['ru_uid']]['memUsername']; $v['dpName'] = implode(',', $dpNames); $v['roleName'] = $user_list[$v['ru_uid']]['memRole']; $v['jobName'] = $user_list[$v['ru_uid']]['memJob']; } } // 获取全部学员总数、已报名学员总数、未报名学员总数(不可从 education 表中获取) $conds = ['ed_id' => $params['ed_id']]; if (!empty($ed_uids)) { $conds['ru_uids'] = $ed_uids; } $all_total = (int)$right_users_server->count_by_right_users($conds); $conds['ru_sign_status'] = RightUsersService::SIGN_STATUS_SIGNED; $sign_total = (int)$right_users_server->count_by_right_users($conds); $unsign_total = $all_total - $sign_total; $this->_result = [ 'total' => $total, 'all_total' => $all_total, 'sign_total' => $sign_total, 'unsign_total' => $unsign_total, 'page' => $params['page'], 'limit' => $params['limit'], 'list' => $search_list, 'ed_status' => $ed_status, 'ed_is_sign_up' => $education['ed_is_sign_up'], 'ed_is_check' => $education['ed_is_check'], 'ed_is_charge' => $education['ed_is_charge'], ]; return true; } }