order('create_time desc') ->limit(input('limit')) ->page(input('page')) ->select(); $count = UserFormModel::where($where)->count(); if ($count == 0) { ajax_return(1, '未查询到数据'); } //数据处理 foreach ($list as $v) { $v['sub_count'] = UserFormModel::where('folder_id', $v['id'])->count(); } list_return($list, $count); } public function exportProject() { $id = input('id', 0); if (empty($id)) { return '参数有误'; } $form = UserFormModel::find($id); if (empty($form) || $form['is_folder'] != 1) { return '参数有误'; } $form_list = UserFormModel::where([ ['folder_id', '=', $id], ['is_deleted', '=', 0], ])->select(); $form_key_list = $form_list->column('form_key'); if (empty($form_key_list)) { return '暂无评价'; } //表单问题 $form_item = UserFormItemModel::where('form_key', 'in', $form_key_list)->where('type', 'RADIO')->select(); $form_key_item_list = []; foreach ($form_item as $v) { $item = $v->toArray(); $item['scheme_array'] = json_decode($item['scheme'], true); $item['label'] = strip_tags($item['label']); $form_key_item_list[$v['form_key']][] = $item; } //具体数据 $form_data = UserFormDataModel::where('form_key', 'in', $form_key_list)->select(); if (empty($form_data)) { return '暂无评价'; } $form_key_data_list = []; foreach ($form_data as $v) { $item = $v->toArray(); $item['original_data_array'] = json_decode($item['original_data'], true); $form_key_data_list[$v['form_key']][] = $item; } //计算百分比 $res = []; foreach ($form_key_item_list as $key => $form_item_list) { //每个问题 $answer_list = $form_key_data_list[$key]; $res[$key]['list'] = $this->_dealPercent($answer_list, $form_item_list); } //组合数据 foreach ($form_list as $v) { $res[$v['form_key']]['title'] = trim(str_replace("\n", '', strip_tags($v['name']))); } return view('', ['form' => $form, 'list' => $res]); } public function course() { $id = input('id',0); if (empty($id)) { return '参数错误'; } return view('',['id'=>$id]); } public function listCourse() { $id = input('id',0); if (empty($id)) { ajax_return(1, '未查询到数据'); } $where = [ ['user_id', '=', 723], ['folder_id', '=', $id], ['is_deleted', '=', 0], ]; $list = UserFormModel::where($where) ->order('create_time desc') ->limit(input('limit')) ->page(input('page')) ->select(); $count = UserFormModel::where($where)->count(); if ($count == 0) { ajax_return(1, '未查询到数据'); } //数据处理 foreach ($list as $v) { $v['evaluate_count'] = UserFormDataModel::where('form_key', $v['form_key'])->count(); } list_return($list, $count); } private function _dealPercent($answer_list, $form_item_list) { /* $res = [ 'form_key' => [ 'form_item_id' => [ 'title'=>'标题', 'answer'=> [ 'value' => ['title'=>'非常满意','num'=>'数量'], 'value' => ['title'=>'满意','num'=>'数量'], ], 'answer_total' => '总数', ], ], ];*/ //问题列表 $problem_list = []; foreach ($form_item_list as $k => $v) { $options = []; if (!empty($v['scheme_array']['config']['options'])) { foreach ($v['scheme_array']['config']['options'] as $option) { $options[$option['value']] = ['title' => $option['label'], 'num' => 0]; } } $problem_list[$v['form_item_id']] = [ 'title' => $v['label'], 'answer' => $options, 'answer_total' => count($answer_list), ]; } //问题答案 foreach ($answer_list as $answer) { foreach ($answer['original_data_array'] as $answer_item_key => $answer_item) { if (!empty($problem_list[$answer_item_key])) { if (!empty($problem_list[$answer_item_key]['answer'][$answer_item])) { $problem_list[$answer_item_key]['answer'][$answer_item]['num']++; } } } } return $problem_list; } }