Common.php 7.38 KB
<?php

use Action\WebAction;
use Index\HomeModel;
use Configs\WebCacheConfig;
use LibModels\Web\Home\IndexData;
use WebPlugin\Cache;
use WebPlugin\Images;
use WebPlugin\Helpers;

class CommonController extends WebAction
{

    /**
     * 获取首页资源品牌
     */
    public function getIndexResourceBrandAction()
    {
        $data = array();

        do {
            if (!$this->isAjax()) {
                break;
            }

            $type = $this->get('type');
            if (empty($type)) {
                break;
            }

            // 首页资源品牌,采用内存存储
            $key = WebCacheConfig::KEY_WEB_INDEX_BRANDS_LIST_DATA . '_' . $type;
            // array('logoBrand'=>'','moreBrand'=>'')
            $data = Cache::get($key,'master');
            if(empty($data)) {//从slave取数据
                $data = Cache::get($key, 'slave');
            }
            
        } while (false);

        $this->echoJson($data);
    }

    /**
     * 新品上架 接口数据
     *
     * @param string channel 当前频道
     * @param int pageIndex 当前页数
     * @param int pageCount 一页显示个数
     */
    public function getNewArrivalAction()
    {
        $result = array();
        do {
            /* 判断是不是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }
            $channels = array(
                HomeModel::COOKIE_NAME_BOYS,
                HomeModel::COOKIE_NAME_GIRLS,
                HomeModel::COOKIE_NAME_KIDS,
                HomeModel::COOKIE_NAME_LIFESTYLE
            );
            $channel = $this->post('type', '');
            $pageIndex = (int) $this->post('pageIndex', 0);
            $pageCount = (int) $this->post('pageCount', 8);
            if (!in_array($channel, $channels)) {
                break;
            }

            $data = HomeModel::getNewArrival($channel);
            if (empty($data)) {
                break;
            }

            if ($pageIndex < 0) {
                $pageIndex = 0;
            }
            if ($pageCount < 0 || $pageCount > 50) {
                $pageCount = 20;
            }
            $data = array_slice($data, $pageIndex, $pageCount);
            if (empty($data)) {
                break;
            }
            $result = array(
                'code' => 200,
                'goods' => $data
            );
            $data = array();
            
        } while (false);

        $this->echoJson($result);
    }

    /**
     * 获取资源位banner
     * 
     * @return jsonp
     */
    public function getbannerAction()
    {
        $contentCode = $this->get('content_code', '');
        $callback = $this->get('callback', '');
        $width = $this->get('width', '');
        $height = $this->get('height', '');
        
        $data = IndexData::getResourceData($contentCode);
        if (empty($data['data'])) {
            return $this->helpJsonCallbackResult($callback, 200, '没有数据', '');
        } else {
            $banner = '';
            if (isset($data['data'][0]['data'])) {
                if ($data['data'][0]['template_name'] == 'single_image') {
                    $banner = current($data['data'][0]['data']);
                } else if ($data['data'][0]['template_name'] == 'single_name_image') {
                    $banner = $data['data'][0]['data'];
                }
                if (!empty($banner)) {
                    if (empty($width) || empty($height)) {
                        $width = 2600; //通栏广告
                        $height = 60;
                    }
                    $banner['src'] = Images::getImageUrl($banner['src'], $width, $height, 2);
                    //str_replace('?imageView/{mode}/w/{width}/h/{height}', '', $banner['src']);
                }
            }
            return $this->helpJsonCallbackResult($callback, $data['code'], $data['message'], $banner);
        }
    }

    /**
     * 获取邮件订阅
     * 
     * @return jsonp
     */
    public function emailsubscriberAction()
    {
        $callback = $this->get('callback', '');
        $email = $this->get('email', '');
        $uid = intval($this->get('uid', '0'));
        $data = array();
        //验证邮件
        if (Helpers::verifyEmail($email)) {
            $data = IndexData::emailSubscriber($email, $uid);
            return $this->helpJsonCallbackResult($callback, $data['code'], $data['message'], $data['data']);
        } else {
            return $this->helpJsonCallbackResult($callback, 403, '订阅失败', '');
        }
    }

    /**
     * 意见反馈
     * 
     * @return jsonp
     */
    public function suggestfeedbackAction()
    {
        $callback = $this->get('callback', '');
        $feedback_id = intval($this->get('feedback_id', 0));
        $question_id = intval($this->get('question_id', 0));
        $answer = trim($this->get('answer'));
        $solution = intval($this->get('solution', 0));
        if (!empty($feedback_id) || !empty($question_id) || !empty($answer) || !empty($solution)) {
            $data = IndexData::suggestFeedback($feedback_id, $question_id, $answer, $solution);
            return $this->helpJsonCallbackResult($callback, $data['code'], $data['message'], $data['data']);
        } else {
            return $this->helpJsonCallbackResult($callback, 403, '意见反馈失败', '');
        }
    }

    /*
     * 简单头部
     */
    public function getSimpleHeaderAction()
    {
        $result = array();
        do {
            /* 判断是不是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }

            //获取用户
            $uid = $this->getUid(true);
            if (!$uid) {
                $isLogin = false;
                $username = '';
            } else {
                $isLogin = true;
                $username = $this->_uname;
            }
            //拼接简单头部
            $time = time();
            $tool = array(
                'favorite' => Helpers::url('/home/favorite?t=' . $time), //我的收藏链接
                'coupon' => Helpers::url('/home/coupons?t=' . $time), //我的优惠券链接
                'order' => Helpers::url('/home/orders?t=' . $time), //订单中心连接
                'help' => Helpers::url('/help'),
            );
            if ($isLogin) {
                $tool['user'] = $username;
                $tool['userCenter'] = Helpers::url('/home?t=' . $time);//用户中心链接
                $tool['logout'] = Helpers::url('/logout.html?token=' . $this->_usession); //退出
            } else {
                $tool['login'] = Helpers::url('/signin.html'); //登录链接,已登录不传
                $tool['register'] = Helpers::url('/reg.html'); //注册链接,已登录不传
            }

            $simpleHeader = array(
                'user' => $username,
                'href' => $tool,
                'logo' => array(
                    'img' => 'http://static.yohobuy.com/newheader/img/logo_e.png',
                    'url' => SITE_MAIN
                ),
            );

            $result = array(
                'code' => 200,
                'data' => $simpleHeader
            );
        } while (false);

        $this->echoJson($result);
    }

}