1.购物车商品加入redis (增)
$data = [
//存储信息自定义
'title' => 'title',//商品title
'image' => 'image',//购物车商品浏览图
'num' => 'num',//商品数量
'created_at' => time(),//插入时间
];
//Cache::hget(储存名称,储存键,储存数据) 这里使用商品sku_id作为键名
$redisDataResult = Cache::hget('mall_cart_' . $user_id, $goods_id, json_encode($data));
2.修改购物车商品数量(改)
$data = [
//存储信息自定义
'title' => 'title',//商品title
'image' => 'image',//购物车商品浏览图
'num' => 'num',//商品数量
'created_at' => time(),//插入时间
];
//利用Cache::hget(存储名称,存储键) ,通过存储名称和商品Id 找到相应的数据。
$redisDataResult = Cache::hget('mall_cart_'. $user_id, $goods_id);
//判断时候有数据,如果有 直接在原数据上更新商品数量
if ($redisDataResult) {
$data['sum'] = json_decode($redisDataResult, true)['sum'] + $data['sum'];
}
//将新的信息插入redis
$redisResult = Cache::hset('mall_cart_' . $user_id, $user_id, json_encode($data));
3.查询购物车全部数据(查)
//Cache::hgetAll(存储名称) 通过方法返回用户购物车全部数据,
//返回array 但是该数据无序,无序对用户不友好。
$userCartDatas = Cache::hgetAll('mall_cart_' . $user_id);
//通过新增时插入的crated_at时间进行排序,使用php array函数方法
array_multisort(array_column($userCartDatas,'created'),SORT_DESC,$userCartDatas);
4.从购物车移除商品(删)
//Cache::hDel(储存名称,储存键) 这里储存键代表$sku_id,删除购物车中某个商品。
$result = Cache::hDel('mall_cart_'.$user_id,$sku_id);
if($result){
return true;
}
return false;
5.购物车数量统计(count)
//根据用户ID 找到购物车商品条数
$result = Cache::hlen('mall_cart_'.$user_id,$sku_id);
6.指定查询购物车商品
//一般用户订单确认页面商品详情展示,使用和购物车 查找全部一样逻辑,只不过限制了商品ID
//$idsArray 为多个或一个商品ID
$userCartDatas = Cache::hmget('mall_cart_'.$user_id,$idsArray);