<?php
/**
  * @method 其他产品管理
  * @author soul
  * @copyright 2016/3/31
  */
class OthProduct
{
	/**
	  * @method 获取配件基本信息
	  * @param  $proIdArr array [11,2222....]
	  * @param  $typeArr ['para', 'picAll', 'model'...]
	  * @author soul
	  * @copyright 2017/7/7
	  * @return 
			成功 ["status"=>true, "data"=> [11=>[], ...]] 
			失败 ["status"=>false, "data"=> 错误信息] 
	  */
	public function getOthSiteAnyProductInfo($siteType, $proIdArr, $typeArr = [])
	{
		$siteName = substr($siteType, 3);
		$proArr = [];
		foreach($proIdArr as $k=>$v)
		{
			$proIdArr[$k] = (int) $v;
		}
		$proIdArr = array_unique($proIdArr);
		if(!empty($proIdArr) && !empty($siteName))
		{
			$BaseDb = new BaseDb(mvc::$cfg['DB']['site'][$siteName]);
			switch($siteName)
			{
				case 'FMSI':
					$table = 'fac_product JOIN fac_search ON sea_pro_id=pro_id AND sea_type = 1 LEFT JOIN fac_product_pic ON pic_pro_id = pro_id';
					$filed = ['pro_id, pro_name,sea_facturer, sea_number, pic_path,pic_name'];
					$res = $BaseDb->get($table, $filed, sprintf(" and pro_id in (%s) GROUP BY pro_id", implode(',', $proIdArr) ));
					foreach($res['data'] as $v)
					{
						$pro = [
							'pro_id'=>$v['pro_id'],
							'pro_url'=>'',
							'pro_name'=>$v['pro_name'],
							'pic'=>[],
							'num'=>[['factory'=>$v['sea_facturer'], 'display'=>$v['sea_number']]],
						];
						if(in_array('para', $typeArr))	
							$pro['para'] = [];

						if(!empty($v['pic_name']))
							$pro['pic'] = [mvc::$cfg['urls']['othSitePic'].$v['pic_path'].'/'.$v['pic_name']];
						$proArr[$v['pro_id']] = $pro;
					}

					if(in_array('picAll', $typeArr))
					{
						foreach($proArr as $k=>$v)
						{
							$proArr[$k]['pic'] = [];
						}
						$res = $BaseDb->get('fac_product_pic', ['pic_pro_id,pic_path,pic_name'], sprintf(" and pic_pro_id in(%s) order by pic_pro_id, pic_order", implode(',', $proIdArr)));
						foreach($res['data'] as $v)
						{
							$proArr[$v['pic_pro_id']]['pic'][] = mvc::$cfg['urls']['othSitePic'].$v['pic_path'].'/'.$v['pic_name'];
						}
					}
				break;
			}
		}
		return LibFc::ReturnData(true, $proArr);
	}


	/**
	  * @method 获取配件的号码
	  * @param  $proId int 配件ID
	  * @param  $type string  oe|ref|all
	  * @param  $page int 第几页
	  * @param  $per int 每页数量
	  * @author soul
	  * @copyright 2017/6/5
	  * @return  ["status"=>true, "data"=>[{"factory":"FERODO","display":"2114023"},...] ]
	  */
	public function getOthSiteItemNumber($siteType, $proId, $type, $page, $per)
	{
		$siteName = substr($siteType, 3);
		$BaseDb = new BaseDb(mvc::$cfg['DB']['site'][$siteName]);

		$proId = (int) $proId;
		$arr = [];
		$per = empty($per) || $per < 1 ? 20: (int) $per;
		$page = empty($page) || $page < 1 ? 1: (int) $page;
		$filed = ['case when sea_type = 2 then 1 else 0 end as oe, sea_facturer as factory, sea_number as display'];
		$table = 'fac_search';
		switch($type)
		{
			case 'main':
				$res = $BaseDb->get($table, $filed, sprintf(" and sea_type=1 and sea_pro_id = %d ORDER BY sea_facturer, sea_format limit %d, %d", $proId, ($page-1)*$per, $per));
				$arr = $res['data'];
			break;
			case 'oe':
				$res = $BaseDb->get($table, $filed, sprintf(" and sea_type=2 and sea_pro_id = %d ORDER BY sea_facturer, sea_format limit %d, %d", $proId, ($page-1)*$per, $per));
				$arr = $res['data'];
			break;
			case 'ref':
				$res = $BaseDb->get($table, $filed, sprintf(" and n.fid !=770 and sea_pro_id = %d ORDER BY sea_facturer, sea_format limit %d, %d", $proId, ($page-1)*$per, $per));
				$arr = $res['data'];
			break;
			default:
				$res = $BaseDb->get($table, $filed, sprintf(" and sea_pro_id = %d ORDER BY sea_facturer, sea_format limit %d, %d", $proId, ($page-1)*$per, $per));
				$arr = $res['data'];
			break;
		}
		return LibFc::ReturnData(true, $arr);
	}


	/**
	  * @method 获取智配配件基本信息
	  * @param  $proIdArr array [11,2222....]
	  * @param  $typeArr ['para', 'picAll', 'model'...]
	  * @author soul
	  * @copyright 2017/7/7
	  * @return 
			成功 ["status"=>true, "data"=> [11=>[], ...]] 
			失败 ["status"=>false, "data"=> 错误信息] 
	  */
	public function getZhipeiAnyProductInfo($proIdArr, $typeArr = [])
	{
		$proArr = [];
		foreach($proIdArr as $k=>$v)
		{
			$proIdArr[$k] = (int) $v;
		}
		$proIdArr = array_unique($proIdArr);
		if(!empty($proIdArr))
		{
			$BaseDb = new BaseDb(mvc::$cfg['DB']['ZHIPEI']);
			$where = sprintf("and OemId in (%s)", implode(',', $proIdArr));
			$res = $BaseDb->get('2_value', ['OemId as pro_id, OemNO as display, groupName as pro_name, remark'], $where);
			foreach($res['data'] as $v)
			{
				$pro = [
					'type'=>'zhipei',
					'pro_id'=>$v['pro_id'],
					'pro_url'=>'',
					'pro_name'=>$v['pro_name'],
					'pic'=>[],
					'para'=>[],
					'num'=>[['factory'=>'OE', 'display'=>$v['display']]],
				];
				$proArr[$v['pro_id']] = $pro;
			}

			if($proArr && in_array('para', $typeArr))
			{
				foreach($proArr as $k=>$v)
				{
					$proArr[$k]['para'] = [];
				}
				$res = $BaseDb->get('2_param', ['OemId as pro_id, label, value'], sprintf(" and OemId in (%s) group by OemId, label", implode(',', array_keys($proArr))));
				foreach($res['data'] as $v)
				{
					$proArr[$v['pro_id']]['para'][] = ['name'=>$v['label'], 'val'=>$v['value'], 'unit'=>''];
				}
			}
		}
		return LibFc::ReturnData(true, $proArr);
	}
}