Recom.php 6.73 KB
<?php

use Action\AbstractAction;
use LibModels\Wap\Product\RecomData;
use Plugin\Helpers;

/**
 * 推荐相关的控制器
 */
class RecomController extends AbstractAction
{

    /**
     * 你可能喜欢的BOYS或GIRLS的商品列表
     * 
     * @param string gender 1,3表示男, 2,3表示女
     * @param int page 分页的页码
     * @return html
     */
    public function maylikeAction()
    {
        do {
            /* 判断是否是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }

            /* 判断分页参数是否有效 */
            $page = $this->get('page', 1);
            if (!is_numeric($page)) {
                break;
            }

            /* 取可能喜欢的数据 */
            $recom = array();
            $gender = $this->get('gender', '1,3');
            // 女
            if ($gender === '2,3') {
                $recom = RecomData::mayLike('2,3', 2);
            }
            // 男
            else {
                $recom = RecomData::mayLike('1,3', 1);
            }

            /* 判断是否有内容返回 */
            if (empty($recom['data']['product_list'])) {
                break;
            }

            /* 判断是否已没有数据 */
            if (intval($page) > intval($recom['data']['page_total'])) {
                break;
            }

            /* 构建商品数据 */
            $data = array();
            foreach ($recom['data']['product_list'] as $value) {
                $data['goods'][] = Helpers::formatProduct($value, true, true, true, 276, 366);
            }
            $this->_view->display('maylike', $data);
        } while (false);

        echo ' ';
    }

    /**
     * 你可能喜欢的潮童的商品列表
     * 
     * @param int page 分页的页码
     * @return html
     */
    public function maylikeKidsAction()
    {
        do {
            /* 判断是否是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }

            /* 判断分页参数是否有效 */
            $page = $this->get('page', 1);
            if (!is_numeric($page)) {
                break;
            }

            /* 取可能喜欢的数据 */
            $recom = RecomData::mayLikeKids($page);
            if (empty($recom['data']['product_list'])) {
                break;
            }

            /* 判断是否已没有数据 */
            if (intval($page) > intval($recom['data']['page_total'])) {
                break;
            }

            /* 构建模板需要的商品数据 */
            $data = array();
            foreach ($recom['data']['product_list'] as $value) {
                $data['goods'][] = Helpers::formatProduct($value, true);
            }
            $this->_view->display('maylike', $data);
            
        } while (false);

        echo ' ';
    }

    /**
     * 你可能喜欢的创意生活的新品到着和人气单品列表
     * 
     * @return html
     */
    public function maylikeLifeAction()
    {
        do {
            /* 判断是否是AJAX请求 */
            if (!$this->isAjax()) {
                break;
            }
            
            /* 创意生活只有一页数据 */
            $page = $this->get('page', 1);
            if (intval($page) > 1) {
                break;
            } 

            /* 取可能喜欢的数据 */
            $recom = RecomData::mayLikeLifestyle();
            
            /* 构建人气单品数据 */
            if (empty($recom['top']['data']['product_list'])) {
                break;
            }
            
            $data = array();
            
            $build = array();
            $build['show'] = true;
            foreach ($recom['top']['data']['product_list'] as $value) {
                $build['goods'][] = Helpers::formatProduct($value, true, false, false);
            }
            $data['goodsContainer'][] = $build;

            /* 构建新品到着数据 */
            if (empty($recom['new']['data']['product_list'])) {
                break;
            }
            $build = array();
            $build['show'] = true;
            foreach ($recom['new']['data']['product_list'] as $value) {
                $build['goods'][] = Helpers::formatProduct($value, true, false, false);
            }
            $data['goodsContainer'][] = $build;

//            if (empty($recom['data']['product_list'])) {
//                break;
//            }
//
//            /* 构建模板需要的商品数据 */
//            $data = array();
//            $build = array();
//            if (!empty($recom['data']['product_list']['top'])) {
//                $build = array();
//                $build['show'] = true;
//                foreach ($recom['data']['product_list']['top'] as $value) {
//                    $build['goods'][] = Helpers::formatProduct($value, true);
//                }
//                $data['goodsContainer'][] = $build;
//            }
//            if (!empty($recom['data']['product_list']['new'])) {
//                $build = array();
//                foreach ($recom['data']['product_list']['new'] as $value) {
//                    $build['show'] = false;
//                    $build['goods'][] = Helpers::formatProduct($value, true);
//                }
//                $data['goodsContainer'][] = $build;
//            }

            $this->_view->display('maylikelife', $data);
            
        } while (false);

        echo ' ';
    }

//    /**
//     * 你可能喜欢的
//     * 
//     * 备注:
//     * 调用位于男生(BOYS),女生(GIRLS),潮童(KIDS),创意生活(LifeStyle)页面的底部.
//     * 调用方式为AJAX,需要用JS遍历该数据集,替换图片URL地址中的{width},{height},{mode}.
//     * JS替换示例: str.replace("{width}", 300).replace("{height}", 300).replace("{mode}", 2);
//     * 
//     * @param string gender "1,3"表示男, "2,3"表示女, 当channel为3时该参数可不传
//     * @param string channel 1表示男, 2表示女, 3表示潮童
//     * @return json
//     */
//    public function maylikeAction()
//    {
//        if ($this->isAjax()) {
//            $data = '';
//            $gender = $this->get('gender', '1,3');
//            $channel = $this->get('channel', '1');
//
//            switch (strval($channel)) {
//                case '1': // 男(Boys)
//                case '2': // 女(Girls)
//                    $data = RecomData::mayLike($gender, $channel);
//                    break;
//                case '3': // 潮童(Kids)
//                    $data = RecomData::mayLikeKids();
//                    break;
//                case '4': // 创意生活(LifeStyle)
//                    $data = RecomData::mayLikeLifestyle();
//                    break;
//            }
//
//            $this->echoJson($data);
//        }
//    }
}