Lifestyle.php 1.96 KB
<?php

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

/**
 * 创意生活首页
 */
class LifestyleController extends AbstractAction
{

    // 数据缓存时间
    const DATA_EXPIRE = 3600;
    // 楼层资源的位置码
    const CODE_FLOOR = '61cd852c6afcf60660196154f66a3a62';

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

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

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

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

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

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

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

}