<?php
namespace app\admin\model;
use think\facade\Db;
use think\facade\Cache;
use think\Model;

class MemberNewcomerExam extends Model
{
	public function online_exam($item){
        $today = strtotime('today');
        $record = Db::name('member_newcomer_score')->where('exam_date','between',[$today,time()])->where(array('ename'=>$item['ename'],'phone'=>$item['phone']))->order('exam_date desc')->lists();
        $list['type'] = 1;
        $list['item'] = 0;
        if(count($record)>0){
            $list['type'] = $record[0]['type']+1;
            $item['exam'] = $record[0]['item_type'];
            $list['item'] = $record[0]['item_type'];
        }else{
            $item['exam'] = $item['item_type'];
        }
        $data1 = Db::name('member_newcomer_exam')->where(array('exam_type'=>2,'item_type'=>$item['exam'],'status'=>1))->orderRand()->lists();
        $data1 = $this->exam_rand($data1);
        $data2 = Db::name('member_newcomer_exam')->where(array('exam_type'=>1,'item_type'=>$item['exam'],'status'=>1))->orderRand()->lists();
        $data2 = $this->exam_rand($data2);
        $data3 = Db::name('member_newcomer_exam')->where(array('exam_type'=>3,'item_type'=>$item['exam'],'status'=>1))->orderRand()->lists();
        $data3 = $this->exam_non_rand($data3);
        $data = array_values(array_merge($data1,$data2,$data3));
        foreach ($data as $k => $v) {
            if($v['exam_type']==2){
                $data[$k]['answer'] = json_decode($v['answer']);
            }else{
                $data[$k]['answer'] = json_decode($v['answer'])[0];
            }
            $data[$k]['answerIndex'] = 9;
            $data[$k]['wrong'] = 1;
            $data[$k]['answered'] = '';
        }
        $list['data'] = $data;
        return $list;
	}
    private function exam_rand($data){
        foreach ($data as $k => $v) {
            $item = [];
            array_push($item, $v['item_a']);
            array_push($item, $v['item_b']);
            if(isset($v['item_c'])&&$v['item_c']!==''){
                array_push($item, $v['item_c']);
            }
            if(isset($v['item_d'])&&$v['item_d']!==''){
                array_push($item, $v['item_d']);
            }
            shuffle($item);
            $data[$k]['exam'] = $item;
        }
        return $data;
    }
    private function exam_non_rand($data){
        foreach ($data as $k => $v) {
            $item = [];
            array_push($item, $v['item_a']);
            array_push($item, $v['item_b']);
            if(isset($v['item_c'])&&$v['item_c']!==''){
                array_push($item, $v['item_c']);
            }
            if(isset($v['item_d'])&&$v['item_d']!==''){
                array_push($item, $v['item_d']);
            }
            $data[$k]['exam'] = $item;
        }
        return $data;
    }
}
