SearchData.php
5.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
class SearchData extends \LibModels\Wap\Product\SearchData
{
public static $shopsUrl = 'http://101.200.31.165/yohosearch/shops.json';
/**
* 获取搜索的服务地址
*
* 备注:此处是根据环境来确定使用阿里云内网还是外网的URL
*
* @return string
*/
private static function getUrl($type = 'search')
{
defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'developer');
switch (APPLICATION_ENV) {
case 'release':
if($type == 'sort'){
return 'http://100.98.132.63/yohosearch/sortgroup.json';
}elseif($type == 'discount'){
return 'http://100.98.132.63/yohosearch/discount.json';
}elseif($type == 'recent'){
return 'http://100.98.132.63/yohosearch/recent.json';
}elseif($type == 'review'){
}
return 'http://100.98.132.63/yohosearch/search.json';
case 'test':
case 'preview':
case 'developer':
default:
if($type == 'sort'){
return 'http://101.200.31.165/yohosearch/sortgroup.json';
}
elseif($type == 'discount'){
return 'http://101.200.31.165/yohosearch/discount.json';
}
elseif($type == 'recent'){
return 'http://101.200.31.165/yohosearch/recent.json';
}elseif($type == 'review'){
return 'http://itemapi.yohobuy.com/item/item/recentreview';
}
return 'http://101.200.31.165/yohosearch/search.json';
}
}
/**
* 根据分类列表获取商品信息
*
* @param array $params
* @param array $sortList
* @return array
*/
public static function getSearchDataBySort(array $params, array $sortList)
{
$data = array();
foreach ($sortList as $v) {
if(empty($v['viewNum'])){
continue;
}
$searchParams = array_merge($params, $v);
$list = self::searchElasticByCondition($searchParams, true);
$productList = empty($list['data']['product_list']) ? array() : $list['data']['product_list'];
if(count($productList) < $v['viewNum']){
continue;
}
$data = array_merge($data, $productList);
}
return $data;
}
/**
* 根据查询条件查询品类列表
*
* @param string $query 关键字
* @param bool $needAllSort 为1时返回全部分类
* @param bool needSmallSort 为1时返回小分类
* @param string $brand 品牌,查多个品牌以逗号分隔
* @param string $mosort 产品产品大分类ID,查多个大类以逗号分隔
* @param string $misort 产品产品中分类ID,查多个中类以逗号分隔
* @param string $sort 产品产品小分类ID,查多个小类以逗号分隔
* @param string $gender 性别,默认为null,"1"表示男, "2"表示女, "3"表示通用
* @param integer $color 颜色id
* @param integer $size 尺码id
* @param integer $price 价格
* @param integer $style 风格ID
* @param integer $parameter_xxx 属性类型ID与值ID 参数名称格式:parameter_{属性类型ID}={属性值ID},如查询厚度为中“parameter_875=4801”
* @param integer $stocknumber 库存量
* @param integer $shelve_time 时间区间
* @param integer $specialoffer 特价类型
* @param bool $sales 是否销售
* @param bool $promotion 是否为促销品
* @param integer $vdt 是否为促销品
* @param bool $vdt 折扣类型
* @param integer $p_d 促销浮点值
* @param integer $attribute 商品属性 1正常商品 2赠品
* @param integer $limited 是否限量 “N”或“Y”
* @param integer $new 是否新品 “N”或“Y”
* @param integer $status 是否上架
* @param integer $sell_channels 销售平台
* @param integer $p_d_int 促销折扣 int型如7
* @param integer $act_temp 活动模板
* @param integer $act_rec 活动模板是否推荐
* @param integer $act_status 活动模板商品状态
* @param integer $attribute_not 过滤商品属性,attribute_not=2过滤掉赠品
* @param integer $not_* not_字段名,过滤字段
* @return array 搜索到的数据
*/
public static function getClassesData($classes = array(), $cache = false)
{
$classes['sales'] = 'Y'; //在销售商品分类
$classes['status'] = 1; //上架商品分类
$classes['stocknumber'] = 1; //过滤掉已售罄
return Yohobuy::get(self::getUrl('sort'),$classes, $cache);
}
/**
* 获取折扣区间
*/
public static function getDiscount(){
return Yohobuy::get(self::getUrl('discount'));
}
/**
* 获取最新上架
*/
public static function recentShelve(){
return Yohobuy::get(self::getUrl('recent'));
}
/**
* 搜索品牌店铺信息
* @param array $params 参数
* @return array
*/
public static function getShop(array $params)
{
return Yohobuy::get(self::$shopsUrl,$params);
}
/**
* 获取最近浏览记录
* @param int $limit
* @return json
*/
public static function getRecentReview($limit = 0)
{
}
}