<?php
namespace app\admin\model;
use think\facade\Db;
use think\facade\Cache;
use think\Model;

class QualityPpiExam extends Model
{
	public function online_exam($item_type){
        $set = Db::name('quality_exam_set')->where('item_type',$item_type)->find();
        if($set['num1']>0){
            $data1 = Db::name('quality_ppi_exam')->where(array('exam_type'=>1,'item_type'=>$item_type,'status'=>1))->orderRand()->limit($set['num1'])->lists();
            $data1 = $this->exam_rand($data1);
        }else{
            $data1 = [];
        }
        if($set['num2']>0){
            $data2 = Db::name('quality_ppi_exam')->where(array('exam_type'=>2,'item_type'=>$item_type,'status'=>1))->orderRand()->limit($set['num2'])->lists();
            $data2 = $this->exam_rand($data2);
        }else{
            $data2 = [];
        }
        // print_r($set);
        if($set['num3']>0){

            $data3 = Db::name('quality_ppi_exam')->where(array('exam_type'=>3,'item_type'=>$item_type,'status'=>1))->orderRand()->limit($set['num3'])->lists();
            $data3 = $this->exam_non_rand($data3);
        }else{
            $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'] = '';
        }
        return $data;
	}
    public function exam_list($item){
        $obj = Db::name('quality_ppi_exam')->where(array('item_type'=>$item['item_type'],'status'=>1));
        if(isset($item['exam_type'])&&$item['exam_type']>0){
            $obj = $obj->where('exam_type',$item['exam_type']);
        }
        $data = $obj->pages($item['limit']);
        $skill_info = Db::name('quality_base')->where('mid',4)->column('content','id');
        foreach ($data['lists'] as $k => $v) {
            $data['lists'][$k]['item_name'] = $skill_info[$v['item_type']];
        }
        return $data;
    }
    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;
    }
}
