<?php

/**
 * 号码操作类
 */
class EtkProduct extends EtkBasic
{
   /**
	  * @method 获取配件基本信息
	  * @param  $proIdArr array [11,2222....]
	  * @param  $typeArr ['picAll', 'model'...]
	  * @author soul
	  * @copyright 2017/7/7
	  * @return 
			成功 ["status"=>true, "data"=> [11=>[], ...]] 
			失败 ["status"=>false, "data"=> 错误信息] 
	  */
	public function getAnyProductInfo($proIdArr, $typeArr = [])
	{
		$proArr = [];
		foreach($proIdArr as $k=>$v)
		{
			$proIdArr[$k] = (int) $v;
		}
		$proIdArr = array_unique($proIdArr);
		if(!empty($proIdArr))
		{
			$filed = ['pro_id, pro_etk_id, pro_name, pro_realoem, pro_yp_name'];
			$res = $this->Get('data_product', $filed, sprintf(" and pro_id in (%s)", implode(',', $proIdArr)));
			$etkProArr = [];
			foreach($res['data'] as $v)
			{
				$pro = [
					'pro_id'=>$v['pro_id'],
					'pro_name'=>empty($v['pro_yp_name'])? $v['pro_name']: $v['pro_yp_name'],
					'para'=>[],
					'pic'=>[],
					'weizhi'=>'',
					'num'=>[['factory'=>'OE', 'display'=>$v['pro_realoem']]]
				];
				$etkProArr[$v['pro_etk_id']][] = $v['pro_id'];
				$proArr[$v['pro_id']] = $pro;
			}
			$proIdArr = array_keys($proArr);

            $table = 'data_picture join data_product_picture on pic_img_id = img_id';
            $res = $this->Get($table, ['pic_pro_id', 'img_path', 'img_name'], sprintf(" and pic_pro_id in (%s) order by pic_order", implode(',', $proIdArr)));
            foreach($res['data'] as $v)
			{
                $proArr[$v['pic_pro_id']]['pic'][] = sprintf('%s%s/%s', mvc::$cfg['urls']['etkPic'], $v['img_path'], $v['img_name']);
            }
			
			foreach($etkProArr as $etkId=>$tpro)
			{
				$where = sprintf('and ppm_pro_id in (%s) order by ppm_ppg_id desc', implode(',', $tpro));
				$res = $this->Get('data_product_partgrp_'.$v['pro_etk_id'].' join data_picture_prtgroup ON ppg_id = ppm_ppg_id', ['ppm_pro_id', 'ppg_path', 'ppg_name', 'ppm_pos_id'], $where);
				foreach($res['data'] as $v)
				{
					if($proArr[$v['ppm_pro_id']]['weizhi'] == '' && $v['ppm_pos_id'] != '')
						$proArr[$v['ppm_pro_id']]['weizhi'] = $v['ppm_pos_id'];

					$proArr[$v['ppm_pro_id']]['pic'][] = sprintf('%s%s/%s', mvc::$cfg['urls']['etkPic'], $v['ppg_path'], $v['ppg_name']);
				}
			}

			//找商城的图片、宜配网的图片


			foreach($proArr as $k=>$v)
			{
				$proArr[$k]['pic'] = array_unique($v['pic']);
			}

			if(in_array('model', $typeArr))
			{
				foreach($etkProArr as $etkId=>$tpro)
				{
					$where = sprintf('and ppm_pro_id in (%s)', implode(',', $tpro));
					$res = $this->Get('data_product_partgrp_'.$etkId.' join data_vins ON ppm_vin_id = vin_id', ['ppm_pro_id', 'vin_name'], $where);
					$vinArr = array_unique(array_column($res['data'], 'vin_name'));
					if(empty($vinArr)) continue;
					
					$tproArr = [];
					foreach($res['data'] as $v)
					{
						$tproArr[$v['vin_name']][] = $v['ppm_pro_id'];
					}
					$YpcBase = new YpcBase();
					$res = $YpcBase->get('yp_model3_etk_code', ['mec_m3_id', 'mec_code'], sprintf(" and mec_code in ('%s')", implode("','", $vinArr)));
					$m3IdArr = array_unique(array_column($res['data'], 'mec_m3_id'));
					if(!empty($m3IdArr))
					{
						$m3ProArr = [];
						foreach($res['data'] as $v)
						{
							$m3ProArr[$v['mec_m3_id']] = empty($m3ProArr[$v['mec_m3_id']])? $tproArr[$v['mec_code']]: array_merge($m3ProArr[$v['mec_m3_id']], $tproArr[$v['mec_code']]);
						}

						$Ypc2Model = new Ypc2Model();
						$where = sprintf(" and mod3_id in (%s) order by brand_seq, brand_initial, make_seq, make_initial, mod1_name, mod2_name, mod3_name", implode(',', $m3IdArr));
						$res = $Ypc2Model->getModel(3, ['mod3_id', 'brand_id', 'brand_name', 'make_name', 'mod2_name', 'mod3_name', 'mod3_start_year', 'mod3_end_year'], $where);
						foreach($res['data'] as $v)
						{
							foreach($m3ProArr[$v['mod3_id']] as $proId)
							{
								$proArr[$proId]['model'][] = $v;
							}
						}
					}
				}
			}
		}
		return LibFc::ReturnData(true, $proArr);
	}
}