<?php /** * 员工考试明细 * User: yingcai * Date: 2017/10/12 * Time: 下午12:11 */ namespace Apicp\Controller\UserData; use Common\Common\Constant; use Common\Common\ExamHelper; use Common\Common\User; class ExamListController extends \Apicp\Controller\AbstractController { /** * ExamList * @author houyingcai * @desc 员工考试明细 * @param Int page:1 当前页 * @param Int limit:20 当前页条数 * @param String uid:true 人员UID * @return array array( 'user' => array( // 人员数据 'username' => '李四', // 姓名 'userface' => 'http://p.qlogo.cn/bizmail/FZaQ9jwGLMdFlI84NwMVWCCcZsnxPwXrdkcWWWZTrWS8BAwYMW7yQQ/0', // 头像 'dp_names' => array('开发组', '测试组'), // 组织 'job' => '苹果系统工程师', // 岗位 'role' => 'leader', // 角色 ), 'page' => 1, // 当前页 'limit' => 20, // 当前页条数 'total' => 100, // 总条数 'list' => array( // 列表数据 array( 'ea_id' => 123, // 答卷ID 'ep_id' => 1, // 试卷ID 'ep_name' => '入职测试', // 试卷名称 'ec_name' => '分类1', // 试卷所属分类名称 'paper_type' => 1, // 试卷使用类型(0:测评试卷,1:模拟试卷) 'begin_time' => 1501827237983, // 考试开始时间(毫秒级时间戳) 'end_time' => 1501927237983, // 考试结束时间(毫秒级时间戳) 'paper_time' => 300, // 考试时长(秒) 'my_begin_time' => 1501827237983, // 参与考试开始时间(毫秒级时间戳) 'my_end_time' => 1501827237983, // 参与考试结束时间(毫秒级时间戳) 'total' => 1, // 参与次数 'my_score' => '50.00', // 分数 ), ), ) */ public function Index_post() { $params = I('post.'); // UID不能为空 if (empty($params['uid'])) { E('_EMPTY_UID'); } // 获取用户信息 $userServ = &User::instance(); $user = $userServ->getByUid($params['uid']); $user_data = [ 'username' => $user['memUsername'], 'userface' => $user['memFace'], 'dp_names' => array_column($user['dpName'], 'dpName'), 'job' => $user['memJob'], 'role' => $user['memRole'], ]; // 默认值 $page = !empty($params['page']) ? intval($params['page']) : Constant::PAGING_DEFAULT_PAGE; $limit = !empty($params['limit']) ? intval($params['limit']) : Constant::PAGING_DEFAULT_LIMIT; // 分页 list($start, $limit) = page_limit($page, $limit); // 分页参数 $page_option = array($start, $limit); // 发布时间倒序 $order_option = array('l.ea_id' => 'DESC'); $exam_helper = &ExamHelper::instance(); // 根据UID统计用户考试次数 $total = $exam_helper->count_user_data_exam($params['uid']); // 根据UID获取员工考试记录 $list = $exam_helper->list_user_data_exam($params['uid'], $page_option, $order_option); // 格式化数据 $this->format_list($list); $this->_result = [ 'user' => $user_data, 'page' => $page, 'limit' => $limit, 'total' => intval($total), 'list' => $list, ]; } /** * @desc 格式化数据列表 * @param array $list 需要格式化的数据列表 * @return bool */ private function format_list(&$list) { $exam_helper = &ExamHelper::instance(); // 获取分类列表 $category_list = $exam_helper->exam_category_list(); // 获取所有的试卷ID $ep_ids = array_column($list, 'ep_id'); // 根据试卷ID获取试卷信息 $paper_list = $exam_helper->list_by_paper_ids($ep_ids); // 获取分类名称 foreach ($paper_list as &$v) { $v['ec_name'] = $category_list[$v['ec_id']]['ec_name']; } // 组装列表数据 foreach ($list as $key => &$val) { $val['ea_id'] = intval($val['ea_id']); $val['ep_id'] = intval($val['ep_id']); $val['my_time'] = intval($val['my_time']); $val['total'] = intval($val['total']); $paper = $paper_list[$val['ep_id']]; $val['ep_name'] = $paper['ep_name']; $val['ec_name'] = $paper['ec_name']; $val['begin_time'] = $paper['begin_time']; $val['end_time'] = $paper['end_time']; $val['paper_type'] = intval($paper['paper_type']); $val['paper_time'] = intval($paper['paper_time'] * 60); } return true; } }