ListController.class.php
5.11 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
<?php
/**
* Created by PhpStorm.
* User: liyifei2012it
* Date: 17/10/11
* Time: 17:41
*/
namespace Apicp\Controller\Questionnaire;
use Common\Common\Constant;
use Common\Common\QuestionnaireHelper;
use Common\Common\User;
class ListController extends \Apicp\Controller\AbstractController
{
/**
* List
* @author daijun
* @desc 员工调研明细列表
* @param Int page:1 当前页
* @param Int limit:20 当前页条数
* @param String uid:true 用户uid
* @return array
array(
'user' => array( // 人员数据
'uid' => 'B4BD47577F000001053A50235DC5B1BB', // 用户uid
'userface' => 'http://p.qlogo.cn/bizmail/FZaQ9jwGLMdFlI84NwMVWCCcZsnxPwXrdkcWWWZTrWS8BAwYMW7yQQ/0', // 头像
'username' => '李四', // 姓名
'dp_names' => array('开发组', '测试组'), // 组织
'job' => 'PHP工程师', // 岗位
'role' => 'leader', // 角色
),
'page' => 1, // 当前页
'limit' => 20, // 当前页条数
'total' => 100, // 总条数
'list' => array( // 列表数据
array(
'a_id' => 101, // 问卷回答记录id
'qu_id' => 5, // 问卷id
'title' => '圆圈logo征集', // 调研名称
'qc_name' => '调查类', // 所属分类
'deadline' => 1506787200000, // 截止时间(时间戳:毫秒)
'anonymous' => '2', // 是否匿名(1:否,2:是)
'writetime' => 1506787100000, // 填写时间
),
),
)
*/
public function Index_post()
{
$params = I('post.');
if(empty($params['uid'])){
E('_EMPTY_UID');
}
// 分页
$page = !empty($params['page']) ? $params['page'] : Constant::PAGING_DEFAULT_PAGE;
$limit = !empty($params['limit']) ? $params['limit'] : Constant::PAGING_DEFAULT_LIMIT;
list($start, $limit, $page) = page_limit($page, $limit);
$questionnaire_helper = & QuestionnaireHelper::instance();
// 分页参数
$page_option = array($start, $limit,);
// 填写时间倒序
$order_option = array('created' => 'DESC');
// 查询条件
$conds = array(
'uid' => $params['uid'],
'data_type' => Constant::DATA_TYPE_NOMAL
);
$total = $questionnaire_helper->count_answer($conds);
$answer_list = array();
$qu_list = array();
$classify_list = array();
if($total){
// 查询回答记录
$answer_list = $questionnaire_helper->list_answer($conds,$page_option,$order_option,'a_id,qu_id,uid,created');
// 获取问卷id集合
$qu_ids = array_unique(array_column($answer_list,'qu_id'));
// 查询问卷基本信息
$qu_list = $questionnaire_helper->list_baseinfo(array('qu_id' => $qu_ids,'qu_type' => 1),'qu_id,title,deadline,qc_id,anonymous');
$qu_list = array_combine_by_key($qu_list,'qu_id');
// 获取问卷分类id集合
$qc_ids = array_unique(array_column($qu_list,'qc_id'));
// 获取问卷分类列表
$classify_list = $questionnaire_helper->list_classify(array('qc_id'=>$qc_ids),'qc_id,qc_name');
$classify_list = array_combine_by_key($classify_list,'qc_id');
}
$list = array();
// 返回数据格式化
foreach ($answer_list as $v){
$data = array();
// 组装问卷id、回答记录id、填写时间
$data['a_id'] = $v['a_id'];
$data['qu_id'] = $v['qu_id'];
$data['writetime'] = $v['created'];
// 获取问卷标题、截止时间、是否匿名
$qu_info = $qu_list[$v['qu_id']];
$data['title'] = $qu_info['title'];
$data['deadline'] = $qu_info['deadline'];
// 此处数据库的字段与返回值字段刚好相反
$data['anonymous'] = $qu_info['anonymous'] == 1 ? 2 : 1;
// 获取分类信息
$class_info = $classify_list[$qu_info['qc_id']];
$data['qc_name'] = $class_info['qc_name'];
$list[] = $data;
}
$user = &User::instance()->getByUid($params['uid']);
$this->_result = [
'user' => [
'uid' => $params['uid'],
'username' => $user['memUsername'],
'userface' => $user['memFace'],
'dp_names' => isset($user['dpName']) && !empty($user['dpName']) ? array_column($user['dpName'], 'dpName') : [],
'job' => $user['memJob'],
'role' => $user['memRole'],
],
'page' => (int)$page,
'limit' => (int)$limit,
'total' => (int)$total,
'list' => $list
];
}
}