<?php
namespace app\api\controller\shop;
use app\common\controller\Api;
class Cart extends Api
{
protected $noNeedLogin = '';
protected $noNeedRight = ['*'];
protected $layout = '';
//添加商品到购物车
public function buy()
{
$good_id = $this->request->param('good_id');
$name = $this->request->param('name');
$code = $this->request->param('code');
$price = $this->request->param('price');
$img = $this->request->param('img');
$mycart = session('mycart');
//先判断这个变量是否是数组,可以得到以前是否买过东西
if(is_array($mycart)){
//是数组,买过东西
//买过东西分两种,这种东西是否买过,买过对其数量加1,没买过,将此商品id和name值组建成一个一维数组
if(array_key_exists($good_id.'|'.$code,$mycart)){
//拿出这个商品的信息
$uu = $mycart[$good_id.'|'.$code];
$uu['num'] = bcadd($uu['num'],1);
$uu['price'] = bcadd($uu['price'],$price,2);
//该商品加1后重新赋值
$mycart[$good_id.'|'.$code] = $uu;
}else{
$mycart[$good_id.'|'.$code] = array('good_id'=>$good_id,'name'=>$name,'img'=>$img,'code'=>$code,'price'=>$price,'num'=>1);
}
}else{
$mycart[$good_id.'|'.$code] = array('good_id'=>$good_id,'name'=>$name,'img'=>$img,'code'=>$code,'price'=>$price,'num'=>1);
}
//处理完后,重新将此数据放入session中,便可以在各个页面进行赋值
session('mycart',$mycart);
$this->success('添加成功');
}
//从购物车移除该商品
public function delete()
{
$good_id = $this->request->param('good_id');
$code = $this->request->param('code');
$mycart = session('mycart');;//拿出session里的二维数组
foreach($mycart as $key=>$proId)//遍历该二维数组中的键值,这里也就是商品的id
{
if($key==$good_id.'|'.$code)//判断键值等于传过来的商品id
{
unset($mycart[$key]);//清除该一维数组
}
}
session('mycart',$mycart);
$this->success('移除成功');
}
//购物车商品数量减1
public function reduce()
{
$good_id = $this->request->param('good_id');
$code = $this->request->param('code');
$price = $this->request->param('price');
$mycart = session('mycart');//拿出session里的二维数组
foreach($mycart as $key=>$proId)//遍历该二维数组中的键值,这里也就是商品的id
{
if($key==$good_id.'|'.$code)//判断键值等于传过来的商品id
{
$uu = $mycart[$key];
$uu['num'] = bcsub($uu['num'],1);
$uu['price'] = bcsub($uu['price'],$price,2);
//减1后等于0,移除该商品
if($uu['num'] == 0 || $uu['num'] < 0){
unset($mycart[$key]);//清除该一维数组
}else{
$mycart[$key] = $uu;
}
}
}
session('mycart',$mycart);
$this->success('操作成功');
}
//购物车页面
public function cart_list()
{
$mycart = session('mycart');
$this->success('查询成功',$mycart);
}
}
php商城购物车
于 2023-05-31 11:46:41 首次发布