ExamListController.class.php
5.14 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
<?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;
}
}