Brands.php 7.05 KB
<?php

namespace Product;

use Api\Yohobuy;
use Plugin\HelperSearch;
use LibModels\Web\Product\BrandData;
use Index\HomeModel;
use Product\SearchModel;

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

    //品牌一览资源位CODE码
    const BOYS_BRAND_CODE = '8b16b7baf9a66fbe553a6caa97d2ce2a';
    const GIRLS_BRAND_CODE = 'c95ae9e40f0add10549b819f821ad626';
    const KIDS_BRAND_CODE = '84b7926282fdef92f1039bdcf77c18ba';
    const LIFESTYLE_BRAND_CODE = 'c575c6bfdfa4125fae7d24bbec7119c8';

    /**
     * 搜索品牌数据
     * @param $condition array 搜索数据的条件
     * @param $options array            
     * @return array
     */
    public static function getBrandSearchData($condition, $options)
    {
        // 并行调用品牌相关接口并封装数据
        $data = self::getBrandData($condition, $options);

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

        //获取静态内容(eg:20141219-100447)
        if ($options['node']) {
            $nodeContent = HelperSearch::formatNodeContent($options['node']);
            $data['leftContent'][]['picLink']['list'] = $nodeContent;
        }

        return $data;
    }

    //获取品牌系列数据
    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'] = '?folder_id=' . $value['id'];
                $result['list'][$key]['src'] = $value['brand_sort_ico'];
            }
            $result['picTitle'] = '经典系列';
        }

        return $result;
    }

    /**
     * 根据条件获取搜索数据
     * @param array $customCondition
     * @param array $customOptions
     * @return array
     */
    public static function getBrandData($customCondition = array(), $customOptions = array())
    {
        $urlList = array();

        //获取$condition和$option 筛选条件和排序条件
        $searchCondition = SearchModel::searchCondition($customCondition, $customOptions);

        // 组合搜索商品url
        $urlList['product'] = HelperSearch::getProductUrl($searchCondition['condition']);

        // 组合搜索分类url
        $urlList['sort'] = HelperSearch::getClassesUrl($searchCondition['condition']);

        //组合搜索品牌url
        $urlList['brand'] = HelperSearch::getBrandUrl($customOptions);

        //组合获取品牌banner url
        $urlList['banner'] = HelperSearch::getBannerUrl($customOptions);

        //组合用户浏览记录url
        //$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']);
        //批量调接口
        $result = Yohobuy::getMulti($urlList, array(), true);

        //组织模板数据格式
        $data = HelperSearch::getList($result, $searchCondition['options']);


        return $data;
    }

    /*
     * 获取品牌一览页面,品牌top & 列表
     */

    public static function getBrandView($channel)
    {
        $switchParams = self::switchBrandParams($channel);
        $brandTop = array();
        /*
         * $item1 = array(
          'name' => '所有品牌',
          'src' => $imgsrc,
          'url' => ''
          );
         */
        $brandAds = array();
        $brandList = array();
        $res = BrandData::getTopBanner($switchParams['brandCode'], $switchParams['channelType']);
        if (isset($res['brandTop'][0]['data']) && $res['brandTop'][0]['data']) {
            foreach ($res['brandTop'][0]['data'] as $tk => $tv) {
                $imgUrl = explode("?", $tv['src']);
                $topTmp = array(
                    'name' => $tv['title'],
                    'src' => $imgUrl[0],
                    'url' => $tv['url'],
                    'items' => array()
                );
                $brandTop[$tk] = $topTmp;
            }
        }
        if (isset($res['brandList']['brands']) && $res['brandList']['brands']) {
            foreach ($res['brandList']['brands'] as $lk => $lv) {
                if (isset($lv) && $lv) {
                    $listTmp = array();
                    foreach ($lv as $ltk => $ltv) {
                        $listTmp[$ltk] = array(
                            'name' => $ltv['brand_name'],
                            'key' => $ltv['id']
                        );
                        if ($ltv['is_hot'] == 'Y') {
                            $listTmp[$ltk] += array('hot' => 'hot');
                        }
                    }
                }
                $brandList[$lk] = $listTmp;
            }
        }
        return array(
            'brandTop' => $brandTop,
            'brandList' => $brandList
        );
    }

    /*
     * 获取单个广告浮窗内容
     */
    public static function getBrandInfo($brandId, $uid)
    {
        $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg';
            $data = array(
                'key' => '1000011',
                'icon' => $imgsrc,
                'title' => '优显led触控台灯',
                'content' => '优显led触控台灯优显led触控台灯优显led触控台灯优显led触控台灯',
                'subtitle' => 'AAAAAA',
                'imgs' => array(
                    array(
                        'src' => $imgsrc
                    ),
                    array(
                        'src' => $imgsrc
                    ),
                    array(
                        'src' => $imgsrc
                    )
                )
                    );
        $res = BrandData::getBrandIntro($brandId, $uid);
//if(isset($res['data']) && $res['data']){
//    $data['key']=$brandId;
//    $data['icon']=
//}
        var_dump($res);
        die();
        
    }

    /*
     * 获取品牌一览资源位&channelType
     */

    public static function switchBrandParams($channelStr = 'boys')
    {
        $res = array('channelType' => 1, 'brandCode' => self::BOYS_BRAND_CODE);
        switch ($channelStr) {
            case HomeModel::COOKIE_NAME_BOYS:
                $res['channelType'] = 1;
                $res['brandCode'] = self::BOYS_BRAND_CODE;
                break;
            case HomeModel::COOKIE_NAME_GIRLS:
                $res['channelType'] = 2;
                $res['brandCode'] = self::GIRLS_BRAND_CODE;
                break;
            case HomeModel::COOKIE_NAME_KIDS:
                $res['channelType'] = 3;
                $res['brandCode'] = self::KIDS_BRAND_CODE;
                break;
            case HomeModel::COOKIE_NAME_LIFESTYLE:
                $res['channelType'] = 4;
                $res['brandCode'] = self::LIFESTYLE_BRAND_CODE;
                break;
            default:
                $res['channelType'] = 1;
                $res['brandCode'] = self::BOYS_BRAND_CODE;
                break;
        }
        return $res;
    }

}