用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

购物车

2014-12-21 作者: 云代码会员举报

[php]代码库

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2009 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: ToniLiu <cniiliuqi@126.com>
// +----------------------------------------------------------------------
// $Id: Cart.class.php  ToniLiu $
 
/**
 +------------------------------------------------------------------------------
 * Cart实现类
 +------------------------------------------------------------------------------
 * @category   Think
 * @package  Think
 * @subpackage  Util
 * @author    ToniLiu <cniiliuqi@126.com>
 * @version   $Id: Cart.class.php
 +------------------------------------------------------------------------------
 */
 
class Cart{
 
    //THINKPHP_MODLE
    private $model;
     
    private $user_cart;
 
    public function __construct(){
     
        $this->model = D("Item");
        $this->user_cart = new Model();
         
        if(!$_SESSION['cart']){
            $_SESSION['cart'] = array();
            $_SESSION['cart']['goods_list'] = array();
            $_SESSION['cart']['total_num'] = 0;
            $_SESSION['cart']['total_price'] = 0.00;
            //如果是已经登录的用户
            if($_SESSION['ucenter']['user_id']){
                $user_cart_result = $this->user_cart->query("select cart_id,user_id,item_id,item_name,volume,market_price,price,item_sn from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']);
                foreach ($user_cart_result as $value){
                    $_SESSION['cart']['goods_list'][$value['item_id']] = array(
                                                                                        'item_id' => $value['item_id'],
                                                                                        'item_name' => $value['item_name'],
                                                                                        'volume' => $value['volume'],
                                                                                        'price' => $value['price'],
                                                                                        'market_price' => $value['market_price'],
                                                                                        'item_sn' =>$value['item_sn']
                                                                                    );
                    $_SESSION['cart']['total_price'] = $_SESSION['cart']['total_price'] + $value['price'];
                    $_SESSION['cart']['total_num'] = $_SESSION['cart']['total_num'] + 1;                   
                }
            }
        }
        else{
            //如果是已经登录的用户
            if($_SESSION['ucenter']['user_id']){
         
                foreach($_SESSION['cart']['goods_list'] as $goods_value){
                    $user_cart_result = $this->user_cart->query("select cart_id,item_id from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']." limit 1");
                    if(!$user_cart_result[0]){
                        $this->user_cart->execute("INSERT INTO `zhongyoupl`.`biz_cart` (`cart_id`, `user_id`, `user_name`, `session_id`, `item_id`, `item_sn`, `item_name`, `volume`, `market_price`, `price`, `discount`, `quantity`, `amount`, `create_time`, `date_line`) VALUES (NULL, '".$_SESSION['ucenter']['user_id']."', '".$_SESSION['ucenter']['user_name']."', '".session_id()."', '".$goods_value['item_id']."', '".$goods_value['item_sn']."', '".$goods_value['item_name']."', '".$goods_value['volume']."', '".$goods_value['market_price']."', '".$goods_value['price']."', '0', '0', '0', '".date("Y-m-d H:i:s")."', '".time()."');");
                    }
                }
                 
                //清空SESSION购物车信息
                $_SESSION['cart']['total_price'] = 0;
                $_SESSION['cart']['total_num'] = 0;
                 
                //根据用户的购物车信息,重构SESSION中的购物车信息
                $this->user_cart = new Model();
                $user_cart_result = $this->user_cart->query("select cart_id,user_id,item_id,item_name,volume,market_price,price,item_sn from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']);
                foreach ($user_cart_result as $value){
                    $_SESSION['cart']['goods_list'][$value['item_id']] = array(
                                                                                        'item_id' => $value['item_id'],
                                                                                        'item_name' => $value['item_name'],
                                                                                        'volume' => $value['volume'],
                                                                                        'price' => $value['price'],
                                                                                        'market_price' => $value['market_price'],
                                                                                        'item_sn' =>$value['item_sn']
                                                                                    );
                    $_SESSION['cart']['total_price'] = $_SESSION['cart']['total_price'] + $value['price'];
                    $_SESSION['cart']['total_num'] = $_SESSION['cart']['total_num'] + 1;                   
                }
            }
        }
    }
 
    //添加单个商品到购物车
    public function add_goods($goods_id){
     
        $goods_id = $goods_id * 1;
         
        if($goods_id){
            if($this->model->find($goods_id)){
 
                if($this->model->status != 5){
                    return json_encode(array('state_code' => 2,'state_message' => 'This goods is down!'));
                }
                $tmp_price = $this->model->price;
                if((int)$tmp_price){
                    if(!$_SESSION['cart']['goods_list'][$this->model->item_id]){
                        $_SESSION['cart']['goods_list'][$this->model->item_id] = array(
                                                                                        'item_id' => $this->model->item_id,
                                                                                        'item_name' => $this->model->item_name,
                                                                                        'volume' => $this->model->volume,
                                                                                        'price' => $this->model->price,
                                                                                        'market_price' => $this->model->market_price,
                                                                                        'item_sn' => $this->model->item_sn
                                                                                    );
                        $_SESSION['cart']['total_price'] = $_SESSION['cart']['total_price'] + $this->model->price;
                        $_SESSION['cart']['total_num'] = $_SESSION['cart']['total_num'] + 1;
                        //如果是登录用户,记录到biz_cart表中
                        if($_SESSION['ucenter']['user_id']){
                             
                            $user_cart_result = $this->user_cart->query("select cart_id,item_id from biz_cart where user_id = ".$this->model->item_id." limit 1");
                            if(!$user_cart_result[0]){
                                 
                                $this->user_cart->execute("INSERT INTO `zhongyoupl`.`biz_cart` (`cart_id`, `user_id`, `user_name`, `session_id`, `item_id`, `item_sn`, `item_name`, `volume`, `market_price`, `price`, `discount`, `quantity`, `amount`, `create_time`, `date_line`) VALUES (NULL, '".$_SESSION['ucenter']['user_id']."', '".$_SESSION['ucenter']['user_name']."', '".session_id()."', '".$this->model->item_id."', '".$this->model->item_sn."', '".$this->model->item_name."', '".$this->model->volume."', '".$this->model->market_price."', '".$this->model->price."', '0', '0', '0', '".date("Y-m-d H:i:s")."', '".time()."');");
                                return json_encode(array('state_code' => 5,'state_message' => 'add Ok and insert to db!'));
                            }
                        }
                    }
                    else{
                        return json_encode(array('state_code' => 3,'state_message' => 'This goods is at cart!'));
                    }
                }
                else{
                    return json_encode(array('state_code' => 1,'state_message' => 'price is zero'));
                }
            }
            else{
                return json_encode(array('state_code' => 9,'state_message' => "Don't find item!"));
            }
        }
        else{
            return json_encode(array('state_code' => 0,'state_message' => 'item_id is null'));
        }
    }
     
    //从购物车删除单个商品
    public function delete_goods($goods_id){
        $goods_id = $goods_id * 1;
        if($goods_id){
            if($_SESSION['cart']['goods_list'][$goods_id]){
                $_SESSION['cart']['total_price'] = $_SESSION['cart']['total_price'] - $_SESSION['cart']['goods_list'][$goods_id]['price'];
                $_SESSION['cart']['total_num'] = $_SESSION['cart']['total_num'] - 1;
                unset($_SESSION['cart']['goods_list'][$goods_id]);
                 
                if($_SESSION['ucenter']['user_id']){
                    $user_cart_result = $this->user_cart->query("select cart_id,item_id from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']." and item_id = $goods_id limit 1");
                    if($user_cart_result[0]){
                        $this->user_cart->execute("delete from biz_cart where cart_id = ".$user_cart_result[0]['cart_id']." limit 1");
                    }
                }
 
                return json_encode(array('state_code' => 11,'state_message' => '商品删除成功!'));
            }
            else{
                return json_encode(array('state_code' => 12,'state_message' => '在购物车中没有找到该商品!'));
            }
        }
        else{
            return json_encode(array('state_code' => 0,'state_message' => 'item_id is null'));
        }
    }
     
    //从购物车批量删除商品
    public function delete_batch_goods($goods_id_string){
        $goods_id_arr = explode(',',$goods_id_string);
        if(sizeof($goods_id_arr)){
            foreach ($goods_id_arr as $goods_id){
                $goods_id = $goods_id * 1;
                if($_SESSION['cart']['goods_list'][$goods_id]){
                    $_SESSION['cart']['total_price'] = $_SESSION['cart']['total_price'] - $_SESSION['cart']['goods_list'][$goods_id]['price'];
                    $_SESSION['cart']['total_num'] = $_SESSION['cart']['total_num'] - 1;
                    unset($_SESSION['cart']['goods_list'][$goods_id]);
                    //如果登录了,同时删除biz_cart中该用户的信息
                    if($_SESSION['ucenter']['user_id']){
                        $user_cart_result = $this->user_cart->query("select cart_id,item_id from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']." and item_id = $goods_id limit 1");
                        if($user_cart_result[0]){
                            $this->user_cart->execute("delete from biz_cart where cart_id = ".$user_cart_result[0]['cart_id']." limit 1");
                        }
                    }
                }
            }
            return json_encode(array('state_code' => 11,'state_message' => '商品批量删除成功!'));
        }
        else{
            return json_encode(array('state_code' => 13,'state_message' => '参数错误!'));
        }
    }
     
    //清空购物车
    public function empty_cart(){
        unset($_SESSION['cart']);
        if($_SESSION['ucenter']['user_id']){
            $this->user_cart->execute("delete from biz_cart where user_id = ".$_SESSION['ucenter']['user_id']);
        }
        return json_encode(array('state_code' => 14,'state_message' => '清空购物车成功!'));
    }
     
    //输出购物车信息
    public function return_cart_info(){
        return $_SESSION['cart'];
    }
     
}
 
 ?>


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...