Search.php 3.68 KB
<?php
namespace Product;

use Plugin\HelperSearch;
use \LibModels\Web\Product\SearchData;

/**
 * sale首页模板数据模型
 *
 * @name SaleModel
 * @package models
 * @copyright yoho.inc
 * @version 1.0 (2015-12-17 13:54:56)
 * @author sefon
 */
class SearchModel
{

    /**
     * 根据条件获取搜索数据
     *
     * @param $condition 搜索数据的条件
     * @param $options Array([imgSize]
     *            => Array([0] => 235[1] => 314)[minImgSize] => Array([0] => 60[1] => 80)[gender] => 1[needPd] => Y[rowNum] => 5[viewNum] => 60)
     * @author sefon 2015-12-17 16:12:18
     * @return array
     */
    public static function getSearchData($condition, $options)
    {
        $data = array();
        // 调用接口查询商品数据
        $result = SearchData::searchElasticByCondition($condition);
        if (isset($result['code']) && $result['code'] === 200) {
            // 调用分类信息
            $category = SearchData::getClassesData($condition);
            if (isset($category['code']) && $category['code'] === 200) {
                $result['data']['filter']['group_sort'] = $category['data']['sort'];
            }
            // 调用折扣区间
            $discount = SearchData::getDiscount();
            if (isset($discount['code']) && $discount['code'] === 200) {
                $result['data']['filter']['discount'] = $discount['data']['discount'];
            }
            // 调用最新上架
            $recent = SearchData::recentShelve();
            if (isset($discount['code']) && $discount['code'] === 200) {
                $result['data']['filter']['recent'] = $recent['data']['recent'];
            }
            //用户浏览记录
            $result['data']['filter']['review'] = SearchData::getRecentReview();
            // 组织模板数据
            $data = HelperSearch::getList($result, $options);
        }
        return $data;
    }

    /**
     * 搜索页面获取搜索数据
     * @param $condition
     * @param $options
     * @return array
     */
    public static function searchData($condition, $options){
        $data = self::getSearchData($condition, $options);
        //获取品牌店铺信息
        if (isset($condition['query'])) {
            $param['keyword'] = $condition['query'];
            $result = SearchData::getShop($param);
            if (isset($result['code']) && $result['code'] === 200 && isset($result['data']) && !empty($result['data'])) {
                //调用品牌分类
                $class['brand'] = $result['data']['id'];
                $brandSort = SearchData::getClassesData($class);
                $shop = $result['data'];
                if (isset($brandSort['data']['sort']) && !empty($brandSort['data']['sort']))
                $shop['sort'] = $brandSort['data']['sort'];
                $shopEntry = HelperSearch::shop($shop);
            }
        }
        $data['shopEntry'] = isset($shopEntry) ? $shopEntry : array();
        return $data;

    }
    /**
     * 根据product_sn查询产品图片信息
     * @param $product_sn
     * @param $options
     * @author sefon 2015-12-28 18:09:28
     * @return array
     */
    public static function getProductPic($product_sn, $options)
    {
        $condition['query'] = $product_sn;
        //返回搜索条件
        $condition['needFilter'] = 0;
        //获取产品数据
        $data = SearchData::searchElasticByCondition($condition);
        if (isset($data['code']) && $data['code'] === 200 && isset($data['data']['product_list']) && !empty($data['data']['product_list'])) {
            //组织数据结构
            $data = HelperSearch::getProductPic($data['data']['product_list'], $options);
        }
        echo json_encode($data);
    }
}