<?php
namespace homeh5\action;
use \model\carmodel;
use model\carmodelcn;
use model\homecn\cate;
use model\oeNumidx;
use model\pro\numidx;
use model\ypApiCom;

class itemAction extends baseAction
{

	/**
	*
	*/
	function search()
	{
        $this->mustLogin();
		$Params = \mvc::$req;

		//车架号查询跳转
		// if($Params['type'] == 'vin')
		// {
		// 	LibFc::Go(str_ireplace('item/search?', 'item/searchVin?', LibFc::nowUrl()));
		// }
		// 顶部国际车型信息
        if(!empty($Params['mm_id']))
        {
			
            $mmId = $Params['mm_id'];
			$carmodel = new carmodel();
			$modelInfo = $carmodel->getModelInfo($mmId);
			$mkId = $modelInfo['mk_id'];
			$mkLogo = '';
			if($mkId) {
			$mkLogoResult = $carmodel->getBrandLogo($mkId);
			$mkLogo = $mkLogoResult[0]['mk_logo'] ?? '';
			}
			$modelInfo['mk_logo'] = $mkLogo;
            \view::set('model',$modelInfo);
			\view::set('footMenu', 'brand');
        }
		if(!empty($Params['mod3_id']))
		{
			\view::set('footMenu', 'brandcn');
		}
		\view::set('Params', $Params);
		\view::set('title', '配件列表');
		\view::put();
	}

	function searchEngine()
	{
        $this->mustLogin();
		$req = \mvc::$req;
		\view::set('Params', $req);
		\view::set('title', '发动机查询');
		\view::put();
	}

	//车型搜索
	function searchModel()
	{
        $this->mustLogin();
		$req = \mvc::$req;
		\view::set('Params', $req);
		\view::set('title', '车型查询');
		\view::put();
	}

	//vin 解码
	function searchVin()
	{
		$this->mustLogin();
		$req = \mvc::$req;

		$hasImg = false;
		$vin = !isset($req['keyword']) ? '': formatNum($req['keyword']);
		\view::set('vin', $vin);
		$modelArr = [];
		if(strlen($vin) >= 17)
		{
			$vin = substr($vin, 0, 17);
			$this->mustLogin();

			$Params = [
				'vin'=>$req['keyword']
			];
			$ypApiCom = new ypApiCom();
			$res = $ypApiCom->Get('com/decodeVin', $Params);
			$modArr = $res['data'];
			$hasImg = false;
			if(!empty($modArr['model'])){
				foreach($modArr['model'] as $k=>&$v){
					$v['nextUrl'] = \mvc::$cfg['SELF_URI'].'item/search?mod3_id='.$v['mod3_id'].'&name='.($v['make_show_brand']?$v['brand_name']:$v['make_name']).' '.$v['mod2_name'].' '.$v['mod3_name'].' '.$v['vin_year'];
					if($v['vin_year']){
						$v['nextUrl'] .='&vinyear='.$v['vin_year']; 
					}
					if(!empty($v['pic'])) $hasImg = true;
				}
				unset($v);
			}
			$webfield = [
				'mod3_kw'=>'功率','mod3_cc'=>'排量','mod3_engine'=>'发动机','mod3_transmission'=>'变速器',
				'mod3_fuel'=>'燃料','mod3_body'=>'车身形式','mod3_front_brake'=>'前制动器','mod3_rear_brake'=>'后制动器',
				'mod3_parking_brake'=>'驻车制动','mod3_drive'=>'驱动方式','mod3_start_stop'=>'自动启停'
			];
			\view::set('webfield',$webfield);
			\view::set('modArr', $modArr);
			\view::set('hasImg', $hasImg);
		}
		\view::set('req', $req);
		\view::set('title', '车架号解码');
		\view::put();
	}

	function ajaxGetSearchSort()
    {
		$this->mustLogin();
        $Params = \mvc::$req;
        switch ($Params['type']){
            case 'number':
                $data = [
                    'shopid' => \mvc::$cfg['SHOPID'],
                    'number' => isset($Params['keyword']) ? $Params['keyword'] : ''
                ];
                break;
            case 'engine':
                $data = [
                    'shopid' => \mvc::$cfg['SHOPID'],
                    'engine' => isset($Params['keyword']) ? $Params['keyword'] : ''
                ];
                break;
            case 'item':
                $data = [
                    'shopid' => \mvc::$cfg['SHOPID'],
                    'item' => isset($Params['keyword']) ? $Params['keyword'] : ''
                ];
                break;
            default:
                $data = [
                    'shopid' => \mvc::$cfg['SHOPID'],
                    'mod3_id' => $Params['mod3_id'] ?: '',
                ];
                break;
        }

        foreach ($data  as $k => $v){
            if(empty($v)){
                unset($data[$k]);
            }
        }
        $LibYpApi = new LibYpApi();
        $res = $LibYpApi->Get('super/getSearchParts',$data);
        $data = [];
        $data[] = [
            'spart_id' => 0,
            'spart_name' => '所有'
        ];
        if($res['status'] == true && !empty($res['data'])){
            foreach ($res['data'] as $value){
                if(!empty($value)){
                    foreach ($value as $v){
                        $data[] = $v;
                    }
                }
            }
        }
        LibFc::ajaxJsonEncode(['status'=>true,'data'=> $data]);
    }

	/**VIN识别**/
	function vinOcr()
	{
		$this->mustLogin();
		$req = \mvc::$req; 
        $this->mustLogin();
        $arr = ['vin'=>'', 'chars'=>[]];
		if(!empty($req['data']))
		{
			$image =  substr(strstr($req['data'], ','), 1);
			$ypApiCom = new ypApiCom();
            $res = $ypApiCom->Get('com/vinOcr', [],['image' => $image]);
            $arr['vin'] = $res['data'];
            if(strlen($arr['vin']) == 17) $arr['chars'] = str_split($arr['vin'], 1);
		}
		if($req['callback']){
            $return = ['code'=>0, 'rows'=>$arr];
            echo $req['callback'].'('.json_encode($return, JSON_UNESCAPED_UNICODE).')';
        }else{
            $this->successJson($arr);
        }
	}


	//配件详情
	function info()
	{
		$this->mustLogin();
		$req = \mvc::$req;
		\view::set('Params', $req);
		\view::set('title', '配件详情');
		\view::put();
	}

	function infoJson()
	{
		$this->mustLogin();
		$req = \mvc::$req;
		if(!$req['id']&& !$req['type']) exitJson(0, '参数错误');
		$cate = new cate();
		if($req['type']=='oe')
        {
            $dataArr = $cate->getOeInfo($req['id']);
            $oeNumidx = new oeNumidx();
            //参数
            $numData = $oeNumidx->getNumList(['oe_id'=>$req['id']]);
            $dataArr['numData'] = $numData['rows']??[];
        }
        else
        {   
            $dataArr = $cate->getProInfo($req['id']);
            $numidx = new numidx();
            //参数
            $numData = $numidx->getList(['p_id'=>$req['id']]);
            $dataArr['numData'] = $numData['rows']??[];
    
        }
		$this->successJson($dataArr);
	}

	//品牌选择
	function brand()
	{
		$this->mustLogin();
		$Params = \mvc::$req;
		\view::set('Params', $Params);
		\view::set('title', '品牌选择');
		\view::set('footMenu', 'brand');
		\view::put();
	}

	//车型选择
	function models()
	{
		$this->mustLogin();
		$Params = \mvc::$req;
		\view::set('Params', $Params);
		\view::set('title', '车型选择');
		\view::set('footMenu', 'brand');
		\view::put();
	}

	function itemModelTree()
	{
		$Params = \mvc::$URL_PARAMS;
		$LibPjlApi = new LibPjlApi();
		$p = $this->decodeUri($Params['uri']);
		unset($Params['uri']);
		$Params = array_merge($Params, $p);
		$res = $LibPjlApi->Get('data/itemModelTree', $Params);
		LibFc::ajaxJsonEncode($res);
	}

	function brandcn()
	{
		$this->mustLogin();
		$Params = \mvc::$req;
		\view::set('Params', $Params);
		\view::set('title', '品牌选择');
		\view::set('footMenu', 'brandcn');
		\view::put();
	}

	function modelscn()
	{
		$this->mustLogin();
		$Params = \mvc::$req;
		\view::set('Params', $Params);
		\view::set('title', '车型选择');
		\view::set('footMenu', 'brandcn');
		\view::put();
	}

	function checkMatch()
	{
		$this->mustLogin();
		$proId = \mvc::$req['proId'];
		$keyword = \mvc::$req['keyword'];
		$modelList = [];
		$modIdList = [];
		$matchList = [];
		$matchAll = true;
		if($keyword){
			// 获取车型数组
			$vin = formatNum($keyword);
			if(strlen($vin) >= 17){
				$vin = substr($vin, 0, 17);
				$Params = [
					'vin'=>$vin
				];
				$ypApiCom = new ypApiCom();
				$res = $ypApiCom->Get('com/decodeVin', $Params);
				if($res['data']['model']){
					$modelList = $res['data']['model'];
				}
			}
			// 获取产品关联车型
			$pro = new carmodelcn();
			$modIdList = $pro->getMod3IdByProId($proId);
			foreach($modelList as $model){
				if(in_array($model['mod3_id'], $modIdList)){
					$matchList[] = $model;
				}else{
					$matchAll = false;
				}
			}
		}
		\view::set('keyword', $keyword);
		\view::set('proId', $proId);
		\view::set('matchAll', $matchAll);
		\view::set('matchList', $matchList);
		\view::set('modelList', $modelList);
		\view::set('title', '验证车型');
		\view::put();
	}
}
