<?php
namespace homecn\action;

use model\carmodelcn;
use \model\homecn;
use model\homecn\cate;
use model\oe;
use model\oeNumidx;
use model\pro\numidx;
use model\ypApi;
use model\ypApiCom;

class indexAction extends baseAction
{   
    public function index()
    {
        $req = \mvc::$req;
        $carmodelcn = new carmodelcn();
        $brandList = $carmodelcn->getBrandListByFilter($req);
        \view::set('req',$req);
        \view::set('brandList', $brandList);
        \view::set('title','中国车型-'.\mvc::$cfg['siteTitle']);
		\view::put();
    }
    public function cate()
    {
		
		\view::set('title', '分类-'.\mvc::$cfg['siteTitle']);
		\view::put();
	}

    public function lists()
    {
		$this->mustLogin();
        $req = \mvc::$req;
        // $cate = new cate();
        // $data = $cate->getProList($req);
        // \view::set('dataArr',$data['list']);
		// \view::set('pageTpl',$this->showPages($data['recordCount'],$data['pagesize'],1));
        \view::set('title', '产品列表-'.\mvc::$cfg['siteTitle']);
        \view::set('req', $req);
		\view::put();

    }
    public function item()
    {
		$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']??[];
    
        }

        \view::set('dataArr', $dataArr);
        \view::set('req', $req);


        \view::set('title', '产品详情-'.\mvc::$cfg['siteTitle']);
		\view::put();
    }

    public function checkout()
    {
       $this->mustLogin();
        \view::set('user', $_SESSION['user']);
        \view::set('title', \mvc::$cfg['siteTitle']);
        \view::put();
    }

    /**
     * @method 异步获取分类页面
     * @author zhengweihua 
     * @copyright 2026-01-09
     */
    public function ajaxGetCateList()
    {
        $req = \mvc::$req;
        //获取分类数据
        $cate = new cate();
        $cateArr = $cate->getCateLists($_SESSION['cnuser']['u_id'],$req);
        \view::set('cateArr', $cateArr);
        \view::set('req', $req);
        $html = \view::fetch();
        $this->successJson(['html'=>$html]);
    }

    /**
     * @method 异步获取产品列表
     * @author zhengweihua 
     * @copyright 2026-01-09
     */
    public function ajaxGetList()
    {
        $req = \mvc::$req; 
        $this->mustLogin();
        $mm_id = $req['mm_id']??'';
        $mod3_id = $req['mod3_id']??'';
        $catePagePrams = [];
        if($mm_id) $catePagePrams['mm_id'] = $mm_id;
        if($mod3_id) $catePagePrams['mod3_id'] = $mod3_id;
        $cate = new cate();
        $data = $cate->getProList($req);
        \view::set('catePagePrams', $catePagePrams);
        \view::set('dataArr',$data['list']);
		\view::set('pageTpl',$this->showAjaxPages($data['recordCount'],$data['pagesize'], false, 'getList'));
		$html = \view::fetch();
        $this->successJson(['html'=>$html]);
    }

    public function vin()
    {   
        $req = \mvc::$req;
        \view::set('req', $req);
        \view::set('searchType', 'vin');
        \view::set('title', 'VIN查询-'.\mvc::$cfg['siteTitle']);
        \view::put();
    }

    /**
     * @method 处理vin图片
     * @author zhengweihua 
     * @copyright 2026-01-10
     */
    public function vinImage()
    {   
        $req = \mvc::$req; 
        $this->mustLogin();
        $arr = ['vin'=>'', 'chars'=>[]];
        if($_SERVER['REQUEST_METHOD']=='POST' && !empty($req['data']))
        {
            $image =  substr(strstr($req['data'], ','), 1);
            // $post['name'] = empty($req['name'])? 'vinFile.jpg': $req['name'];
            $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);
        }
        
       
    }

    /**
     * @method 解析结果
     * @author zhengweihua 
     * @copyright 2026-01-10
     */
    public function decodeVin()
    {   
        $this->mustLogin();
        $req = \mvc::$req;
        $Params = [
            'vin'=>$req['vin']
        ];
		$ypApiCom = new ypApiCom();
		$res = $ypApiCom->Get('com/decodeVin', $Params);
		$modArr = $res['data'];
		$hasImg = false;
		$kwfiled = [];$dcfiled = [];$mod2Link = [];$filedVals = [];
		foreach($modArr['model'] as $k=>$v)
		{
			if(!empty($v['pic'])) $hasImg = true;
			if($modArr['from'] == 'bigcar')
			{
				$v['mod_uri'] =  $this->encodeUri('mod_id='.$v['mod_id']);
				$modArr['model'][$k] = $v;
			}
			if($modArr['from'] == 'ypc')
			{
				if(isset($v['mod3_jgl_kw']) && !empty($v['mod3_jgl_kw'])){
					if(!isset($kwfiled['mod3_jgl_kw']['count'])) $kwfiled['mod3_jgl_kw']['count'] = 0;
					$kwfiled['mod3_jgl_kw']['count']++;
					$kwfiled['mod3_jgl_kw']['name'] = $v['mod3_jgl_kw'][0];
				} 
				if(isset($v['mod3_ed_kw']) && !empty($v['mod3_ed_kw'])){
					if(!isset($kwfiled['mod3_ed_kw']['count'])) $kwfiled['mod3_ed_kw']['count'] = 0;
					$kwfiled['mod3_ed_kw']['count']++;
					$kwfiled['mod3_ed_kw']['name'] = $v['mod3_ed_kw'][0];
				} 
				if(!empty($v['mod3_cc'])) $filedVals['mod3_cc'][$v['mod3_cc']] = 1;
				if(!empty($v['mod3_fuel'])) $filedVals['mod3_fuel'][$v['mod3_fuel']] = 1;
				if(!empty($v['xuhang'])) $dcfiled['xuhang'] = '续航';
				if(!empty($v['dianchi'])) $dcfiled['dianchi'] = '电池种类';
				$mod2Link[$v['mod2_id']]['base'] = $v;
				$mod2Link[$v['mod2_id']]['mod3'][$v['mod3_id']] = $v;
			}
		}
		if($modArr['from'] == 'ypc')
		{
			if((empty($kwfiled['mod3_jgl_kw']) || count($modArr['model']) == $kwfiled['mod3_jgl_kw']['count']) || (empty($kwfiled['mod3_ed_kw']) || count($modArr['model']) == $kwfiled['mod3_ed_kw']['count']))
			{}else{$kwfiled = [];}
		}
		
        \view::set('filedVals', $filedVals);
        \view::set('mod2Link', $mod2Link);
        \view::set('dcfiled', $dcfiled);
        \view::set('kwfiled', $kwfiled);
        \view::set('modArr', $modArr);
        \view::set('hasImg', $hasImg);
        \view::set('Params', $Params);
		$html =  \view::fetch();
        $this->successJson(['html'=>$html]);
    }
    /**
     * @method 获取车型详情
     * @author zhengweihua 
     * @copyright 2026-01-10
     */
    public function modelDetail()
    {   
        $req = \mvc::$req;
        $carmodelcn = new carmodelcn();
        $modelInfo = $carmodelcn->getMod3Des($req['mod3_id']);
        \view::set('modelInfo', $modelInfo);
        \view::set('title', '车型详情-'.\mvc::$cfg['siteTitle']);
        \view::set('req', $req);
        \view::set('searchType','vin');
        \View::put();
    }
    
    /**
     * @method 获取小类筛选选项列表
     * @author hongzhang
     * @copyright 2026-01-13
     */
    public function getCateFilterList()
    {   
        $req = \mvc::$req;
        $this->mustLogin();
        $cate = new cate();
        $cateArr = $cate->getCateLists($_SESSION['cnuser']['u_id'],$req);
        $this->successJson($cateArr);
    }

    public function engine()
    {
        $req = \mvc::$req;
        \view::set('req', $req);
        \view::set('searchType', 'engine');
        \view::set('title', '发动机查询-'.\mvc::$cfg['siteTitle']);
        \view::put();
    }

    /**
     * @method 新品推荐
     * @author zhengweihua 
     * @copyright 2026-03-03
     */
    public function recommend()
    {
        $req = \mvc::$req;
        $cate = new cate();
        $data = $cate->getRecommendList($req);
       
        \view::set('req', $req);
        \view::set('dataArr',$data['list']);
		\view::set('pageTpl',$this->showPages($data['recordCount'],$data['pagesize'],1));
        \view::set('data',$data);
        \view::set('title', '新品推荐-'.\mvc::$cfg['siteTitle']);
        \view::put();
    }

    public function select()
    {   
        $req = \mvc::$req;
        $cate = new cate();
        $subcategoriesList = $cate->getCategoriesList();
        \view::set('style',$req['style']);
        \view::set('dataArr', $subcategoriesList);
        \view::set('req', $req);
        \view::put();
    }

    /**
     * @method 导出新品推荐数据
     * @author zhengweihua 
     * @copyright 2026-03-11
     */
    public function exportRecommend()
    {   
        $this->mustLogin();
        $req = \mvc::$req;
        $cate = new cate();
        $data = $cate->exportRecommendExcel($req);
        $this->exportExcel($data['list'], '新品推荐数据');
    }
}