FavoriteData.php
6.21 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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
use Api\Sign;
/**
* FavoriteData
*
* 收藏相关接口
*/
class FavoriteData
{
const URL_PRODUCT_FAVORITE = 'shops/service/v1/favorite/';
/**
* 根据uid和商品的id查询是否被用户收藏
* @param int $uid
* @param int $productId
* @param boolean $isOnlyUrl 是否指返回链接
* @return boolean 收藏 true 未收藏 false
*/
public static function getUidProductFav($uid, $productId, $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.isFavorite';
$param['id'] = $productId;
$param['uid'] = $uid;
$param['type'] = 'product';
$param['client_secret'] = Sign::getSign($param);
//只是返回链接
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $productSkn));
}
/**
* 根据uid和一组商品的skn列表查询是否被用户收藏
*
* @param int $uid 用户ID
* @param array $productIdList 商品ID列表
* @return boolean 收藏 true,未收藏 false
*/
public static function getUidProductFavList($uid, $productIdList)
{
// $result = array();
//
// foreach ($productSknList as $skn) {
// Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $skn), function($retval) use(&$result, $skn) {
// $result[$skn] = empty($retval['data']) ? false : $retval['data'];
// });
// }
// Yohobuy::yarConcurrentLoop();
//
// return $result;
$urlList = array();
$param = array();
foreach ($productIdList as $productId) {
$param = Yohobuy::param();
$param['method'] = 'app.favorite.isFavorite';
$param['id'] = $productId;
$param['uid'] = $uid;
$param['type'] = 'product';
$param['client_secret'] = Sign::getSign($param);
$urlList[$productId] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::getMulti($urlList);
}
/**
* 根据uid和商品的skn收藏商品
* @param $uid
* @param $productId
* @return bool
*/
public static function addUidProductFav($uid, $productId, $isBrand = false)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.add';
$param['id'] = $productId;
$param['uid'] = $uid;
$param['type'] = $isBrand ? 'brand' : 'product';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 根据uid和商品的skn取消收藏商品
* @param $uid
* @param $productId
* @return bool
*/
public static function delUidProductFav($uid, $productId, $isBrand = false)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.cancel';
$param['fav_id'] = $productId;
$param['uid'] = $uid;
$param['type'] = $isBrand ? 'brand' : 'product';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 根据uid和商品的skn收藏或取消收藏商品
* @param $uid
* @param $productSkn
* @return bool
*/
public static function changeFavoriteProduct($uid, $productSkn)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'toggleProduct', array($uid, $productSkn));
}
/**
* 根据uid和商品的skn添加或取消收藏品牌
* @param $uid
* @param $productSkn
* @return bool
*/
public static function changeFavoriteBrand($uid, $productSkn)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'toggleBrandFav', array($uid, $productSkn));
}
/**
* 根据uid和品牌id判断品牌是否收藏
* @param $uid
* @param $brandId
* @return bool
*/
public static function isFavoriteBrand($uid, $brandId)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidBrandFav', array($uid, $brandId));
}
/**
* 取用户否喜欢商品和品牌状态
*
* @param string $uid
* @param string $productSkn
* @param string $brandId
* @return array
*/
public static function getProductAndBrandByUid($uid, $productSkn, $brandId)
{
$result = array('product' => false, 'brand' => false);
if (!empty($uid)) {
//获取用户是否喜欢商品
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $productSkn), function($retval) use(&$result) {
$result['product'] = $retval['code'] == 200 ? true : false;
});
//获取用户是否喜欢品牌
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidBrandFav', array($uid, $brandId), function($retval) use(&$result) {
$result['brand'] = $retval['code'] == 200 ? true : false;
});
Yohobuy::yarConcurrentLoop();
}
return $result;
}
/**
* 收藏的商品数据
*
* @param int $uid 用户ID
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @return array 收藏的商品接口返回的数据
*/
public static function favoriteProductData($uid, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.product';
$param['uid'] = $uid;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}