<?php
namespace homepro\action;
use \model\homepro;
use model\homepro\projectItem;
use model\pro\cate;


class indexAction extends baseAction
{
    public function index()
    {
		$req = \mvc::$req;
		//先默认指定保时捷项目
		if(!$req['pr_id']) $req['pr_id'] = 1;
        \view::set('req',$req);
        //获取保时捷的国际车型数据
        $projectItem = new projectItem();
        $makeList = $projectItem->getMakeList(1);
        \view::set('makeList',$makeList);
        //获取列表
        $data = $projectItem->getList($req);
        \view::set('dataArr',$data['list']);
		\view::set('pageTpl',$this->showPages($data['recordCount'],$data['pagesize'],1));

        $statusArr = ['-1'=>'无法供应',0=>'待处理', 1=>'开发中',2=>'可供应',3=>'商品'];
        \view::set('statusArr',$statusArr);
        \view::set('active','projectitem');
		\view::set('title', \mvc::$cfg['siteTitle']);
		\view::put();
	}

    /**
     * @method 获取车系
     * @author zhengweihua 
     * @copyright 2025-08-07
     */
    public function getSeriesList()
    {
        $req = \mvc::$req;
        $mkid = isset($req['mkid']) ? intval($req['mkid']) : 0;
        if(!$mkid) {
            exitJson(['code' => -1, 'msg' => '品牌不能为空']);
        }
        $projectItem = new projectItem();
        $seriesList = $projectItem->getSeriesList($mkid);
        $this->successJson($seriesList);
    }


    public function checkout()
    {
       $this->mustLogin();
        \view::set('user', $_SESSION['user']);
        \view::set('title', \mvc::$cfg['siteTitle']);
        \view::put();
    }

    public function select()
    {   
        $req = \mvc::$req;
		$style = !empty($req['style']) && $req['style'] == 'anychk'? 'anychk': '';

		$projectItem = new projectItem();
		$cateIds = $projectItem->getProjectCate();

		if($cateIds)
		{
			$cate = new cate();
			$allPart = $cate->lrtree->getChilds(0);
			$allPart = array_column($allPart, null, 'id');
			//指定产品线
			$rulecate = null;

			// 处理指定的小类ID（多个）
			if(!empty($cateIds)) {
				$rulecate = $cateIds;
				// 获取这些分类的所有父级分类
				foreach($cateIds as $cateId) {
					if(isset($allPart[$cateId])) {
						// 获取当前分类的所有父级
						$parents = $cate->lrtree->getParents($cateId, false); // 不包含自己
						foreach($parents as $parent) {
							if(!in_array($parent['id'], $rulecate)) {
								$rulecate[] = $parent['id'];
							}
						}
					}
				}
			}
			else if(!empty($req['pcateid']))
			{
				$rulecate = [];
				foreach(explode(',', $req['pcateid']) as $id)
				{
					$rows = $cate->lrtree->getChilds($id);
					$rulecate = array_merge($rulecate, array_column($rows, 'id'));
				}
				if($rulecate)
				{
					foreach($rulecate as $cid)
					{
						$pcatid = $allPart[$cid]['parent_id'];
						$rulecate[] = $pcatid;
						if(!empty($allPart[$pcatid]))
						$rulecate[] = $allPart[$pcatid]['parent_id'];
					}
				}
			}
		
			if(isset($req['cfg']))
			{
				$cfg = json_decode(base64_decode($req['cfg']),true);
				if($req['cfg']){
					$hascate = $cate->getCatesByCfg($cfg);	

					if($rulecate !== null)
						$rulecate = array_intersect($rulecate, $hascate);
					else
						$rulecate = $hascate;
				}
			}

			if($rulecate !== null)
			{
				foreach($allPart as $k=>$v)
				{
					if(!in_array($v['id'], $rulecate))
						unset($allPart[$k]);
				}
				\view::set('ispwcode', 1);
			}
			
			//拼装零件树
			$partTree = [];
			foreach($allPart as $k=>$v)
			{
				if(empty($partTree[$v['parent_id']]))
					$partTree[$v['parent_id']] = [$v['id']];
				else
					$partTree[$v['parent_id']][] = $v['id'];
			}
		}
        
		\view::set('req', $req);
		\view::set('allPart', $allPart);
		\view::set('style', $style);
		\view::set('partTree', $partTree);
		\view::put();
    }

	public function item()
	{
		$this->mustLogin();
        $req = \mvc::$req; 
        if(!$req['id']&& !$req['type']) exitJson(0, '参数错误');
		$req['pr_id'] = isset($req['pr_id']) ? intval($req['pr_id']) : 1;
        $projectItem = new projectItem();
        if($req['type']=='oe')
        {
            $dataArr = $projectItem->getOeInfo($req['id'],$req);
        }
        else
        {   
            $dataArr = $projectItem->getProInfo($req['id'],$req);
        }

        \view::set('dataArr', $dataArr);
        \view::set('req', $req);
        \view::set('title', '产品详情-'.\mvc::$cfg['siteTitle']);
		\view::put();
	}
    
}