tp5 用 Cache缓存实现购物车功能(仿照美团、饿了么)

定义变量有点乱,坏习惯真的需要改一下,希望大家遵循PHP PSR-2 代码风格规范 PHP PSR-2

namespace app\api\controller;

use app\common\controller\Api;
use think\Cache;
use think\Db;

class Cart
{
//购物车的显示
	public function index()
	{
        $UID = input('user_id');
        $UID == is_numeric(strval($UID))&&!empty($UID)?$UID:die('请求出错');
        $sel = Cache::get($UID);
        if ($sel){
            return json(['code'=>'200','data'=>$sel]);
        }else{
            return json(['code'=>'200','data'=>'','msg'=>'请去添加商品']);
        }
    }
    //加购物车
    public function toAdd(){
        $bin = 0;
        $data = array_filter(input());
        $arr = Cache::get($data['user_id']);
        if (!$arr){
            $b[] = $data;
            $dat = Cache::set($data['user_id'],$b);
            if ($dat){
                return json(['code'=>'200','msg'=>'ok1']);
            }
        }
        foreach ($arr as $key=>&$val){
            if ($val['goods_id']==$data['goods_id']){
                $val['buy_num'] = $val['buy_num']+1;
                $val['goods_price'] = round($val['buy_num']*$data['goods_price'],2);
                $bin++;
            }
        }
        if ($bin==0){
            $arr[] = $data;
            $da = Cache::set($data['user_id'],$arr);
            if ($da){
                return json(['code'=>'200','msg'=>'ok2']);
            }
        }
        $ins = Cache::set($data['user_id'],$arr);
        if ($ins){
            return json(['code'=>'200','msg'=>'ok3']);
        }
    }
    //减购物车
     public function toRde(){
        $data = array_filter(input());
        $arr = Cache::get($data['user_id']);
        foreach ($arr as $key => &$val){
            if($val['goods_id']==$data['goods_id']){
                if ($val['buy_num']>1){
                   $val['buy_num'] = $val['buy_num']-1;
                   $val['goods_price'] = $val['goods_price']-$data['goods_price'];
                }else{
                    unset($arr[$key]);
                }
            }
        }
        $rde = Cache::set($data['user_id'],$arr);
        if ($rde){
            return json(['code'=>'200','msg'=>'ok']);
        }
    }
    //清空购物车
    public function delCar() {
        $uid = input('user_id');
        $uid == is_numeric(strval($uid))&&!empty($uid)?$uid:die('请求出错');
        $sel = Cache::get($uid);
        $sel = count($sel)!==0?:die('购物车是空的,快去选择商品吧');
        $todel = Cache::set($uid,[]);
        return json($this->delmsg($todel));
    }
    public function delmsg($todel){
        return $todel==true?['code'=>'200','msg'=>'success']:['code'=>'100','msg'=>'is fail'];
    }
}

代码如上,需要什么进行进行改动即可,我是临漂实习生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值