<?php 
namespace model\import;
use model\smart\smart;
/**
 * 
 */
class custom  extends smart
{
	 /**
     * 标题 (用于消息提醒)
     */
	public $title = '自定义推荐型号'; //固定
	public $import = null;    //固定
	public $rules = null;    //规则
	public $demoData = null;  //样例数据
	public $demoremark = null;  //样例说明
	
	public function __construct()
	{
		parent::__construct(); //执行父类
		$this->import = new \lib\import();
		$this->rules = [
			['key'=>'smt_p_outnum','caption'=>lg('GSP型号')],
		];

		
		$this->demoData = [
			
		];

		$this->demoremark = '';
	}
	
	 /**处理导入
     * @param array|string $src 数组或者文件名
     * @param isInit 是否是初始化
     * @return 可返回任意值(string|array|bool)，都会到前端
     */
    public function import($src,$isInit=false) //固定
    {

        $title = urldecode(\mvc::$req['title']);
        if(empty($title) && !empty(\mvc::$req['params'])){
            $params =json_decode(\mvc::$req['params'],true);
            $title = urldecode($params['title']);
        }
        if(!$title){
            $state = false;
        } 
		$state = $this->import->execute($src, $this->rules);
        

		//数据重复验证 - 自己
		if($state && !empty($this->import->data))
		{
			$state = !$this->import->checkRepeat([
			    ['smt_p_outnum']
		    ]);
		}
	
		if($state && !empty($this->import->data))
		{
            foreach ($this->import->data as $key => $val) {
                $numArr[] = $val['smt_p_outnum'];
            }
            $outNumArr =  $this->db->select('smt_pro',['smt_p_id','smt_p_outnum'],['smt_p_outnum'=>$numArr]);
            $outNumArr = array_column($outNumArr,'smt_p_id','smt_p_outnum');
		}
		//入库
		if($state && !empty($this->import->data))
		{
			$this->db->Begin();
    
            $titleArr = [
                'sclh_title'=>$title,
                'opuser'=>getOpuser(),
            ];
            $sclh_id = $this->db->replace('smt_custom_list_head',$titleArr);
			$sclh_id = $this->db->get('smt_custom_list_head','sclh_id',['sclh_title'=>$this->dataTitle]);
			if(!$sclh_id){
			    return;
			}
			$this->db->delete('smt_custom_list',['sclh_id'=>$sclh_id]);


			foreach($this->import->data as $k=> &$mv)
			{
				if($k > 0 && $k%1000 === 0) errorLog(__CLASS__.$this->title.':'.$k, 'import');
				
                if(!$outNumArr[$mv['smt_p_outnum']]){
                    $state = false;
					$mv['excelInfo']['error'] = '此型号不存在';
					$this->import->lineNum = $mv['excelInfo']['line'];
					$this->import->lastError = $mv['excelInfo']['error'];
                    continue;
                } 
                $temp = [
                    'scl_head_id'=>$sclh_id,
                    'scl_p_id'=>$outNumArr[$mv['smt_p_outnum']],
                ];
                $this->db->insert('smt_custom_list',$temp);
			}
			unset($mv);

			$this->db->End();
		}
        return $this->import->output(); //生成处理结果
	}
}