<?php
class cartAction extends baseAction
{
	function index()
	{
		$OthCheck = new OthCheck();
		$OthCheck->mustLogin('gzhs');
		$B2cBase = new B2cBase();
		$B2cProduct = new B2cProduct();
		$B2cShoppingCart=new B2cShoppingCart();
		// 当前店铺所有购物车 
		$table = "us_cart inner join bc_product on pro_id=car_pro_id ";
		$where = sprintf("and car_uid=%d and pro_shop_id=%d order by car_add_time desc ",$_SESSION['_userid'],mvc::$cfg['SHOPID']);
		$res = $B2cBase->get($table,['us_cart.*,pro_id'],$where);
		$pro = $res['data'];

		$ids = array_column($pro, 'pro_id');
		$checked = [];

		$proInfoRes = $B2cProduct->getAnyProductInfo($ids,$_SESSION['_userid'],['picMain','mdPrice']);
		$proInfoArr = $proInfoRes['data']?:[];
		// echo "<pre>";
		// var_dump($proInfoArr);die;
		foreach ($pro as $k => $v)
		{
			if(isset( $proInfoArr[$v['pro_id']]))
			{	
				$v['price']= $proInfoArr[$v['pro_id']]['price'];
				
				$v = array_merge($v,$proInfoArr[$v['pro_id']]);
				
			}
			
			if($v['car_checked'])
			{
				$checked[] = $v['pro_id'];
			}
			if($proInfoArr[$v['pro_id']]['pic']) $v = array_merge($v,$proInfoArr[$v['pro_id']]['pic'][0]);

			$pro[$k] = $v;
		}
		LibTpl::Set('data',$pro);
		// print_r($pro);
		//套餐
		$res = $B2cShoppingCart->getCarPack($_SESSION['_userid'],sprintf(' and prpa_shop_id=%d',mvc::$cfg['SHOPID']));
		// print_r($res);
		if(!empty($res['data'][0]['cart_pro']))
		{
			LibTpl::Set('packArr',$res['data'][0]['cart_pro']);
		}
		// print_r($res['data'][0]['cart_pro']);
		LibTpl::Set('check',$checked);
	
		LibTpl::Set('footMenu', 'cart');
		LibTpl::Set('title', '购物车');
		LibTpl::Put();
	}
	/**
	 * @method    改变购物车数量
	 * @author 卢
	 * @copyright 2018-07-19
	 */
	function changeNum(){
		$OthCheck = new OthCheck();
		$OthCheck->mustLogin('gzhs');
		$B2cBase =new B2cBase();
		$Params = mvc::$URL_PARAMS;
		if(!empty($Params['id'])&&!empty($Params['num']))
		{
			$where=$Params['type']=='pack'?sprintf(' and car_prpa_id=%d and car_uid=%d ',$Params['id'],$_SESSION['_userid']):sprintf(" and car_pro_id=%d and car_uid=%d",$Params['id'],$_SESSION['_userid']);
			$B2cBase->set("us_cart",['car_count'=>$Params['num']],$where);
		}
		LibFc::ajaxJsonEncode(['status'=>true, 'data'=>true]);
	}
	/**
	 * @method    购物车配件选中状态切换
	 * @author 卢
	 * @copyright 2018-07-19
	 */
	function checkedCart()
	{
		$OthCheck = new OthCheck();
		$OthCheck->mustLogin('gzhs');
		$B2cBase =new B2cBase();
		if(!empty($_POST['proArr']))
		{
			$where=$notWhere=sprintf(' and car_uid=%d',$_SESSION['_userid']);
			$proArr=array_filter($_POST['proArr']);
			$where.=sprintf(' and car_pro_id in (%s)',implode(',',$proArr));
			$notWhere.=sprintf(' and car_pro_id not in(%s)',implode(',',$proArr));
			$B2cBase->set("us_cart",['car_checked'=>'1'],$where);
			$B2cBase->set("us_cart",['car_checked'=>'0'],$notWhere);
		}else{
			$B2cBase->set("us_cart",['car_checked'=>'0'],sprintf(' and car_uid=%d and car_prpa_id =0',$_SESSION['_userid']));
		}
		if(!empty($_POST['packArr']))
		{
			$where=$notWhere=sprintf(' and car_uid=%d',$_SESSION['_userid']);
			$packArr=array_filter($_POST['packArr']);
			$where.=sprintf(' and car_prpa_id in (%s)',implode(',',$packArr));
			$notWhere.=sprintf(' and car_prpa_id not in(%s) and car_prpa_id !=0',implode(',',$packArr));
			// echo $where;echo $notWhere;
			$B2cBase->set("us_cart",['car_checked'=>'1'],$where);
			$B2cBase->set("us_cart",['car_checked'=>'0'],$notWhere);
		}else{
			$B2cBase->set("us_cart",['car_checked'=>'0'],sprintf(' and car_uid=%d and car_prpa_id !=0',$_SESSION['_userid']));
		}
		LibFc::ajaxJsonEncode(['status'=>true, 'data'=>true]);
	}
	/**
	 * @method    删除购物车
	 * @author 卢
	 * @copyright 2018-07-19
	 */
	function delCart()
	{
		$OthCheck = new OthCheck();
		$OthCheck->mustLogin('gzhs');
		$B2cShoppingCart =new B2cShoppingCart();
		if(!empty($_POST['proArr']))
		{
			$proArr=array_filter($_POST['proArr']);
			$res=$B2cShoppingCart->delShoppingCart($proArr,$_SESSION['_userid']); 
		}
		if(!empty($_POST['packArr']))
		{
			$packArr=array_filter($_POST['packArr']);
			$res=$B2cShoppingCart->delPackage($packArr,$_SESSION['_userid']);
		}
		LibFc::ajaxJsonEncode(['status'=>true, 'data'=>true]);
	}

}