<?php
/**
*原厂数据
*/
class etkAction extends baseAction
{
	/**
	  * @method 获取ETK的车型零件
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  mod3Id 车型ID
	  * @param  grp1Id 上级ID 默认0：总组
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data": [],"code":""}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function getModelPart()
	{
		$mod3Id = (int) $_GET['mod3Id'];
		// grp1Id 可能为 01 
		$grp1Id = isset($_GET['grp1Id']) && $_GET['grp1Id'] != '' ? $_GET['grp1Id']: '';
		if($mod3Id > 0)
		{
			$arr = [];
			$YpcModel = new YpcModel();
			$res = $YpcModel->getModel(3, ['b_etk_id'], sprintf(" and m3_id=%d and b_etk_id > 0", $mod3Id), true);
			if(empty($res['data'])) LibFc::ReturnJson(true, $arr);
			$etkId = $res['data']['b_etk_id'];
			
			$YpcBase = new YpcBase();
			$res = $YpcBase->get('yp_model3_etk_code', ['distinct mec_code as mec_code'], sprintf(" and mec_m3_id=%d", $mod3Id));
			$etkCodeArr = array_column($res['data'], 'mec_code');
			//宝马特殊处理取vin 4~7位 2020/3/31
			if($etkId == 2)
			{
				$EpcItem = new EpcItem($etkId);
				$res = $EpcItem->get('data_code', ['uid_id'], sprintf(" and uid_text in('%s') limit 1", implode("','", $etkCodeArr)));
				if(empty($res['data']))
				{
					foreach($etkCodeArr as $k=>$v)
					{
						$etkCodeArr[$k] = strlen($v) == 17? substr($v, 3, 4): $v;
					}
				}
			}

			if($etkId == 8){
				$res = $YpcBase->get('yp_model3_modcode', ['distinct mem_code as mem_code'], sprintf(" and mem_m3_id=%d", $mod3Id));
				$etkCodeArr = array_merge($etkCodeArr, array_column($res['data'], 'mem_code'));
			}
			if(!empty(mvc::$cfg['DB']['EPC'][$etkId]))
			{
				$EpcItem = new EpcItem($etkId);
				if($grp1Id == ''){
					$res = $EpcItem->getGroup($etkCodeArr, $mod3Id);
				}else{
					$res = $EpcItem->getGroupPart($grp1Id, $etkCodeArr);
				}
				LibFc::ReturnJson(true, $res['data']);
			}
			
			$where = sprintf(" and vin_name in('%s')", implode("','", $etkCodeArr));
			$EtkBasic = new EtkBasic();
			$grp1Id = (int) $grp1Id;
			if($grp1Id < 1)
			{
				$table = 'data_product_partgrp_'.$etkId.'
				  JOIN data_vins ON ppm_vin_id = vin_id
				  JOIN data_partgrp ON ppm_pmg_id = pmg_id
				  JOIN data_partgrp1 ON pmg_grp1_id = grp1_id
				  LEFT JOIN data_picture_prtgroup ON ppm_ppg_id = ppg_id';
				$where .= ' GROUP BY grp1_id order by pmg_parent';
				$res = $EtkBasic->Get($table, ['grp1_id, grp1_name, pmg_parent, ppg_path, ppg_name'], $where);
				foreach($res['data'] as $v)
				{
					$v['grp_img'] = empty($v['ppg_name']) ? '': sprintf('%s%s/%s', mvc::$cfg['urls']['etkPic'], $v['ppg_path'], $v['ppg_name']);
					unset($v['ppg_path']);
					unset($v['ppg_name']);
					$arr[] = $v;
				}
			}
			else
			{
				$table = 'data_product_partgrp_'.$etkId.'
				  JOIN data_vins ON ppm_vin_id = vin_id
				  JOIN data_partgrp ON ppm_pmg_id = pmg_id
				  JOIN data_partgrp2 ON pmg_grp2_id = grp2_id
				  LEFT JOIN data_picture_prtgroup ON ppm_ppg_id = ppg_id';
				$where .= ' and pmg_grp1_id ='.$grp1Id.' GROUP BY grp2_id ORDER BY pmg_second';
				$res = $EtkBasic->Get($table, ['pmg_second, pmg_diagram, pmg_group, grp2_id, grp2_name, pmg_parent, pmg_childern, ppg_path, ppg_name'], $where);
				foreach($res['data'] as $v)
				{
					$key = 's'.$v['pmg_second'];
					$arr[$key]['part'] = ['pmg_second'=>$v['pmg_second'], 'pmg_diagram'=>empty($v['pmg_diagram'])? $v['pmg_group']: $v['pmg_diagram']];  
					unset($v['pmg_second']);
					unset($v['pmg_diagram']);
					unset($v['pmg_group']);
					$v['grp_img'] = empty($v['ppg_name']) ? '': sprintf('%s%s/%s', mvc::$cfg['urls']['etkPic'], $v['ppg_path'], $v['ppg_name']);
					unset($v['ppg_path']);
					unset($v['ppg_name']);
					$arr[$key]['child'][] = $v;
				}
			}
			LibFc::ReturnJson(true, $arr);
		}
		LibFc::ReturnJson(false, '请提供正确的车型ID');
	}


	/**
	  * @method 搜索零件组列表
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  etk_id [必填]
	  * @param  word [必填] 关键字
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data": [],"code":""}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function searchEtkPart()
	{
		$arr = [];
		$etk_id = (int) $_GET['etk_id'];
		if(!empty(mvc::$cfg['DB']['EPC'][$etk_id]))
		{
			$EpcItem = new EpcItem($etk_id);
			$res = $EpcItem->searchPart($_GET['word']);
			$arr = $res['data'];
		}
		LibFc::ReturnJson(true, $arr);
	}

	/**
	  * @method 获取ETK车型零件的配件信息
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  mod3Id 车型ID
	  * @param  grp2Id grp2Id 子零件ID
	  * @param  vindate [选填] 车架号日期  2015-05-12  2015-05
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data": [],"code":""}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function getModelPartItem()
	{
		$mod3Id = (int) $_GET['mod3Id'];
		$grp2Id = (int) $_GET['grp2Id'];
		$vindate = !empty($_GET['vindate'])? $_GET['vindate']: '';
		if($mod3Id > 0 && $grp2Id > 0)
		{
			$arr = ['part'=>[], 'item'=>[], 'epc'=>false];
			$YpcModel = new YpcModel();
			$res = $YpcModel->getModel(3, ['b_etk_id'], sprintf(" and m3_id=%d and b_etk_id > 0", $mod3Id), true);
			if(empty($res['data'])) LibFc::ReturnJson(true, $arr);
			$etkId = $res['data']['b_etk_id'];
			if(!empty(mvc::$cfg['DB']['EPC'][$etkId]))
			{
				$EpcItem = new EpcItem($etkId);
				$res = $EpcItem->getPartItem($grp2Id, $vindate);
				$arr = $res['data'];
				$arr['epc'] = true;
			}
			LibFc::ReturnJson(true, $arr);
		}
		LibFc::ReturnJson(false, '请提供正确的车型ID、零件ID');
	}



	/**
	  * @method 通过号码搜索
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  word OE号码
	  * @param  brandId  宜配车型库ID
	  * @param  mod3Id  宜配车型库ID
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data": [],"code":""}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function searchByWord()
	{
		$per = 20;
		$page = !empty($_GET['page'])? (int) $_GET['page'] : 1;
		$brandId = (int) $_GET['brandId'];
		$formatNum = LibFc::FormatNum($_GET['word']);
		$arr = [];
		if(strlen($formatNum) > 2 && $brandId > 0)
		{
			$YpcBase = new YpcBase();
			$res = $YpcBase->get('yp_brand', ['b_etk_id'], sprintf(" and b_id=%d", $brandId), true);
			if(empty($res['data'])) LibFc::ReturnJson(true, $arr);
			$etkId = $res['data']['b_etk_id'];
			$EtkBasic = new EtkBasic();
			$formatNumArr = LibFc::SearchNum($formatNum);
			$tw = [];
			foreach($formatNumArr as $t)
			{
				$tw[] = sprintf(" src_format like '%s%%'", $t);
				$tw[] = sprintf(" src_reformat like '%s%%'", strrev($t));
			}
			$where = sprintf(" and (%s) and FIND_IN_SET(%d, vin_from_brand)", implode(" or ", $tw), $brandId);
			if($_GET['mod3Id']) $where .= sprintf(" and FIND_IN_SET(%d, vin_from_model)", $_GET['mod3Id']);
			$where .= sprintf(" group by pro_id order by src_format limit %d, %d", ($page-1)*$per, $per);
			$table = 'data_product_search 
			join data_product on src_pro_id=pro_id 
			JOIN data_product_vins ON ppv_pro_id = pro_id AND ppv_etk_id = src_etk_id
			JOIN data_vins ON vin_id = ppv_vin_id AND vin_etk_id = ppv_etk_id';
			$res = $EtkBasic->Get($table, ['pro_id', 'pro_name', 'pro_realoem', 'src_etk_id'], $where);
			if(empty($res['data'])) LibFc::ReturnJson(true, $arr);
			$arr = array_column($res['data'], null, 'pro_id');
			foreach($arr as $k=>$v)
			{
				if(empty(mvc::$cfg['DB']['EPC'][$v['src_etk_id']])) continue;
				$EpcItem = new EpcItem($v['src_etk_id']);
				$er = $EpcItem->getSearchNumber($v['pro_realoem']);
				if(!empty($er['data'][0]))
				{
					$v['epc'] = true;
					$v = array_merge($v, $er['data'][0]);
				}
				$arr[$k] = $v;
			}

			//产品品牌
			$where = sprintf(" and ppv_pro_id IN (%s) GROUP BY ppv_pro_id, vin_name", implode(',', array_keys($arr)));
			$tres = $EtkBasic->Get('data_product_vins JOIN data_vins ON ppv_vin_id=vin_id', ['ppv_pro_id', 'vin_name'], $where);
			if(!empty($res['data']))
			{
				foreach($tres['data'] as $v)
				{
					$arr[$v['ppv_pro_id']]['mec_code'][] = $v['vin_name'];
				}

				$table  = 'yp_model3_etk_code
					JOIN yp_model3 ON mec_m3_id = m3_id
					JOIN yp_model2 ON m3_m2_id = m2_id
					JOIN yp_model1 ON m2_m1_id = m1_id
					JOIN yp_brand ON m1_b_id = b_id';

				$table2  = 'yp_model3_modcode
					JOIN yp_model3 ON mem_m3_id = m3_id
					JOIN yp_model2 ON m3_m2_id = m2_id
					JOIN yp_model1 ON m2_m1_id = m1_id
					JOIN yp_brand ON m1_b_id = b_id';
				$YpcBase = new YpcBase();
				foreach($arr as $k=>$v)
				{
					if(!empty($v['mec_code']))
					{
						$res = $YpcBase->get($table, ['b_id, b_name, b_code, m3_id as mod3_id'], sprintf(" and mec_code in ('%s') order by b_etk_id desc limit 1", implode("','", $v['mec_code'])), true);
						if(empty($res['data']))
						{
							$res = $YpcBase->get($table2, ['b_id, b_name, b_code, m3_id as mod3_id'], sprintf(" and mem_code in ('%s') order by b_etk_id desc limit 1", implode("','", $v['mec_code'])), true);
						}
						$arr[$k] = array_merge($arr[$k], $res['data']);
						unset($arr[$k]['mec_code']);
					}
				}
			}
		}
		LibFc::ReturnJson(true, $arr);
	}



	/**
	  * @method 获取ETK配件信息
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  etkId ETK ID  [etkId、mod3Id二选一]
	  * @param  mod3Id 车型ID
	  * @param  grp2Id 子零件ID
	  * @param  proId  配件ID
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data": [],"code":""}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function getEpcItem()
	{
		$etkId = (int) $_GET['etkId'];
		$mod3Id = (int) $_GET['mod3Id'];
		$grp2Id = (int) $_GET['grp2Id'];
		$proId = (int) $_GET['proId'];
		$arr = [];
		if(($mod3Id > 0 || $etkId > 0) && $grp2Id > 0 && $proId > 0)
		{
			
			if($etkId < 1)
			{
				$YpcModel = new YpcModel();
				$res = $YpcModel->getModel(3, ['b_etk_id'], sprintf(" and m3_id=%d and b_etk_id > 0", $mod3Id), true);
				if(empty($res['data'])) LibFc::ReturnJson(true, $arr);
				$etkId = $res['data']['b_etk_id'];
			}
			if(!empty(mvc::$cfg['DB']['EPC'][$etkId]))
			{
				$EpcItem = new EpcItem($etkId);
				$res = $EpcItem->getItem($proId, $grp2Id);
				$proArr = $res['data'];

				$B2cProduct = new B2cProduct();
				$display = $etkId == 7? ltrim($proArr['display'], 'A'): $proArr['display'];
				$res = $B2cProduct->getItemByNumber($display);
				$proArr['pjd'] = array_values($res['data']);
				LibFc::ReturnJson(true, $proArr);
			}
		}
		LibFc::ReturnJson(true, $arr);
	}


	/**
	  * @method 获取查配件的配件信息
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  mod3Id 车型ID
	  * @author soul
	  * @copyright 2017/4/13
	  * @return 
	  {"status":true,"data":[{"base":{"part_id":"163","part_name":"刹车盘前"},"items":[{"factory":"OE","display":"9053332","para":[{"name":"用量","val":"2"},{"name":"说明","val":"256X24MM"}]}]},{"base":{"part_id":"164","part_name":"刹车盘\/毂后"},"items":[{"factory":"OE","display":"96549630","para":[{"name":"用量","val":"2"},{"name":"说明","val":"258X10.5MM"}]}]},{"base":{"part_id":"166","part_name":"刹车片前"},"items":[{"factory":"OE","display":"9007094","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"167","part_name":"刹车片\/鼓后"},"items":[{"factory":"OE","display":"96800089","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"42","part_name":"空气滤清器"},"items":[{"factory":"OE","display":"93730777","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"63","part_name":"机油滤清器"},"items":[{"factory":"OE","display":"92099013","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"354","part_name":"空调滤清器"},"items":[{"factory":"OE","display":"96554378","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"90","part_name":"汽油滤清器"},"items":[{"factory":"OE","display":"9075810","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"378","part_name":"柴油滤清器"},"items":[{"factory":"OE","display":"9075810","para":[{"name":"用量","val":"1"}]}]},{"base":{"part_id":"111","part_name":"火花塞"},"items":[{"factory":"OE","display":"9015257","para":[{"name":"用量","val":"4"}]}]},{"base":{"part_id":"282","part_name":"雨刮片"},"items":[{"factory":"OE","display":"26200942","para":[{"name":"用量","val":"1"},{"name":"说明","val":"左边"}]},{"factory":"OE","display":"9013301","para":[{"name":"用量","val":"1"},{"name":"说明","val":"右边"}]}]}],"code":0}
	  {"status":false,"data":'失败原因',"code":'error'}
	  */
	public function getCPJPartItem()
	{
		$EpcItem = new EpcItem($etkId);
		$res = $EpcItem->getCPJPartItem($_GET['mod3Id']);
		LibFc::EchoJson($res);
	}



	/**
	  * @method ETK标准分类
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  etkId [必填]
	  * @author soul
	  * @copyright 2019/6/12
	  * @return 
		{"status":true,"data":[{"ep_partid":"31","ep_part_name":"保养","children":[{"ep_partid":"34","ep_part_name":"前刹车片","ep_keyword":"前片,前刹车皮,刹车片,前刹车片"},..]},{"ep_partid":"45","ep_part_name":"制动","children":[{"ep_partid":"34","ep_part_name":"前刹车片","ep_keyword":"前片,前刹车皮,刹车片,前刹车片"},...]}...],"code":0}
	  */
	public function etkYpPart()
	{
		$params = mvc::$URL_PARAMS;
		$arr = [];
		$etkId = (int) $params['etkId'];
		$YpcBase = new YpcBase();
		$res = $YpcBase->get('etk_part_toname', ['distinct ept_ep_partid'], sprintf(" and ept_etk_id=%d", $etkId));
		$partIdArr = array_column($res['data'], 'ept_ep_partid');
		$res = $YpcBase->get('etk_part_tonumber', ['distinct epn_ep_partid'], sprintf(" and epn_etk_id=%d", $etkId));
		$partIdArr = array_unique(array_merge($partIdArr, array_column($res['data'], 'epn_ep_partid')));
		
		if(!empty($partIdArr))
		{
			$res = $YpcBase->get('etk_part JOIN etk_part_link ON epl_ep_partid=ep_partid', ['ep_partid, ep_part_name, ep_keyword, epl_pep_partid'], sprintf(" and ep_partid in (%s) ORDER BY epl_seq, epl_path", implode(',', $partIdArr)));
			if(!empty($res['data']))
			{
				foreach($res['data'] as $v)
				{
					$pid = $v['epl_pep_partid'];
					unset($v['epl_pep_partid']);
					$arr[$pid]['children'][] = $v;
				}
				$res = $YpcBase->get('etk_part', ['ep_partid, ep_part_name'], sprintf(" and ep_partid in (%s)", implode(',', array_keys($arr))));
				foreach($res['data'] as $v)
				{
					$arr[$v['ep_partid']] = array_merge($v, $arr[$v['ep_partid']]);
				}
			}
		}
		LibFc::ReturnJson(true, array_values($arr));
	}

	/**
	  * @method 通过关键字或者零件ID 搜索某车型的ETK产品
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  etkId [必填]
	  * @param  mod3Id [必填] 车型ID
	  * @param  ep_partid [ep_partid、word 二选一] etkYpPart 接口提供的分类ID
	  * @param  word [ep_partid、word 二选一] 关键字  
	  * @author soul
	  * @copyright 2019/6/12
	  * @return 
	 {"status":true,"data":{"item":[{"grp1_name":"\u4f20\u52a8\u7cfb\u3001\u5e95\u76d8","grp2_id":"106548","grp2_name":"\u540e\u6865\u534a\u8f74\u548c\u540e\u6865\u8f6e\u6bc2","pro_id":"8286","pro_realoem":"42431-0R020","ppm_pos_name":"42431","pro_name":"\u540e\u5236\u52a8\u76d8"},{"grp1_name":"\u4f20\u52a8\u7cfb\u3001\u5e95\u76d8","grp2_id":"106443","grp2_name":"\u524d\u6865\u8f6e\u6bc2","pro_id":"5980","pro_realoem":"43512-0R030","ppm_pos_name":"43512","pro_name":"\u524d\u5236\u52a8\u76d8"}],"etk_id":8},"code":0}
	  */
	public function searchEtkItem()
	{
		$params = mvc::$URL_PARAMS;
		$arr = [];
		$etkId = (int) $params['etkId'];
		if(!empty(mvc::$cfg['DB']['EPC'][$etkId]))
		{
			$EpcItem = new EpcItem($etkId);
			$res = $EpcItem->searchEtkItem($params['mod3Id'], $params);
			$arr = $res['data'];
		}
		LibFc::ReturnJson(true, $arr);
	}
	
	/**
	  * @method 通过产品ID查询产品基本信息
	  * @http  get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  etk_id [必填]
	  * @param  proids array [必填] 产品ID 多个逗号分隔
	  * @author soul
	  * @copyright 2019/6/12
	  * @return 
	  */
	public function getAnyItemBase()
	{
		$params = mvc::$URL_PARAMS;
		$arr = [];
		$etk_id = (int) $params['etk_id'];
		if(!empty(mvc::$cfg['DB']['EPC'][$etk_id]))
		{
			$EpcItem = new EpcItem($etk_id);
			$res = $EpcItem->getAnyItemBase(explode(',', $params['proids']));
			$arr = $res['data'];
		}
		LibFc::ReturnJson(true, $arr);
	}

	/**
	  * @method 转换查询号码
	  * @http  get
	  * @param  number			   string [必填] 号码 11138616793
	  * @author soul
	  * @copyright 2024/10/9
	  * @return 
	  */
	public function getSearchNum()
	{
		$params = mvc::$URL_PARAMS;
		$EtkNum = new EtkNum();
		$res = $EtkNum->getSearchNum($params['number']);
		LibFc::EchoJson($res);
	}


	/**
	  * @method 获取号码的替换号
	  * @http  get
	  * @param  number			   string [必填] 号码 11138616793 多个英文逗号分隔
	  * @author soul
	  * @copyright 2024/10/9
	  * @return 
	  */
	public function getReplaceNumber()
	{
		$params = mvc::$URL_PARAMS;
		$EtkNum = new EtkNum();
		$res = $EtkNum->getReplaceNumber(explode(',', $params['number']));
		LibFc::EchoJson($res);
	}

	
	/**
	  * @method 清洗的信息（参数从tcd/checkNumberData获取）
	  * @http  get
	  * @param  etk_id			   int [必填] 
	  * @param  pro_id			   int [必填] 
	  * @param  grp2_id			   int [必填]  零件组ID
	  * @param  lnk_id			   int [选填] 
	  * @author soul
	  * @copyright 2024/10/9
	  * @return 
	  */
	public function cleanData()
	{
		$params = mvc::$URL_PARAMS;
		$EpcItem = new EpcItem($params['etk_id']);
		$res = $EpcItem->getItem($params['pro_id'], $params['grp2_id'], $params['lnk_id']);
		LibFc::EchoJson($res);
	}
		
	
	/**
	  * @method 获取号码本身的品牌 优先EPC=>TCD同品牌产品数大于5
	  * @http  get
	  * @param  number			   string [必填] 号码 11138616793
	  * @author soul
	  * @copyright 2024/10/9
	  * @return 
	  */
	public function getNumberBrand()
	{
		$params = mvc::$URL_PARAMS;
		$arr = [];
		$num = LibFc::FormatNum($params['number']);
		if(strlen($num) > 4){
			$EtkNum = new EtkNum();
			$formatNumArr = LibFc::SearchNum($num);
			$res = $EtkNum->get('number_replace_list', ['nrl_brand_name oe_make'], sprintf(" and nrl_format IN ('%s') and nrl_brand_name != '' group by nrl_brand_name", implode("','", $formatNumArr)));
			if(!empty($res['data'])){
				$arr = array_column($res['data'], 'oe_make');
			}else{
				$res = $EtkNum->get('number_replace', ['num_brand_name oe_make'], sprintf(" and num_format IN ('%s') and num_brand_name != '' group by num_brand_name", implode("','", $formatNumArr)));
				$arr = array_column($res['data'], 'oe_make');
			}
			if(empty($arr)){
				$TcdmBase = new TcdmBase();
				$res = $TcdmBase->get('tof_article_number', ['count(DISTINCT arl_art_id) count'], sprintf(" and arl_kind = 3 AND arl_format in ('%s')", implode("','", $formatNumArr)), true);
				if($res['data']['count'] > 50){
					$art_count = $res['data']['count'];
					$min = $art_count;
					if($min > 100){
						$min = 50;
					}else{
						$min = ceil($min * 0.5);
						if($min < 10) $min = 10;
					}
					$res = $TcdmBase->get('tof_article_number JOIN tof_brands ON  arl_bra_id = bra_id', ['bra_brand oe_make'], sprintf(" and arl_kind = 3 AND arl_format IN ('%s') GROUP BY bra_brand HAVING COUNT(DISTINCT arl_art_id) >= %d", implode("','", $formatNumArr), $min));
					$arr = array_column($res['data'], 'oe_make');
				}
			}
		}
		LibFc::ReturnJson(true, $arr);
	}
	
}