Brands.php 4.79 KB
<?php

namespace Product;

use Plugin\Helpers;
use Plugin\HelperSearch;
use LibModels\Web\Product\BrandData;
use LibModels\Wap\Product\SearchData;
use LibModels\Web\Product\SearchData as WebProduct;

/**
 * 品牌首页模板数据模型
 *
 * @author Administrator
 */
class BrandsModel {

    const URL_BRAND_INDEX = '/product/index/brand';

    public static $shopName;
    public static $home;

    /**
     * 搜索品牌数据
     *
     * @param $condition array
     *            搜索数据的条件
     * @param $options array            
     * @return array
     */
    public static function getBrandSearchData($condition, $options, $domain, $uid, $brandId) {

        // 调用商品搜索接口
        $data = SearchData::searchElasticByCondition($condition);
        //获取品牌banner数据
        $banner = self::getBannerByDomain($domain, $brandId, $uid = '');
        
        if (isset($data['code']) && $data['code'] === 200) {
            //获取分类列表数据
            $param = array();
            $param['brand'] = $condition['brand'];
            $classes = WebProduct::getClassesData($param);
            if (isset($classes['code']) && $classes['code'] === 200) {
                $data['data']['filter']['group_sort'] = $classes['data']['sort'];
            }

            $brandName = self::$shopName;
            $options['brandName'] = $brandName;
            //合并商品搜索数据与品牌banner数据
            $data = array_merge_recursive($data, $banner);
            
            //用户浏览记录
            
            // 组织模板数据
            $list = HelperSearch::getList($data, $options);
            $data = array(
                //初始化js
                'productListPage' => true,
                'list' => $list
            );
        } else {
            $data = array();
        }

        


        //获取品牌系列数据
        $adNav = self::getAdNav($condition['brand']);
        $data['list']['leftContent'][] = array('picLink' => $adNav);







        return $data;
    }

    /**
     * 获取品牌首页banner条
     * @string $domain 品牌域名
     * @int $brandId 品牌id
     * @int $uid 用户id
     * 
     * @return array 品牌banner条数据
     */
    public static function getBannerByDomain($domain, $brandId, $uid = '') {
        // 构造品牌主页url
        self::$home = Helpers::url('', '', $domain) . self::URL_BRAND_INDEX;
        // 根据品牌Id获取品牌banner图
        $bannerImg = BrandData::getBrandBanner($brandId);
        if (isset($bannerImg['data'])) {
            $bannerImg = Helpers::getImageUrl($bannerImg['data']['banner'], '', 150);
        }
        // 根据品牌Id获取品牌(简介)、收藏
        if (isset($uid)) {
            $intro = BrandData::getBrandIntro($brandId, $uid);
        }
        $is_favorite = false;
        $logo = false;
        $shopName = false;

        do {
            if (!isset($intro['data'])) {
                break;
            }
            // 获取是否收藏
            if ($intro['data']['is_favorite'] == 'Y') {
                $is_favorite = true;
            } elseif ($intro['data']['is_favorite'] == 'N') {
                $is_favorite = false;
            }
            // 获取品牌logo
            $logo = Helpers::getImageUrl($intro['data']['brand_ico'], 80, 50);
            // 获取品牌名
            self::$shopName = $intro['data']['brand_name'];
        } while (false);

        // 返回banner数据
        return array(
            'list' => array(
                'brandBanner' => array(
                    'bannerHeight' => '150',
                    'coled' => $is_favorite,
                    'banner' => $bannerImg
                ),
                'shopEntry' => array(
                    'home' => self::$home,
                    'logo' => $logo,
                    'shopName' => self::$shopName,
                    'sort' => array(
                        array(
                            'href' => '',
                            'name' => 'T恤'
                        ),
                        array(
                            'href' => '',
                            'name' => '卫衣'
                        )
                    )
                )
            )
        );
    }

    //获取品牌系列数据
    public static function getAdNav($brandId, $status = 1) {
        //调用接口获得数据
        $advNav = BrandData::getFolderByBrand($brandId, $status);
        $result = array();
        if (isset($advNav['data']) && $advNav['code'] === 200) {
            foreach ($advNav['data'] as $key => $value) {
                $result['list'][$key]['href'] = self::$home . '?folder_id=' . $value['id'];
                $result['list'][$key]['src'] = $value['brand_sort_ico'];
            }
        }
        return $result;
    }

}