<?php 
class itemAction
{
	/**
	 * @method    配件列表
	 * @author 卢
	 * @copyright 2018-05-03
	 */
	public function index()
	{
		$Params = mvc::$URL_PARAMS;
		$B2cOrder = new B2cOrder();
		$B2cBase=new B2cBase();
		LibTpl::Set('footMenu', 'item');
		LibTpl::Set('title','配件列表-跑街的');
		$this->HEAD_CSSJS['plugin'][] = 'zTree';
		$shopId=$_SESSION['_shopid'];
		$Params = mvc::$URL_PARAMS;
		$where=' and pro_shop_id='.$shopId;
		$perPage=20;
		$B2cProduct=new B2cProduct();
		$page=isset($Params['page']) ? $Params['page'] : 1;
		$where.=(isset($Params['proId'])&&LibFc::Int($Params['proId']))?sprintf(' and pro_id=%d',(int)$Params['proId']):'';
		LibTpl::Set('Params', $Params);
		if(!empty($Params['proNum']))
		{
			$where.=sprintf(" and pro_id in(select num_pro_id from bc_number where num_format like '%%%s%%' or num_display like '%%%s%%')",LibFc::Escape($Params['proNum']),LibFc::Escape($Params['proNum']));
		}
		if(!empty($Params['keyword']))
		{
			$keywordArr=LibFc::keyword($Params['keyword']);
			if(count($keywordArr))
			{
				$keywordStr="'".implode("','",$keywordArr)."'";
				$where.=sprintf(" and pro_id in (%s)",sprintf("select prk_pro_id from bc_keyword right join bc_product_keyword on prk_key_id=key_id where key_txt in(%s)",$keywordStr));
			}
			else
			{
				//关键字搜索为空，搜索名称
				$where.=sprintf(" and pro_name like '%%%s%%'",LibFc::Escape($Params['keyword']));
			}
		}
		if(!empty($Params['pic']))
		{
			switch ($Params['pic']) 
			{
				case '1':
					$where.=sprintf(' and pro_id not in(%s)',sprintf("select pro_id from bc_product_pic left join bc_product on pp_pro_id=pro_id where pro_shop_id=%d",$_SESSION['_shopid']));
					break;
			}
		}
		// echo $where;
		// die;
		// $where.=(!empty($shopCate)) ? sprintf(' and prs_sort_id in(%s)',$shopCate) : '';
		$order='pro_add_time desc';
		//当前条件总数
		$totalData=$B2cProduct->get('bc_product',['count(*) count'],$where,true);
		// print_r($totalData);
		//配件列表
		$proData=$B2cProduct->getProductList($page,$perPage,$totalData['data']['count'],$order,$where,' join bc_product_info on pri_pro_id=pro_id');
		$proData['data']=array_column($proData['data'], null,'pro_id');
		// print_r($proData);
		if(count($proData['data']))
		{
			$proId=array();
			$partId=array();
			foreach ($proData['data'] as $k => $v) 
			{
				$partId[]=$v['pro_part_id'];
				array_push($proId, $v['pro_id']);
			}
			//配件图片
			$picData=$B2cProduct->getProductPic($proId);
			// print_r($proId);
			//号码自编号
			$res=$B2cProduct->get('bc_number',['num_display','num_pro_id','num_self','num_ismain','num_factory'],sprintf(' and (num_self=1 or num_ismain=1) and num_pro_id in(%s)',implode(',', $proId)));
			//获取品牌
			$brandArr=$B2cProduct->get('bc_probrand inner join bc_product on pro_prb_id=prb_id',['prb_name','prb_id','pro_id'],sprintf(' and pro_id in(%s)',implode(',',$proId)));
			$brandArr=array_column($brandArr['data'],null, 'pro_id');
			// print_r($brandArr);
			$selNum=[];
			if(!empty($res['data']))
			{
				foreach ($res['data'] as $v) 
				{
					if($v['num_self']){
						$selNum[$v['num_pro_id']]['selfNum']=$v['num_display'];
					}
					if(!empty($brandArr[$v['num_pro_id']]['prb_name']))
					{
						$selNum[$v['num_pro_id']]['selfName']=$brandArr[$v['num_pro_id']]['prb_name'];
					}
					if($v['num_ismain']){
						$selNum[$v['num_pro_id']]['mainNum']=$v['num_display'];
						$selNum[$v['num_pro_id']]['mainFactory']=$v['num_factory'];
					}
				}
			}
			// print_r($selNum);
			LibTpl::Set('numArr',$selNum);
			// $selNum=array_column($res['data'],null, 'num_pro_id');
			// $res=$B2cProduct->get('bc_number',['num_display','num_pro_id'],' and num_ismain=1',sprintf(' and num_pro_id in(%s)',implode(',', $proId)));
			// $selNum=array_column($res['data'],null, 'num_pro_id');
			foreach ($proData['data'] as $k => $v) 
			{
				if(count($picData['data'][$v['pro_id']][0]))
				{
					$proData['data'][$k]=isset($picData['data'][$v['pro_id']][0])?array_merge($picData['data'][$v['pro_id']][0],$proData['data'][$k]):$proData['data'][$k];
				}
			}
			//店铺分类
			$Page = LibPage::Show($totalData['data']['count'], $perPage);
			LibTpl::Set('totalPage',ceil($totalData['data']['count']/$perPage));
			LibTpl::Set('Page', $Page);
			
			LibTpl::Set('proList',$proData['data']);
		}
		// print_r($proData['data']);
		if(!empty($Params['isAjax']))
		{

			$res=['status'=>true,'data'=>[]];
			if($totalData['data']['count']>0)
			{
				$ignoreArr=['spi_path','spi_name','pro_name','pro_promotion_btime','pro_promotion_etime','pro_promotion_price','pro_sale_price','pro_id'];
				foreach ($proData['data'] as $k => $v) 
				{
					foreach ($v as $key => $value) 
					{
						if(!in_array($key, $ignoreArr))
							unset($proData['data'][$k][$key]);
					}
					$proData['data'][$k]['pro_promotion_price']=sprintf('%.2f',$v['pro_promotion_price']);
					$proData['data'][$k]['pro_sale_price']=sprintf('%.2f',$v['pro_sale_price']);
					if(!empty($v['spi_name']))
					{
						$proData['data'][$k]['img']=mvc::$cfg['FILE_CENTER']['b2c']['url_get'].'&c=product&f='.$v['spi_path'].'100/'.$v['spi_name'].mvc::$cfg['FILE_CENTER']['b2c']['get_uri'];
						$proData['data'][$k]['oimg']=mvc::$cfg['FILE_CENTER']['b2c']['url_get'].'&c=product&f='.$v['spi_path'].'800/'.$v['spi_name'].mvc::$cfg['FILE_CENTER']['b2c']['get_uri'];
					}
				}
				//<?php echo mvc::$cfg['FILE_CENTER']['b2c']['url_get'].'&c=product&f='.$v['spi_path'].'100/'.$v['spi_name'].mvc::$cfg['FILE_CENTER']['b2c']['get_uri'];//
				$res=['status'=>true,'data'=>['proArr'=>$proData['data'],'numArr'=>$selNum]];
			}
			LibFc::ajaxJsonEncode($res);
		}
		else
		{
			LibTpl::Put();
		}
	}
	/**
	 * @method    保存配件图片
	 * @author 卢
	 * @copyright 2018-05-05
	 */
	function saveItemImg()
	{
		// print_r($_POST);
		// die;
		$OthFileCenter = new OthFileCenter();
		$B2cProduct=new B2cProduct();
		$dataArr['cate']='product';
		$dataArr['file']['name']=$_SESSION['_shopid'].time().'.jpg';
		$dataArr['file']['data']=base64_decode(substr(strstr($_POST['img'], ','), 1));
		$dataArr['path'] = 'shop'.$_SESSION['_shopid'].'/product/';
		$fileRes=$OthFileCenter->upload($dataArr);
		$B2cBase = new B2cBase();
		$fileRes['data']['oriname'] = empty($fileRes['data']['oriname'])? $fileRes['data']['name']: $fileRes['data']['oriname'];
		$temArr = [
			'spi_cate'=>$dataArr['cate'],
			'spi_shop_id'=>$_SESSION['_shopid'],
			'spi_path'=>$fileRes['data']['path'],
			'spi_name'=>$fileRes['data']['name'],
			'spi_oriname'=>$fileRes['data']['oriname'],
			'spi_ext'=>$fileRes['data']['ext'],
			'spi_crc32'=>$fileRes['data']['crc32'],
			'spi_size'=>$fileRes['data']['size'],
			'spi_width'=>$fileRes['data']['width'],
			'spi_height'=>$fileRes['data']['heigth'],
			'spi_atime'=>time(),
			'spi_style'=>0
		];
		$res = $B2cBase->Add('sh_pic', $temArr);
		$fileRes['data']['spi_id'] = $res['data'];
		$temArr['spi_id'] = $fileRes['data']['spi_id'];
		$res=$B2cProduct->editProPic($_SESSION['_shopid'],$_POST['proId'],$temArr['spi_id'],$_POST['ppSpiId'],$_POST['seq']);
		$res['data']=$temArr['spi_id'];
		LibFc::ajaxJsonEncode($fileRes);
		// echo base64_decode(substr(strstr($_POST['img'], ','), 1));
		// file_put_contents('test.jpg', base64_decode(substr(strstr($_POST['img'], ','), 1)));
	
	}
	/**
	 * @method    获取修改的配件信息
	 * @author 卢
	 * @copyright 2018-05-05
	 */
	function getEditPro()
	{
		$Params = mvc::$URL_PARAMS;
		$B2cProduct=new B2cProduct();
		if(LibFc::Int($Params['proId']))
		{
			if($Params['type']=='price')
			{
				$res=$B2cProduct->getProduct(['pro_sale_price','pro_promotion_price','pro_cost_price','pro_promotion_btime','pro_promotion_etime','pro_price_vip1','pro_price_vip2','pro_price_vip3','pro_price_vip4','pro_id','pro_name'],sprintf(' and pro_id=%d and pro_shop_id=%d',$Params['proId'],$_SESSION['_shopid']),true);
				$proArr=$res['data'];
				$B2cShop = new B2cShop();
				$res = $B2cShop->getMemberSetting($_SESSION['_shopid']);
				$memberArr=[];
				if(!empty($res['data']))
				{
					foreach ($res['data'] as $v) 
					{
						if($v['mem_status']>0)
							$memberArr[]=$v;
					}
				}
				LibTpl::Set('proArr',$proArr);
				LibTpl::Set('memberArr',$memberArr);
				
			}
			else
			{
				$res=$B2cProduct->getProductPic($Params['proId'],true);
				LibTpl::Set('imgArr',$res['data']);
			}
			LibTpl::Set('Params',$Params);
			$data=LibTpl::Fetch('/item/proEdit.php');
			LibFc::ajaxJsonEncode(['status'=>true,'data'=>$data]);
		}
	}
	/**
	 * @method    修改配件入库
	 * @author 卢
	 * @copyright 2018-05-05
	 */
	function editPro()
	{
		$B2cProduct=new B2cProduct();
		// print_r($_POST);
		// die;
		if(!LibFc::Int($_POST['pro']['id']))
		{
			LibFc::ajaxJsonEncode(['status'=>false,'data'=>'参数不正确']);
			exit();
		}
		// print_r($_POST);
		// die;
		if($_POST['type']=='price')
		{
			$res=$B2cProduct->get('bc_product',['count(1) count'],sprintf(' and pro_id=%d and pro_shop_id=%d',$_POST['pro']['id'],$_SESSION['_shopid']),true)
			;
			if(!$res['data']['count'])
			{
				LibFc::ajaxJsonEncode(['status'=>false,'data'=>'修改价格失败']);
			}
			$proArr=[];
			foreach ($_POST['pro'] as $k => $v) 
			{
				if(empty($v))
					unset($_POST['pro'][$k]);
				switch ($k) 
				{
					case 'promotion_btime':
						$proArr['pro_promotion_btime']=strtotime($v);
						break;
					case 'promotion_etime':
						$proArr['pro_promotion_etime']=strtotime($v);
						break;
					case 'id':
						break;
					default:
						$proArr['pro_'.$k]=sprintf('%.2f',$v);
						break;
				}
			}
			if(empty($_POST['promotion']))
			{
				$proArr['pro_promotion_etime']=0;
				$proArr['pro_promotion_btime']=0;
			}
			$res=$B2cProduct->set('bc_product',$proArr,sprintf(' and pro_id=%d',$_POST['pro']['id']));
		}
		LibFc::ajaxJsonEncode($res);
	}
	/**
	 * @method    修改完后获取配件信息刷新列表
	 * @author 卢
	 * @copyright 2018-05-05
	 */
	function getProById()
	{
		$Params = mvc::$URL_PARAMS;
		$res=['status'=>false,'data'=>'参数错误'];
		if(LibFc::Int($Params['proId']))
		{
			$B2cProduct=new B2cProduct();
			$res=$B2cProduct->getProduct(['pro_sale_price','pro_promotion_price','pro_promotion_btime','pro_promotion_etime','pro_id','pro_name'],sprintf(' and pro_id=%d and pro_shop_id=%d',$Params['proId'],$_SESSION['_shopid']),true);
			if(!empty($res['data']))
			{
				$data['price']=($res['data']['pro_promotion_btime']<=time()&&$res['data']['pro_promotion_etime']>=time()&&!empty($res['data']['pro_promotion_price']))?$res['data']['pro_promotion_price']:$res['data']['pro_sale_price'];
				$res=$B2cProduct->getProductPic($Params['proId'],true);
				$data['pic']=!empty($res['data'][0])?mvc::$cfg['FILE_CENTER']['b2c']['url_get'].'&c=product&f='.$res['data'][0]['spi_path'].'100/'.$res['data'][0]['spi_name'].mvc::$cfg['FILE_CENTER']['b2c']['get_uri']:mvc::$cfg['ADMIN_URL'].'static/images/no_img.gif';
				$res['data']=$data;
				$res['status']=true;
			}
		}
		LibFc::ajaxJsonEncode($res);
	}
	function deletePic()
	{
		$Params = mvc::$URL_PARAMS;
		$res=['status'=>false,'data'=>'参数错误'];
		if(LibFc::Int($Params['proId']))
		{
			$B2cProduct=new B2cProduct();
			$res=$B2cProduct->editProPic($_SESSION['_shopid'],$Params['proId'],[],$Params['spiId']);
		}
		LibFc::ajaxJsonEncode($res);
		// print_r($Params);
	}
}