StudyListController.class.php
3.52 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
<?php
/**
* Created by PhpStorm.
* User: tangxingguo
* Date: 2017/5/5
* Time: 10:23
*/
namespace Api\Controller\Course;
use Com\PackageValidate;
use Common\Common\Constant;
use Common\Common\User;
use Common\Service\StudyRecordService;
class StudyListController extends \Api\Controller\AbstractController
{
/**
* 是否必须登录
*/
protected $_require_login = false;
/**
* StudyList
* @author tangxingguo
* @desc 谁在学列表接口
* @param Int page:false:1 页码
* @param Int limit:false:20 每页记录数
* @param int article_id:true 课程ID
* @param int customtask_id 任务ID
* @param int plan_id 培训计划ID
* @param int ed_id 培训ID
* @return array 学生列表
array(
'page' => 1,
'limit' => 20,
'list' => array(
array(
'uid' => '469C4B0A7F0000016F4D5C189632297B', // 人员ID
'username' => '张三', // 人员姓名
'face' => 'http://shp.qpic.cn/bizmp/gdZUibR6BHrmiar6pZ6pLfRyZSVaXJicn2CsvKRdI9gccXRfP2NrDvJ8A/', // 头像
)
)
)
*/
public function Index_post()
{
// 验证规则
$rules = [
'article_id' => 'require|integer|gt:0',
'customtask_id' => 'integer',
'plan_id' => 'integer',
'ed_id' => 'integer',
'page' => 'integer',
'limit' => 'integer',
];
// 验证数据
$validate = new PackageValidate($rules, [], array_keys($rules));
$postData = $validate->postData;
$postData['page'] = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE;
$postData['limit'] = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT;
list($start, $perpage) = page_limit($postData['page'], $postData['limit']);
// 人员列表
$studyRecordServ = new StudyRecordService();
$recordConds = ['article_id' => $postData['article_id']];
if (isset($postData['customtask_id'])) {
$recordConds['customtask_id'] = $postData['customtask_id'];
}
if (isset($postData['plan_id'])) {
$recordConds['plan_id'] = $postData['plan_id'];
}
if (isset($postData['ed_id'])) {
$recordConds['ed_id'] = $postData['ed_id'];
}
// 排序条件
$order_option = ['created' => 'desc'];
$studyList = $studyRecordServ->list_by_conds($recordConds, [$start, $perpage], $order_option);
$list = [];
if ($studyList) {
// 取人员UID并去重
$uids = array_values(array_unique(array_column($studyList, 'uid')));
// 取头像
$userServ = &User::instance();
$userList = $userServ->listUsersAll(['memUids' => $uids,'memAll'=>1]);
$userList = array_combine_by_key($userList, 'memUid');
foreach ($uids as $v) {
$list[] = [
'uid' => $v,
'username' => $userList[$v]['memUsername'],
'face' => isset($userList[$v]) ? $userList[$v]['memFace'] : '',
];
}
}
$this->_result = [
'page' => $postData['page'],
'limit' => $postData['limit'],
'list' => $list,
];
}
}