<?php
namespace model\pro;
use \model;
use \model\pro\pro;
use \model\check;
use \model\collocation;
use \model\carmodelna;
/**
 * @method 获取产品国际车型master数据
 * @author hongzhang
 * @copyright 2026-05-11
 */
class promodelna extends model
{
    public function getListMaster($params)
	{
		$filters = $params['filters'];
		$page = $params['page'];
		$pagesize = $params['rows'];
		$sidx = empty($params['sidx'])? '': $params['sidx'];
		$sord = empty($params['sord'])? 'asc': $params['sord'];
		$orderby = empty($params['orderby'])? '': $params['orderby'];
		$table = 'pro_model_na(pml)';
		$carmodel = new carmodelna();
		$showFileds = $params['showFileds'];
		if(empty($showFileds)) msgJson('字段尚未配置');
		$refiled = [
			'cat_name'=>'cat.'.cateName(),
			'pcat_name'=>'pcat.'.cateName(),
			/*'year_from'=>'mm_year_from',
			'year_to'=>'mm_year_to',*/
		];
		$fields = $carmodel->getSmallfileds($showFileds);
		$groupFileds = [];
		foreach($showFileds as $fv)
		{
			$groupFileds[] = isset($refiled[$fv])? $refiled[$fv]: $fv;
		}
		$this->set('refiled', $refiled);
		$sidx =  strtr($sidx, $refiled);
		
		$join = [
			"[><]pro(pro)" => ["pml.pml_p_id" => "p_id"],
			"[><]pro_cate(cat)" => ["pro.p_cate" => "id"],
			"[><]pro_cate(pcat)" => ["cat.parent_id" => "id"],
			"[><]na_vehicle_base(nvb)" => ["pml.pml_base_id" => "base_id"],
		];
        $where = $this->filter2medoo($filters,function(&$field,&$op,&$data){
			$field = strtr( $field, $this->get('refiled'));
        });

		$where['p_id'] = $params['p_id'];
		
		// 筛选的车型品牌
		if(!empty($params['tag_brand']))
		{
			$tagBrandArr = explode(',', $params['tag_brand']);
			$makeList = $this->db->select('tag_brand_namake',['tbm_mk_id'], ['tbm_tb_id'=>$tagBrandArr]);
			$where['base_make_id'] = array_column($makeList, 'tbm_mk_id');
		}

		//提取不连续年份使用

		// $check = new \model\check();
		// $ruleWhere = $check->getPowerWhere('pro_model_link', 'F200');
		// $where = array_merge($where, $ruleWhere);
		$where['GROUP'] = $groupFileds;

        $where = $this->listWhere($where,$page,$pagesize,$sidx,$sord,$orderby);
		if($page>0 && $pagesize>0){
			$pages = $this->paging($table,$join, $fields,$where,$page,$pagesize);
			$where["LIMIT"] = [$pages['limit'],$pagesize];
		}
		$modArr = $this->db->select($table,$join,$fields, $where);
        $data = [
			'page'=> $page,
			'total'=> $pages['total'],
			'records' => $pages['records'],
			'rows' => array_values($modArr)
		];
		return $data;
	}
}