Search.php
4.19 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
<?php
class YHMApi_App_V1_search extends YHMApi_App_V1_Base {
public static function search(array $params, $fields = "*") {
//进行搜索参数转换
if (!empty($params['max_price'])) {
$params['price'] = floatval($params['min_price']) . ',' . floatval($params['max_price']);
}
if (!empty($params['category'])) {
$params['msort'] = $params['category'];
}
if (empty($params['keyword']) || $params['keyword'] == '' || $params['keyword'] == ' ') {
unset($params['keyword']);
}
$params['viewNum'] = $params['num'];
$params['page'] = floor($params['offset'] / $params['num']) + 1;
$params['stocknumber'] = 1;
$params['order_type'] = !empty($params['order_by_type']) && $params['order_by_type'] == 'hot' ? 'hot_number:desc' : 'create_time:desc';
if ($params['gender'] == 1) {
$params['gender'] = '1,3';
} else if ($params['gender'] == 2) {
$params['gender'] = '2,3';
} else if ($params['gender'] == 3) {
unset($params['gender']);
}
if (isset($params['quality_level']) && intval($params['quality_level']) != -1) {
$params['quality'] = $params['quality_level'];
}
if (!empty($params['brand_id']) && intval($params['brand_id']) > 0) {
$params['brand'] = intval($params['brand_id']);
}
if (!empty($params['uid'])) {
$params['searchuid'] = $params['uid'];
}
if (!empty($params['store_type'])) {
$params['storetype'] = $params['store_type'];
}
$resultList = array();
try {
$searchObj = new YHMSearch_Goods();
$skcList = $searchObj->getList($params);
foreach ($skcList as $skc => $goodsName) {
$resultList[] = self::_getGoodsForList($skc);
}
} catch (Exception $ex) {
return self::result(500, $ex->getMessage());
}
return self::result(200, '搜索列表', $resultList);
}
/**
* 搜索卖家
* @param array $params
* @param type $fields
* @return array
*/
public static function seller(array $params, $fields = "*") {
$offset = !empty($params['offset']) ? (int) $params['offset'] : '0';
$num = !empty($params['num']) ? (int) $params['num'] : "10";
$keyword = empty($params['keyword']) ? '' : $params['keyword'];
$selectParams = array(
'keyword' => $keyword,
'viewNum' => $num,
'page' => floor($offset / $num) + 1,
'order_type' => 'star:desc'
);
if (!empty($params['uid'])) {
$selectParams['searchuid'] = $params['uid'];
}
if (!empty($params['store_type'])) {
$selectParams['storetype'] = $params['store_type'];
}
if (empty($params['keyword'])) {
$selectParams['hasstock'] = 1;
$selectParams['hasgoods'] = 1;
}
$storeList = array();
try {
$storeSearch = new YHMSearch_Store();
$storeIdList = $storeSearch->getList($selectParams);
foreach ($storeIdList as $storeId) {
$storeData = self::_getStoreForList($storeId);
$storeList[] = $storeData;
}
} catch (Exception $ex) {
return self::result(500, '搜索服务异常');
}
return self::result(200, "搜索卖家列表", $storeList);
}
public static function prompt(array $params, $fields = "*") {
if (empty($params['keyword'])) {
return self::result(501, '关键词不能为空');
}
$keyword = $params['keyword'];
$retData = array();
try {
$suggestObj = new YHMSearch_Suggest();
$itemList = $suggestObj->getSuggest($keyword);
if (!empty($itemList)) {
foreach ($itemList as $itemData) {
$retData[] = array('keyword' => $itemData['item']);
}
}
} catch (Exception $ex) {
return self::result(500, '搜索服务异常');
}
return self::result(200, "提示列表", $retData);
}
}