123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 首页接口
- */
- class Index extends Api
- {
- protected $noNeedLogin = ['index'];
- protected $noNeedRight = ['*'];
- /**
- * 首页
- * 热门试卷3个
- * 未开始的 + 进行中的
- * 我能参与的
- */
- public function index()
- {
- $now = time();
- //非实名,只能看一部分
- $where_auth = "";
- /*if($this->auth->idcard_status != 1){
- $where_auth = "(find_in_set('".$this->auth->id."',user_ids) )";
- }*/
- $papers = Db::name('exam_paper')->field('id,image,title,start_time,end_time,total_score,limit_time,user_ids')
- ->where('status', 'NORMAL')
- ->where('deletetime', NULL)
- ->whereRaw("((end_time = 0) or (end_time > {$now}))")
- // ->where($where_auth)
- // ->where('find_in_set(:user_ids,user_ids)', ['user_ids' => $this->auth->id])
- ->limit(2)
- ->order('start_time desc')
- ->select();
- if(empty($papers)){
- $papers = Db::name('exam_paper')->field('id,image,title,start_time,end_time,total_score,limit_time,user_ids')
- ->where('status', 'NORMAL')
- ->where('deletetime', NULL)
- ->limit(2)
- ->order('start_time desc')
- ->select();
- }
- foreach($papers as $key => &$val){
- $val['image'] = localpath_to_netpath($val['image']);
- $val['limit_time'] = $val['limit_time']/60; //秒转换分种
- $val['is_start'] = 0;
- if($val['start_time'] < $now && $now < $val['end_time'] && in_array($this->auth->id,explode(',',$val['user_ids'])) ){
- $val['is_start'] = 1;
- }
- unset($val['user_ids']);
- }
- $this->success('', $papers);
- }
- /**
- * 首页
- * 全部培训3个
- * 未开始的 + 进行中的
- */
- public function index_trainactive(){
- $now = time();
- //非实名,只能看一部分
- $where_auth = "";
- if($this->auth->idcard_status != 1){
- $where_auth = "(userauth_status = 1) or (find_in_set('".$this->auth->id."',user_ids) )";
- }
- $lists = Db::name('train_active')->field('id,name as title,logo_image,starttime,endtime,pingjia_time,pingjia_uid')
- ->where('pingjia_time',0)
- ->where('deletetime', NULL)
- ->where($where_auth)
- ->limit(2)
- ->order('starttime desc')
- ->select();
- foreach($lists as $key => &$val){
- $val['logo_image'] = localpath_to_netpath($val['logo_image']);
- if($val['pingjia_time'] != 0){
- $val['show_status'] = 3;
- $val['show_status_text'] = '已结束';
- }elseif($now < $val['starttime']){
- $val['show_status'] = 1;
- $val['show_status_text'] = '待开始';
- }else{
- $val['show_status'] = 2;
- $val['show_status_text'] = '进行中';
- }
- }
- $this->success('', $lists);
- }
- //考试,更多,所有考试列表
- public function all_paper_list(){
- //非实名,只能看一部分
- $where_auth = "";
- if($this->auth->idcard_status != 1){
- $where_auth = "(find_in_set('".$this->auth->id."',user_ids) )";
- }
- $papers = Db::name('exam_paper')->field('id,image,title,start_time,end_time,total_score,limit_time')
- ->where('status', 'NORMAL')
- ->where('deletetime', NULL)
- ->where($where_auth)
- ->autopage()
- ->order('start_time desc')
- ->select();
- foreach($papers as $key => &$val){
- $val['image'] = localpath_to_netpath($val['image']);
- $val['limit_time'] = $val['limit_time']/60; //秒转换分种
- }
- $this->success('', $papers);
- }
- //培训,更多,所有培训列表
- public function all_trainactive_list(){
- $type = input('type',1);
- $now = time();
- $where = [];
- if($type == 3){
- $where['pingjia_time'] = ['NEQ',0];
- }elseif($type == 1){
- $where['starttime'] = ['gt',$now];
- }else{
- // $where['starttime'] = ['lt',$now];
- // $where['endtime'] = ['gt',$now];
- $where['pingjia_time'] = 0;
- $where['starttime'] = ['lt',$now];
- }
- //非实名,只能看一部分
- $where_auth = "";
- if($this->auth->idcard_status != 1){
- $where_auth = "(userauth_status = 1) or (find_in_set('".$this->auth->id."',user_ids) )";
- }
- $papers = Db::name('train_active')->field('id,name as title,logo_image,starttime,endtime,pingjia_time,pingjia_uid')
- ->where('deletetime', NULL)
- ->where($where)
- ->where($where_auth)
- ->autopage()
- ->order('starttime desc')
- ->select();
- foreach($papers as $key => &$val){
- $val['logo_image'] = localpath_to_netpath($val['logo_image']);
- if($val['pingjia_time'] != 0){ //时间或评价,都行
- $val['show_status'] = 3;
- $val['show_status_text'] = '已结束';
- }elseif($now < $val['starttime']){
- $val['show_status'] = 1;
- $val['show_status_text'] = '待开始';
- }else{
- $val['show_status'] = 2;
- $val['show_status_text'] = '进行中';
- }
- }
- $this->success(1, $papers);
- }
- //在线考试
- //我的考试
- //可参加考试
- //我的试卷
- public function my_paper_list(){
- $now = time();
- $papers = Db::name('exam_paper')->field('id,title,start_time,end_time,total_score,limit_time')
- ->where('status', 'NORMAL')
- ->where('deletetime', NULL)
- ->whereRaw("((start_time = 0 and end_time = 0) or (start_time < {$now} and end_time > {$now}))")
- ->where('find_in_set(:user_ids,user_ids)', ['user_ids' => $this->auth->id])
- ->order('start_time desc')
- ->autopage()
- ->select();
- foreach($papers as $key => &$val){
- $val['limit_time'] = $val['limit_time']/60; //秒转换分种
- $val['is_start'] = 1;
- }
- $this->success('', $papers);
- }
- //历史考试
- public function my_grade_list(){
- $field = [
- 'grade.score','grade.is_pass','grade.total_score',
- 'grade.total_count','grade.right_count','grade.error_count',
- 'grade.grade_time','grade.start_time',
- 'paper.title'
- ];
- $list = Db::name('exam_grade')->alias('grade')
- ->join('exam_paper paper','grade.paper_id = paper.id','LEFT')
- ->field($field)
- ->where('grade.user_id',$this->auth->id)
- ->order('grade.id desc')
- ->autopage()
- ->select();
- foreach($list as $key => &$val){
- $val['grade_time_text'] = Sec2Time($val['grade_time']);
- }
- $this->success('', $list);
- }
- }
|