<?php namespace LibModels\Web\Product; use Api\Yohobuy; use Api\Sign; /** * FavoriteData * * 收藏相关接口 */ class FavoriteData { const URL_PRODUCT_FAVORITE = 'shops/service/v1/favorite/'; const URL_ARTICLE_FAVORITE = '/guang/api/v1/favorite/'; const URL_ARTICLE_FAVORITE_BRAND = '/guang/service/v2/favorite/toggleBrand'; /** * 根据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); } /** * 取消商品或品牌收藏 * @param type $uid 用户uid * @param type $productId 商品id或品牌id * @param type $bool 商品或品牌 * @return type */ public static function cancelProductFav($uid, $productId, $isBrand = false) { $param = Yohobuy::param(); $param['method'] = 'web.favorite.cancel'; $param['favIds'] = $productId; $param['uid'] = $uid; $param['type'] = $isBrand ? 'brand' : 'product'; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } /** * 根据uid和品牌ID添加或取消收藏品牌 * @param int $uid * @param string $brandId * @return bool */ public static function changeFavoriteBrand($uid, $brandId) { $param = Yohobuy::param(); $param['uid'] = $uid; $param['brand_id'] = $brandId; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::SERVICE_URL. self::URL_ARTICLE_FAVORITE_BRAND, $param); //return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'toggleBrandFav', array($uid, $brandId)); } /** * 根据uid和品牌id判断品牌是否收藏 * @param $uid * @param $brandId * @return bool */ public static function isFavoriteBrand($uid, $brandId) { $param = Yohobuy::param(); $param['uid'] = $uid; $param['brandId'] = $brandId; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE.'getUidBrandFav', $param); // return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidBrandFav', array($uid, $brandId)); } /** * 收藏商品列表 * @param type $uid 用户id * @param type $limit 最多显示500条 * @return type */ public static function getFavoriteProductList($uid, $limit = 500) { $param = Yohobuy::param(); $param['method'] = 'web.favorite.product'; $param['uid'] = $uid; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } /** * 收藏的品牌数据 * * @param int $uid 用户ID * @param int $page 第几页,默认1 * @param int $limit 限制读取的数目,默认10 * @return array 收藏的品牌接口返回的数据 */ public static function favoriteBrandData($uid, $page = 1, $limit = 10) { $param = Yohobuy::param(); $param['method'] = 'app.favorite.brand'; $param['uid'] = $uid; $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } /** * 文章收藏列表 * @param type $uid 用户id * @param type $udid 用户客户端唯一标识 * @param type $page 当前页 * @param type $limit 每页显示数量 * @return type array */ public static function favoriteArticleData($uid, $udid, $page, $limit) { $param = Yohobuy::param(); $param['uid'] = $uid; $param['udid'] = $udid; $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'getUserFavArticleList', $param); } /** * 取消文章收藏 * @param type $article_id 文章id * @param type $uid 用户id * @return type */ public static function changeFavoriteArticle($article_id, $uid) { $param = Yohobuy::param(); $param['uid'] = $uid; $param['article_id'] = $article_id; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'cancelFavorite',$param); } /** * 订阅降价通知(手机通知) * @param type $uid 用户id * @param type $mobile 手机号 * @param type $productId 商品id */ public static function redutionAdd($uid, $mobile, $productId) { $param = Yohobuy::param(); $param['method'] = 'web.redution.add'; $param['uid'] = $uid; $param['mobile'] = $mobile; $param['productId'] = $productId; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } /** * 已订阅降价通知数量 * @param type $uid */ public static function redutionCount($uid) { $param = Yohobuy::param(); $param['method'] = 'web.redution.count'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } /** * 取消订阅通知 * @param type $uid 用户id * @param type $mobile 手机号 * @param type $productId 商品id */ public static function redutionCancel($uid, $productId) { $param = Yohobuy::param(); $param['method'] = 'web.redution.cancel'; $param['uid'] = $uid; $param['productIds'] = $productId; $param['client_secret'] = Sign::getSign($param); return Yohobuy::get(Yohobuy::API_URL, $param); } }