<?php
/**
 *  获取CMS缓存
 */
namespace Home\Model;

class ScmsModel
{
    /**
     *  获取bcat_id
     * @param  [type]  $key  [键]
     * @param  integer $type [取值类型:1-通过tags,2-通过tem_id(楼层类目)]
     * @return [type]        [description]
     */
    public function getBcatId($key, $type=1)
    {
        return $type == 1 ? S_cms('icsales:lie_base_cat:tags', $key, 'bcat_id') : S_cms('icsales:lie_base_cat:tem_id:'.$key);
    }

    /**
     * 获取base数据
     * @param  [type]  $key       [键]
     * @param  string  $limit     [限制数量]
     * @param  integer $type      [取值类型:1-通过bcat_id, 2-通过tem_id,3-通过model_id]
     * @return [type]  $condition [搜索条件,用&连接,如:a=1&b=2]
     * @param  [type]  $table     [表名]
     * @return [type]             [description]
     */
    public function getBase($key, $limit='', $condition='', $type=1, $table='lie_base')
    {
        if ($type == 1) 
            $datas = S_cms('icsales:'.$table.':bcat_id:'.$key, '', '', 'sort');
        else if ($type == 2)
            $datas = S_cms('icsales:'.$table.':tem_id:'.$key, '', '', 'sort');
        else
            $datas = S_cms('icsales:'.$table.':model_id:'.$key, '', '', 'sort');

        if (!$datas) return $datas;

        if ($condition) {
            parse_str($condition, $arr); // 解析条件,输出数组

            $isTrue = true;
            $datas = array_filter($datas, function($base) use ($arr, $isTrue) {
                        foreach ($arr as $k=>$v) {
                            if (isset($base[$k]) && $base[$k] != $v) { // 判断每个搜索条件是否存在且值相等,若不相等,则过滤对应的datas数组值
                                $isTrue = false;
                            }
                        }

                        return $isTrue;
                    });  

            array_multisort($datas); // 重新索引    
        }

        $datas = $limit ? array_slice($datas, 0, $limit) : $datas;

        return $datas;
    }

    /**
     * 获取Base表配置内容
     * @param  [type] $tags  [tags值]
     * @param  string $where [条件]
     * @param  string $limit [限制数量]
     * @return [type]        [description]
     */
    public function getBaseList($tags, $where='', $limit=1)
    {
        $bcat_id = $this->getBcatId($tags); // 分类ID
        return $this->getBase($bcat_id, $limit, $where);
    }

    /**
     * 获取楼层模板
     * @param  [type] $key [键]
     * @return [type]      [description]
     */
    public function getTemplate($key)
    {
        return S_cms('icsales:lie_template:tag:'.$key, '', '', 'sort');
    }

    /**
     * 获取模块
     * @param  [type] $field  [字段值]
     * @param  string $column [指定列]
     * @return [type]         [description]
     */
    public function getModel($field, $column='')
    {
        return $column ? S_cms('icsales:lie_model:model_key', $field, $column) : S_cms('icsales:lie_model:model_key', $field);
    }

    /**
     *  获取导航
     * @param  integer $model_id  [所属模块ID]
     * @param  integer $parent_id [所属父级ID] <先查找模块下所有导航,遍历后,根据nav_id查找对应子级>
     * @return [type]        [description]
     */
    public function getNavigation($model_id, $parent_id=0)
    {
        return $parent_id == 0 ? S_cms('icsales:lie_navigation:model_id:'.$model_id, '', '', 'sort') : S_cms('icsales:lie_navigation:model_id:'.$model_id.':parent_id:'.$parent_id, '', '', 'sort');
    }

    /**
     *  获取帮助中心分类
     * @param  integer $model_id  [所属模块ID]
     * @param  integer $parent_id [所属父级ID] <先查找模块下所有分类,遍历后,根据hccat_id查找对应子级>
     * @return [type]        [description]
     */
    public function getHelpCenterCat($model_id, $parent_id=0)
    {
        return $parent_id == 0 ? S_cms('icsales:lie_help_center_cat:model_id:'.$model_id, '', '', 'sort') : S_cms('icsales:lie_help_center_cat:model_id:'.$model_id.':parent_id:'.$parent_id, '', '', 'sort');
    }

    /**
     * 获取帮助中心内容
     * @param  [type] $hccat_id [帮助中心分类ID]
     * @return [type]           [description]
     */
    public function getHelpCenter($hccat_id)
    {
        return S_cms('icsales:lie_help_center:hccat_id:'.$hccat_id, '', '', 'sort');
    }

    /**
     *  获取底部链接分类
     * @param  integer $fcat_key  [所属模块ID]
     * @param  integer $column    [指定字段]
     * @param  integer $parent_id [所属父级ID] <先查找模块下所有分类,遍历后,根据fcat_id查找对应子级>
     * @return [type]        [description]
     */
    public function getFooterLinkCat($fcat_key, $column='', $parent_id=0)
    {
        return $parent_id == 0 ? S_cms('icsales:lie_footer_link_cat:fcat_key', $fcat_key, $column, 'sort') : S_cms('icsales:lie_footer_link_cat:parent_id:'.$parent_id, '', '', 'sort');
    }

    /**
     * 获取底部链接内容
     * @param  [type] $fcat_id  [帮助中心分类ID]
     * @return [type]           [description]
     */
    public function getFooterLink($fcat_id)
    {
        return S_cms('icsales:lie_footer_link:fcat_id:'.$fcat_id, '', '', 'sort');
    }

    /**
     *  获取页面分类
     * @param  integer $model_id  [所属模块ID]
     * @return [type]        [description]
     */
    public function getPageCat($model_id)
    {
        return S_cms('icsales:lie_page_cat:model_id:'.$model_id);
    }

    /**
     * 获取页面内容
     * @param  [type] $pagecat_id [页面分类ID]
     * @return [type]             [description]
     */
    public function getPage($pagecat_id)
    {
        return S_cms('icsales:lie_page:pagecat_id:'.$pagecat_id);
    }


    /**************************************  信宏泰配置   **************************************/
    /**
     * 获取公司
     * @return [type] [description]
     */
    public function getCompany()
    {
        return S_cms('icsales:xht:lie_company', '', '', 'sort');
    }

    /**
     * 获取公司信息
     * @param  [type] $com_id [公司ID]
     * @return [type]         [description]
     */
    public function getCompanyInfo($com_id)
    {
        return S_cms('icsales:xht:lie_company_info:com_id:'.$com_id, '', '', 'sort');
    }

    /**
     * 获取公司图片
     * @param  [type] $com_id [公司ID]
     * @return [type]         [description]
     */
    public function getCompanyImg($com_id)
    {
        return S_cms('icsales:xht:lie_company_img:com_id:'.$com_id, '', '', 'sort');
    }

}