ShoppingCart.php 10.2 KB
<?php

use Action\AbstractAction;
use Index\CartModel;
use Index\UserModel;
use Plugin\Helpers;

/**
 * 购物车
 */
class ShoppingCartController extends AbstractAction
{

	/*
	 * 购物车首页
	 */
    public function indexAction()
    {
        $this->setTitle('购物车');
        $this->setNavHeader('购物车');

	    $shoppingKey = $this->getSession('shoppingKey');
	    $uid = $this->getUid(true);

        $data = array(
	        'shoppingCartPage' => true,
	        'shoppingCart' => CartModel::getCartData($uid, $shoppingKey)
        );

        // 渲染模板
        $this->_view->display('index', $data);
    }

	/**
	 * 移出购物车
	 */
	public function delAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$productId = $this->post('id', 0);
			$uid = $this->getUid(true);
			$shoppingKey = $this->getSession('shoppingKey');
			$result = CartModel::removeFromCart($uid, $productId, $shoppingKey);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/**
	 * 移入收藏夹
	 */
	public function colAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$productId = $this->post('id', 0);
			$uid = $this->getUid(true);
			$result = CartModel::addToFav($uid, $productId);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/*
	 * 获取购物车商品数据
	 */
	public function goodinfoAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$num = $this->get('buy_num', 1);
			$skn = $this->get('id', 1);
			$uid = $this->getUid(true);
			$result = CartModel::cartProductData($uid, $skn, $num); // 测试skn的ID为51172055
			$result['num'] = $num;
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/*
	 * 获取购物车加价购商品数据
	 */
	public function giftinfoAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$skn = $this->get('skn', null);
			$promotionId = $this->get('promotionId', null);
			$result = CartModel::giftProductData($skn, $promotionId);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/**
	 * 修改购物车商品数据
	 */
	public function modifyAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$shoppingKey = $this->getSession('shoppingKey');
			$uid = $this->getUid(true);

			$params = array();
			$params['old_product_sku']= $this->post('old_product_sku', 0);
			$params['new_product_sku']= $this->post('new_product_sku', 0);
			$params['buy_number']= $this->post('buy_number', 0);
			$params['selected']= $this->post('selected', null);
			$result = CartModel::modifyCartProduct($uid, $params, $shoppingKey);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/**
	 * 购物车结算请求
	 */
	public function payAction()
	{
		$this->setTitle('购物车');
		$this->setNavHeader('购物车');

		$cartType = $this->post('cartType', 'ordinary');
		$uid = $this->getUid(true);
		$data = array(
			'orderEnsurePage' => true,
			'orderEnsure' => CartModel::cartPay($uid, $cartType)
		);

		$this->_view->display('order-ensure', $data);
	}

	/**
	 * 购物车选择支付方式和配送方式接口
	 */
	public function payAndDeliveryAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$cartType = $this->post('cartType', 'ordinary');
			$deliveryWay = $this->post('deliveryWay', 1);
			$paymentType = $this->post('paymentType', 1);
			$uid = $this->getUid(true);
			$result = CartModel::paymentTypeAndDelivery($uid, $cartType, $deliveryWay, $paymentType);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/**
	 * 购物车输入优惠券码使用优惠券
	 */
	public function couponAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$couponCode = $this->post('couponCode', '');
			$uid = $this->getUid(true);
			$result = CartModel::getCoupon($uid, $couponCode);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

	/**
	 * 购物车使用YOHO币
	 */
	public function yohoCoinAction()
	{
		$result = array();

		if ($this->isAjax()) {
			$cartType = $this->post('cartType', 'ordinary');
			$deliveryWay = $this->post('deliveryWay', 1);
			$paymentType = $this->post('paymentType', 1);
			$yohoCoin = $this->post('yohoCoin', 1);
			$result = CartModel::paymentTypeAndDelivery($this->_uid, $cartType, $deliveryWay, $paymentType, $yohoCoin);
		}

		if (empty($result)) {
			echo ' ';
		} else {
			$this->echoJson($result);
		}
	}

    public function giftAdvanceAction()
    {
        $data = array(
            'advance' => array(
                array(
                    'title' => '【izzue】加¥19购袜子',
                    'goods' => array(
                        'id' => 1,
                        'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/09/17/03/014cacfa5c458b9732c68adf1af15d7a45.jpg?imageMogr2/thumbnail/120x120/extent/120x120/background/d2hpdGU=/position/center/quality/90',
                        'name' => 'Life.After.Life纯棉短袜',
                        'salePrice' => 19,
                        'price' => 99,
                        'count' => 1
                    )
                ),
                array(
                    'title' => '【银鳞堂】加¥9购手绳',
                    'goods' => array(
                        'id' => 1,
                        'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/10/03/10/01bc1878f9154e77ac4f7a6003c954f1b8.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
                        'name' => '银鳞堂民族风牛皮手绳',
                        'salePrice' => 9,
                        'price' => 19,
                        'count' => 1
                    )
                )
            )
        );

        $data = array(
            'gift' => array(
                'id' => 1,
                'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/09/17/03/014cacfa5c458b9732c68adf1af15d7a45.jpg?imageMogr2/thumbnail/120x120/extent/120x120/background/d2hpdGU=/position/center/quality/90',
                'name' => 'Life.After.Life纯棉短袜',
                'color' => '黄色',
                'size' => 'L',
                'price' => 0,
                'count' => 1
            )
        );

        $this->_view->display('gift-advance', array('giftAdvancePage' => true, 'pageHeader' => array(
                'navBack' => true, 'navTitle' => '加价购'), 'shoppingCart' => $data));
    }

	/*
	 * 确认订单
	 */
    public function orderEnsureAction()
    {
        $data = array(
            'orderEnsurePage' => true,
            'orderEnsure' => array(
                'name' => '申建军',
                'phoneNum' => '12345678',
                'address' => '江苏省南京市建邺区',
                'dispatchMode' => array(
                    array(
                        'id' => 1,
                        'name' => '普通快递¥10'
                    ),
                    array(
                        'id' => 2,
                        'name' => '顺丰速运¥15(仅支持顺丰克配送的地区)'
                    )
                ),
                'dispatchTime' => array(
                    array(
                        'id' => 1,
                        'name' => '工作日、双休日、节假日均可送货'
                    ),
                    array(
                        'id' => 2,
                        'name' => '只工作日送货'
                    ),
                    array(
                        'id' => 3,
                        'name' => '只双休日、节假日送货'
                    )
                ),
                'goods' => array(
                    array(
                        'id' => 1,
                        'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/11/04/05/01ce2aff32fc3c90584f516167cd526d91.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
                        'name' => 'Adidas Originals ZX FLUXM22508',
                        'color' => '黄',
                        'size' => '43',
                        'price' => '699.00',
                        'count' => '2'
                    ),
                    array(
                        'id' => 1,
                        'thumb' => 'http://img10.static.yhbimg.com/goodsimg/2015/11/04/05/0188f1aca49ac478a565ec029b5d2d4a6c.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
                        'name' => 'B.Duck浴室玩伴mini浮水鸭',
                        'gift' => true,
                        'color' => '黄',
                        'size' => '43',
                        'price' => '0.00',
                        'count' => '1'
                    )
                ),
                'coupon' => array(
                    'count' => 1,
                    'notUsed' => true
                ),
                'yohoCoin' => '0',
                'invoice' => true,
                'sumPrice' => 900,
                'salePrice' => 90,
                'freight' => 0,
                'price' => 810
            )
        );

        $this->_view->display('order-ensure', $data);
    }

    /**
     * 下单流程 选择地址
     */

    public function selectAddressAction() {
        // 设置网站标题
        $this->setTitle('选择地址');
        $this->setNavHeader('选择地址', Helpers::url('/shoppingCart/orderEnsure'));

        $uid = $this->_uid;
        $address = UserModel::getAddressData($uid);

        $this->_view->display('select-address', array(
            'selectAddressPage' => true,
            'pageFooter' => true,
            'address' => $address
        ));

    }

    /**
     * 下单流程 选择优惠券
     */

    public function selectCouponAction() {
        // 设置网站标题
        $this->setTitle('选择优惠券');
        $this->setNavHeader('选择优惠券', Helpers::url('/shoppingCart/orderEnsure'));

        $uid = $this->_uid;
        $address = UserModel::getAddressData($uid);

        $this->_view->display('select-coupon', array(
            'selectCouponPage' => true,
            'pageFooter' => true,
            'address' => $address
        ));

    }
}