first commit
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Administrator
|
||||
* Date: 2020/5/11
|
||||
* Time: 12:01
|
||||
*/
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
|
||||
use think\Db;
|
||||
|
||||
class Protest
|
||||
{
|
||||
//获取试题类型
|
||||
public function getPart(){
|
||||
$array = array(
|
||||
1 => "请认真选择您所感兴趣的活动",
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user