ConfigController.class.php 5.32 KB
<?php
/**
 * ConfigController.class.php
 * 【运营管理】应用相关配置读取
 * @author Deepseath
 * @version $Id$
 */

namespace Apicp\Controller\Recommender;

use Common\Common\Setting;
use Common\Common\TaskHelper;
use Common\Service\CommonRecommenderService;
use Common\Model\CommonRecommenderModel;

class ConfigController extends AbstractController
{
    protected $_require_login = false;
    /**
     * 日常任务配置是否开启:是
     */
    const DAILYTASK_IS_OPEN_TRUE = 2;

    /**
     * 获取应用配置信息
     *
     * @desc 【管理后台】获取应用配置信息
     *
     * @param string app:false 读取指定应用模块配置信息,为空则返回全部应用配置信息
     *
     * @return <pre>array(
     *   'News' =>
     *   array (
     *     'open' => 1, // 应用模块是否启用。1=启用;2=未启用
     *     'name' => '新闻', // 应用模块标准名称
     *     'iconApi' => '', // 首页 icon 获取接口 url
     *     'bannerApi' =>
     *     array (
     *       'selectorTitle' => '选择新闻', // 首页条幅接口相关:选择器显示的名称
     *       'categoryUrl' => '', // 首页条幅接口相关:分类获取接口 url
     *       'searchUrl' => '', // 首页条幅接口相关:文章搜索接口 url
     *       'listUrl' => '', // 首页条幅接口相关:文章列表接口 url
     *       'searchTitle' => '搜索新闻标题', // 首页条幅接口相关:文章搜索默认显示 placeholder 文字
     *     ),
     *   ),
     *   'Course' =>
     *   array (
     *     'open' => 1, // 应用模块是否启用。1=启用;2=未启用
     *     'name' => '课程',// 应用模块标准名称
     *     'iconApi' => '', // 首页 icon 获取接口 url
     *     'bannerApi' =>
     *     array (
     *       'selectorTitle' => '选择课程', // 首页条幅接口相关:选择器显示的名称
     *       'categoryUrl' => '', // 首页条幅接口相关:分类获取接口 url
     *       'searchUrl' => '', // 首页条幅接口相关:文章搜索接口 url
     *       'listUrl' => '', // 首页条幅接口相关:文章列表接口 url
     *       'searchTitle' => '搜索课程标题', // 首页条幅接口相关:文章搜索默认显示 placeholder 文字
     *     ),
     *   ),
     *   'Exam' =>
     *   array (
     *     'open' => 1, // 应用模块是否启用。1=启用;2=未启用
     *     'name' => '考试',// 应用模块标准名称
     *     'iconApi' => '', // 首页 icon 获取接口 url
     *     'bannerApi' =>
     *     array (
     *       'selectorTitle' => '选择试题', // 首页条幅接口相关:选择器显示的名称
     *       'categoryUrl' => '', // 首页条幅接口相关:分类获取接口 url
     *       'searchUrl' => '', // 首页条幅接口相关:文章搜索接口 url
     *       'listUrl' => '', // 首页条幅接口相关:文章列表接口 url
     *       'searchTitle' => '搜索试卷名称', // 首页条幅接口相关:文章搜索默认显示 placeholder 文字
     *     ),
     *   ),
     * )</pre>
     */
    public function Index()
    {

        // 请求指定的应用信息
        $app = I('app', null);
        // 定义合法的应用标识名(目录名)
        $appList = [
            'News',
            'Course',
            'Exam'
        ];

        // 获取缓存
//        $set = &Setting::instance();
//        $config = $set->get('Common.appConfig');

        // todo 2018-5-4 14:52:49 tangxingguo 目前标准产品栏目都相同,企业栏目都使用配置文件数据,后续按需求处理
        $config = \Common\Sql\DefaultData::installData();

        // 更名
        foreach ($config as $key => &$item) {
            // 满足展示需求更名为同事圈
            if ($key == 'Workmate') {
                $item['name'] = '同事圈';
                continue;
            }

            $name = $item['name'];
            switch ($name) {
                case '活动中心':
                    $item['name'] = '员圈活动';
                    break;
                case '调研中心':
                    $item['name'] = '培训调研';
                    break;
                default:
                    continue;
            }
        }

        if (!in_array($app, $appList)) {
            $app = null;
        }

        $this->_result = $app === null ?
            // 获取全部应用信息
            $config :
            // 获取指定应用信息
            $config[$app];

        // 获取是否开启任务签到
        $task_helper = &TaskHelper::instance();
        $sign = $task_helper->get_task_sign([
            'app' => 'sign',
            'is_open' => self::DAILYTASK_IS_OPEN_TRUE,
        ]);

        $recommenderService = new CommonRecommenderService();

        // 未开启任务签到
        if (!$sign) {
            // 隐藏栏目列表中的签到
            $recommenderService->update_by_conds(
                ['app_dir' => 'Sign'],
                ['hide' => CommonRecommenderModel::HIDE_YES]
            );
            unset($this->_result['Sign']);
        } else {
            // 开启任务签到
            $recommenderService->update_by_conds(
                ['app_dir' => 'Sign'],
                ['hide' => CommonRecommenderModel::HIDE_NO]
            );
        }

        return $this->_result;
    }
}