<?php
/**
  * @method 宜配网非产品库表基本操作
  * @author 卢
  * @copyright 2017.6.8
  */
class YpwAddr extends YpwBase
{
	 
	  /**
	  * @method 获取省市区名称
	  * @param  $ids 省市镇区id yp_province_city逗号分隔
	  * @author 卢
	  * @copyright 2017.6.10
	  * @return  array(3){[0]=>'广东省',[1]=>'广州市',[3]=>'白云区'}
	  */
	 function getAddrByIds($ids)
	 {
		 $IdArr = [];
		 foreach(explode(',', $ids) as $V)
		 {
			$V = (int) $V;
			if($V > 0)
			{
				$IdArr[$V] = '';
			}
		 }
	 	if(count( $IdArr) > 0)
	 	{
		 	$data=array();
		 	$result=$this-> get('yp_province_city',['pc_id','pc_name'], sprintf(' and pc_id in(%s)', implode(',', array_keys($IdArr))));
		 	foreach($result['data'] as $k => $v)
		 	{
		 		$IdArr[$v['pc_id']]=$v['pc_name'];
		 	}
	 	}
		return LibFc::ReturnData(true, $IdArr);
	 }
	 
	 /**
	  * @method 获取地址以及2级子地址
	  * @author 卢
	  * @copyright 2017.6.15
	  * @return  
	  */
	 function getAddrTree($pid=0)
	 {
	 	$result=array();
	 	$data=$this->Get('yp_province_city',['pc_id','pc_name','pc_pid'],' and pc_pid='.$pid);
	 	$result=$data['data'];
	 	$idArr=array_column($result, 'pc_id');
	 	if(count($idArr))
	 	{
	 		$res=$this->get('yp_province_city',['pc_id','pc_name','pc_pid'],sprintf(' and pc_pid in(%s)',implode(',',$idArr)));
	 		$childArr=[];
	 		foreach ($res['data'] as $k => $v) 
	 		{

	 			$childArr[$v['pc_pid']][]=$v;
	 		}
	 		
	 		foreach ($result as $k => $v) 
	 		{
	 			$result[$k]['child']=$childArr[$v['pc_id']];
	 		}
	 	}
	 	return LibFc::ReturnData(true,$result);
	 }

	 /**
	  * @method 根据市级获取省级
	  * @author 廖
	  * @copyright 2019/2/21 
	  * @return  
	  */
	function getAddr($ids)
	{
		if (is_array($ids))
		{
			$ids = array_filter(array_unique($ids),'LibFc::Int');
		}
		if (!empty($ids))
		{
			$where = sprintf('and pc_id in (%s)',implode(',', $ids));
			$data = $this->Get('yp_province_city',['pc_id','pc_name','pc_pid'], $where);
			$data = array_column($data['data'], null,'pc_id');
			$pidArr = array_unique(array_column($data, 'pc_pid'));

			$pdata = $this->Get('yp_province_city',['pc_id','pc_name','pc_pid'], sprintf('and pc_id in (%s)',implode(',', $pidArr)));
			$pdata = array_column($pdata['data'], 'pc_name','pc_id');

			foreach ($data as $key => $value) 
			{
				$data[$key]['pc_pname'] = $pdata[$value['pc_pid']];
			}
			return LibFc::ReturnData(true,$data);
		}
	}
}