Girls.php 2 KB
<?php

use Action\AbstractAction;
use LibModels\Wap\Home\IndexData;
use Plugin\DataProcess\FloorProcess;
use Configs\CacheConfig;

/**
 * 女生首页
 */
class GirlsController extends AbstractAction
{

    // 数据缓存时间
    const DATA_EXPIRE = 3600;
    // 楼层资源的位置码
    const CODE_FLOOR = '189b6686065dbd6755dd6906cf03c002';
    // 底部广告的位置码
    const CODE_BOTTOM_BANNER = '8c8bd1b89a22e5895f05882e0825b493';

    /**
     * 女生首页
     */
    public function indexAction()
    {
        // 设置网站标题
        $this->setTitle('女生首页');
        // 显示侧边栏
        $this->setNavSide();
        // 设置顶部信息(搜索)
        $this->setHomeChannelHeader();

        $data = array();
        $data['grilsHomePage'] = true;
        $data['maybeLike'] = true;

        do {
            // 先尝试获取一级缓存(master), 有数据则直接返回.
            $data['content'] = $this->getCache(CacheConfig::KEY_ACTION_GIRLS_INDEX, true);
            if (!empty($data['content'])) {
                break;
            }

            // 调用接口获取楼层数据, 并封装成模板渲染需要的数据格式
            $channelData = IndexData::getResourceData('2,3', self::CODE_FLOOR);
            if (isset($channelData['code']) && $channelData['code'] == 200) {
                $data['content'] = FloorProcess::getContent($channelData['data']);
            }

            // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
            if (!empty($data['content'])) {
                $this->setCache(CacheConfig::KEY_ACTION_GIRLS_INDEX, $data['content'], self::DATA_EXPIRE); // 缓存1小时
                break;
            }

            // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
            $data['content'] = $this->getCache(CacheConfig::KEY_ACTION_GIRLS_INDEX, false);
            
        } while (false);

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

}