123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <?php
- namespace app\admin\controller;
- use app\admin\AdminBaseController;
- use app\common\model\q\UserFormDataModel;
- use app\common\model\q\UserFormItemModel;
- use app\common\model\q\UserFormModel;
- class Evaluate extends AdminBaseController
- {
- /**
- * 项目列表
- */
- public function project()
- {
- return view();
- }
- public function listProject()
- {
- $where = [
- ['user_id', '=', 723],
- ['is_folder', '=', 1],
- ['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['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) {
- if (!empty($form_key_data_list[$key])) {
- //每个问题
- $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;
- }
- }
|