"请认真选择您所感兴趣的活动", 2 => "请认真您所擅长的活动", 3 => "请认真选择你所喜欢的职业", 4 => "请根据对每一题目的第一印象作答" ); $partId = mt_rand(1,3); $result = array( 'partId' => $partId, 'title' => $array[$partId] ); return api_return('ok',$result); } /* * 获取试题 * */ public function getPaper(){ $partId = input("post.partId"); $result = Db::table('question')->where('part','=',$partId)->select(); return api_return('ok',$result); } /* * 测试结果 * */ public function getResult(){ $array = input('post.testNum'); $sortNum = array_column($array, 'num'); array_multisort($sortNum, SORT_DESC, $array); /* $qq = $array[0]['type'].$array[1]['type'].$array[2]['type']; $testConfig = config('protest.testresult'); $resTest =$testConfig[$qq];*/ $result = []; //统计数据 $resultCount[0]['num'] = Db::table('pro_majors')->where([['level','=',3],['is'.$array[0]['type'],'=',1]])->count(); $resultCount[0]['type'] = $array[0]['type']; $resultCount[1]['num'] = Db::table('pro_majors')->where([['level','=',3],['is'.$array[1]['type'],'=',1]])->count(); $resultCount[1]['type'] = $array[1]['type']; $resultCount[2]['num'] = Db::table('pro_majors')->where([['level','=',3],['is'.$array[2]['type'],'=',1],['is'.$array[0]['type'],'=',0],['is'.$array[1]['type'],'=',0]])->count(); $resultCount[2]['type'] = $array[2]['type']; //获取特征数据 $resultFeature[0]= Db::table('question_type')->field('type,title,feature')->where('type','=',$array[0]['type'])->find(); $resultFeature[1]= Db::table('question_type')->field('type,title,feature')->where('type','=',$array[1]['type'])->find(); $resultFeature[2]= Db::table('question_type')->field('type,title,feature')->where('type','=',$array[2]['type'])->find(); //柱状图饼状图 //获取类型名称 $typeName = config('protest.typeName'); foreach($array as $key=>$val){ $array[$key]['percent'] = $val['num']/10*100; $array[$key]['typeName'] = $typeName[$val['type']]; } $result['typePic'] = $array; $result['typeCount'] = $resultCount; $result['feature'] = $resultFeature; return api_return('ok',$result); } /* * 获取二级专业 * */ public function getParentLevel(){ $data = input('post.'); $array = $data['testNum']; $page = input("post.page",1); $limit = 10; switch ($data['recType']){ case 1: $count = Db::table('pro_majors')->where([['level','=',2],['is'.$array[0]['type'],'=',1]])->count(); $result = Db::table('pro_majors')->field('id,title')->where([['level','=',2],['is'.$array[0]['type'],'=',1]])->page($page,$limit)->select(); empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!'; foreach ($result as $key=>$val){ $result[$key]['countSon'] = Db::table('pro_majors')->where([['pid','=',$val['id']],['level','=',3],['is'.$array[0]['type'],'=',1]])->count(); $result[$key]['pid'] = $val['id']; } break; case 2: $count = Db::table('pro_majors')->where([['level','=',2],['is'.$array[1]['type'],'=',1]])->count(); $result = Db::table('pro_majors')->field('id,title')->where([['level','=',2],['is'.$array[1]['type'],'=',1]])->page($page,$limit)->select(); empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!'; foreach ($result as $key=>$val){ $result[$key]['countSon'] = Db::table('pro_majors')->where([['pid','=',$val['id']],['level','=',3],['is'.$array[1]['type'],'=',1]])->count(); $result[$key]['pid'] = $val['id']; } break; default: $count = Db::table('pro_majors')->where([['level','=',3],['is'.$array[2]['type'],'=',1],['is'.$array[0]['type'],'=',0],['is'.$array[1]['type'],'=',0]])->group('pid')->count(); $result = Db::table('pro_majors')->field('pid') ->where([['level','=',3],['is'.$array[2]['type'],'=',1],['is'.$array[0]['type'],'=',0],['is'.$array[1]['type'],'=',0]])->group('pid') ->page($page,$limit)->select(); empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!'; foreach ($result as $key=>$val){ $result[$key]['countSon'] = Db::table('pro_majors')->where([['pid','=',$val['pid']],['level','=',3],['is'.$array[2]['type'],'=',1],['is'.$array[0]['type'],'=',0],['is'.$array[1]['type'],'=',0]])->count(); $resTitle = Db::table('pro_majors')->field('title')->where('id','=',$val['pid'])->find(); $result[$key]['title'] = $resTitle['title']; } break; } //分页数据 $info = [ 'limit' => $limit, 'page_current' => $page, 'page_sum' => ceil($count / $limit), ]; //组合返回 $list = [ 'msg' => $msg, 'count' => $count, 'info' => $info, 'data' => $result, ]; return api_return('ok',$list); } //获取子级专业 public function getSonLevel(){ $data = input('post.'); $pid = $data['pid']; $array = $data['testNum']; switch ($data['recType']){ case 1: $result = Db::table('pro_majors')->field('id,title')->where([['pid','=',$pid],['level','=',3],['is'.$array[0]['type'],'=',1]])->select(); break; case 2: $result = Db::table('pro_majors')->field('id,title')->where([['pid','=',$pid],['level','=',3],['is'.$array[1]['type'],'=',1]])->select(); break; default: $result = Db::table('pro_majors')->field('id,title') ->where([['pid','=',$pid],['level','=',3],['is'.$array[2]['type'],'=',1],['is'.$array[0]['type'],'=',0],['is'.$array[1]['type'],'=',0]]) ->select(); break; } return api_return('ok',$result); } }