Coupon.php 2.73 KB
<?php

/**
 * Created by PhpStorm.
 * User: Targaryen
 * Date: 2016/4/11
 * Time: 16:31
 */
use Action\AbstractAction;
use LibModels\Wap\Coupon\CouponData;
use Plugin\DataProcess\CouponFloorProcess;
use Plugin\Helpers;


class CouponController extends AbstractAction
{
    /**
     * 领券楼层数据列表
     *
     * @author chengyao.guo
     */
    public function floorAction()
    {
        $receiveData = filter_input_array(INPUT_GET, array(
            'code' => FILTER_DEFAULT
        ));
        $result = array();

        $uid = $this->getUid();
        $resource = CouponData::getCouponRousource($receiveData['code'], $uid);
        if (isset($resource['code']) && $resource['code'] == 200) {
            $result = CouponFloorProcess::getContent($resource['data']);
        }
        $this->_view->display('index', array(
            'content' => $result,
            'floorPage' => true
        ));
    }

    /**
     * 领券操作
     *
     * @author chengyao.guo
     */
    public function receiveCouponAction()
    {
        $returnData = array();
        // 获取优惠券 ID
        $receiveData = filter_input_array(INPUT_GET, array(
            'couponID' => FILTER_DEFAULT
        ));
        // 跳转 URl
        $playUrl = Helpers::url('/coupon/floor');
        // 判断用户是否登录
        if (!$this->getUid() || !is_numeric($this->getUid())) {
            // 用户未登录,跳转登录页面
            $returnData['noLogin'] = true;
            if (!$this->isApp()) {
                $returnData['url'] = Helpers::url('/signin.html', array('refer' => $playUrl), 'default');
            } else {
                $playUrlEncode = strtr($playUrl, array('/' => '\\/'));
                $returnData['url'] = $playUrl . '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' . $playUrlEncode . '","param":{"from":"app"}},"requesturl":{"url":"","param":{}},"priority":"N"}}';
            }
        } else {
            // 登录后调用领券接口
            $result = CouponData::receiveCoupon($this->getUid(), $receiveData['couponID']);
            switch ($result['code']) {
                case 200:
                    $returnData = array(
                        'msg' => '领券成功!',
                        'status' => true,
                    );
                    break;
                default:
                    $returnData = array(
                        'msg' => '领券失败!',
                        'status' => false,
                    );
                    break;
            }
        }
        echo json_encode($returnData);
    }

    /**
     * 判断是否是 APP
     *
     * @return bool
     */
    public function isApp()
    {
        return (null !== $this->get('app_version'));
    }

}