Authored by hf

code review by fei.hong: do merge fixes bug codes

Too many changes to show.

To preserve performance only 21 of 21+ files are displayed.

... ... @@ -414,8 +414,8 @@ class AbstractAction extends Controller_Abstract
* 设置网站SEO的描述内容
*
* @param string $description 描述内容
* @param bool $showMore 是否显示更多内容
* @param string $sign 连接的字符串
* @param bool $showMore 是否显示更多内容
* @return void
*/
protected function setDescription($description, $showMore = true, $sign = ' ')
... ... @@ -429,10 +429,10 @@ class AbstractAction extends Controller_Abstract
*
* @param string $title 头部标题
* @param mixed $backUrl 返回的链接
* @param boolean $navBtn 是否显示右上角导航
* @param string $homeUrl 返回首页的链接
* @return void
*/
protected function setNavHeader($title = '', $backUrl = true, $navBtn = true)
protected function setNavHeader($title = '', $backUrl = true, $homeUrl = '/', $navBtn = false)
{
$header = array();
... ... @@ -450,16 +450,11 @@ class AbstractAction extends Controller_Abstract
if (!empty($title)) {
$header['navTitle'] = $title;
}
/*if (!empty($homeUrl)) {
if (!empty($homeUrl)) {
$header['navHome'] = $homeUrl . '?go=1&t=' . time();
}*/
}
if ($navBtn) {
$header['navBtn'] = array(
'indexUrl' => Helpers::url('/?go=1'), //首页
'categoryUrl' => Helpers::url('/cate'), // 分类
'shoppingCartUrl' => Helpers::url('/cart/index/index'), // 购物车
'mineUrl' => Helpers::url('/home'), // 我的
);
$header['navBtn'] = $navBtn;
}
// 默认使用男生的头部
... ...
... ... @@ -40,10 +40,10 @@ class HuodongAction extends Controller_Abstract
* @var array
*/
protected $_data;
/**
* 是否是APP访问
*
*
* @var bool
*/
protected $_isApp;
... ... @@ -65,7 +65,7 @@ class HuodongAction extends Controller_Abstract
if (isset($config->css->url)) {
$this->_view->assign('imgUrl', $config->img->url);
}
$this->_isApp = (null !== $this->get('app_version') || null !== $this->get('uid'));
}
... ...
... ... @@ -9,6 +9,7 @@
* @version 1.0 (2015-9-15 11:55:25)
* @author fei.hong <fei.hong@yoho.cn>
*/
namespace Action;
use Yaf\Controller_Abstract;
... ... @@ -17,6 +18,8 @@ use WebPlugin\Cache;
use WebPlugin\Helpers;
use Hood\Session;
use WebPlugin\Mobile;
use Api\Yohobuy;
use LibModels\Web\Passport\LoginData;
class WebAction extends Controller_Abstract
{
... ... @@ -49,10 +52,11 @@ class WebAction extends Controller_Abstract
*/
public function init()
{
if (!$this->isAjax()) {
$isAjax = $this->isAjax();
if (!$isAjax) {
Mobile::isGoMobile();
}
$this->_request = $this->getRequest();
// 设置环境变量
... ... @@ -75,6 +79,43 @@ class WebAction extends Controller_Abstract
$this->_useSession = true;
break;
}
//自动登录
if (!$isAjax) {
$this->autoLogin();
}
}
/**
* 自动登录
*/
protected function autoLogin()
{
$uid = $this->getUid(true);
$isRemember = $this->getCookie('isRemember');
$accountKey = $this->getCookie('remem');
if (!$uid && $isRemember && $accountKey) {
$accountInfo = $this->getCache($accountKey);
$shoppingKey = Helpers::getShoppingKeyByCookie();
$res = LoginData::signin($accountInfo['area'], $accountInfo['account'], $accountInfo['password'], $shoppingKey);
if (isset($res['code']) && $res['code'] == 200 && !empty($res['data']['uid'])) {
$refer = rawurldecode($this->getCookie('refer', ''));
if (empty($refer) || strstr($refer, 'signin.html') || strstr($refer, 'passport/')) {
$refer = SITE_MAIN;
}
$token = Helpers::makeToken($res['data']['uid']);
$this->setSession('_TOKEN', $token);
$this->setSession('_LOGIN_UID', $res['data']['uid']);
$this->setCookie('_TOKEN', $token);
$goUrl = Helpers::syncUserSession($res['data']['uid'], $refer);
$this->go($goUrl);
}
else {
//登录失败-清空remem
$this->setCookie('isRemember', false);
$this->setCookie('remem', '');
}
}
}
/**
... ... @@ -167,14 +208,14 @@ class WebAction extends Controller_Abstract
protected function returnJson($code, $message, $data)
{
headers_sent() || header('Content-Type: application/json; charset=utf-8;');
return json_encode(array(
'code' => $code,
'message' => $message,
'data' => $data,
));
}
/**
* JSON输出
*
... ... @@ -185,11 +226,11 @@ class WebAction extends Controller_Abstract
protected function helpJsonResult($code, $message = '', $data = null)
{
header('Content-Type: application/json; charset=utf-8;');
echo json_encode(array('code' => $code, 'message' => $message, 'data' => $data));
exit();
}
/**
* JSONP Callback输出, 用于远程调用
*
... ... @@ -201,14 +242,13 @@ class WebAction extends Controller_Abstract
protected function helpJsonCallbackResult($callbackString, $code, $message = '', $data = null)
{
header('Content-Type: application/json; charset=utf-8;');
echo $callbackString , '(';
echo $callbackString, '(';
echo json_encode(array('code' => $code, 'message' => $message, 'data' => $data));
echo ')';
exit();
}
/**
* 判断是不是AJAX请求
*
... ... @@ -292,7 +332,8 @@ class WebAction extends Controller_Abstract
{
if ($isMaster) {
return Cache::get($key, 'master');
} else {
}
else {
return Cache::get($key, 'slave');
}
}
... ... @@ -320,8 +361,15 @@ class WebAction extends Controller_Abstract
public function getSession($name)
{
if ($this->_useSession) {
return Session::start('www_yohobuy_session', null, 'yohobuy.com')->__get($name);
} else {
//windows
if (DIRECTORY_SEPARATOR === '\\') {
return Session::fileStart('www_yohobuy_session')->__get($name);
}
else {//linux
return Session::start('www_yohobuy_session', null, 'yohobuy.com')->__get($name);
}
}
else {
return '';
}
}
... ... @@ -354,14 +402,15 @@ class WebAction extends Controller_Abstract
if ($token === Helpers::makeToken($cookieList[1])) {
$this->_uid = $cookieList[1];
}
} else {
}
else {
$this->_uid = $cookieList[1];
}
$this->_uname = $cookieList[0];
$this->_usession = $cookieList[3];
$this->_vip = $cookieList[2];
}
}
}
// 新的, 如果老站没有同步成功,再尝试从SESSION获取
elseif ($useSession) {
$uid = $this->getSession('_LOGIN_UID');
... ... @@ -380,14 +429,17 @@ class WebAction extends Controller_Abstract
*/
protected function getUdid()
{
$udid = '';
$realIP = $this->_request->getServer('HTTP_X_REAL_IP');
if ($realIP) {
$udid = md5($realIP);
} else {
$realIP = $this->_request->getServer('REMOTE_ADDR', '');
$udid = md5($realIP);
$udid = $this->getCookie('suid');
if (empty($udid)) {
$realIP = $this->_request->getServer('HTTP_X_REAL_IP');
if ($realIP) {
$udid = md5($realIP);
}
else {
$realIP = $this->_request->getServer('REMOTE_ADDR', '');
$udid = md5($realIP);
}
}
return $udid;
... ... @@ -401,6 +453,7 @@ class WebAction extends Controller_Abstract
* @param bool $showMore 是否显示更多内容
* @return void
*/
protected function setTitle($title, $showMore = false, $sign = '')
{
$this->_view->assign('title_more', $showMore);
... ... @@ -464,7 +517,7 @@ class WebAction extends Controller_Abstract
header('Expires: ' . $time);
}
/**
* 设置头部
*
... ... @@ -473,24 +526,82 @@ class WebAction extends Controller_Abstract
*/
protected function setWebNavHeader($channel = '')
{
if(!empty($channel)) {//设置频道
\Index\HomeModel::setSwitchToCookie($channel);
} else {
$channel = \Index\HomeModel::getSwitchChannel();
if (!empty($channel)) {//设置频道
//\Index\HomeModel::setSwitchToCookie($channel);
}
if(APPLICATION_ENV == 'production' || APPLICATION_ENV == 'preview') {
$apiDomain = 'http://api.open.yohobuy.com';
} else {
$apiDomain = 'http://test.open.yohobuy.com';
else {
$channel = \Index\HomeModel::getSwitchChannel();
}
$apiDomain = $this->getApiDomain();
$header = array(
'navbars'=> \Index\HomeModel::getNavBars($channel),
'gobytype'=> 'gobuy'.$channel,
'searchcate'=>'searchcate'.$channel,
'header'=> true,
'apiDomain'=> $apiDomain
'navbars' => \Index\HomeModel::getNavBars($channel),
'gobytype' => 'gobuy' . $channel,
'searchcate' => 'searchcate' . $channel,
'header' => true,
'apiDomain' => $apiDomain
);
$this->_view->assign('headerdata', $header);
}
}
\ No newline at end of file
/**
* 默认简单头部
*
* @return array
*/
public function setSimpleHeader()
{
//拼接简单头部
$radomNum = time();
$apiDomain = $this->getApiDomain();
$this->_view->assign('simpleHeader', array(
'logo' => array(
'img' => 'http://static.yohobuy.com/newheader/img/logo_e.png',
'url' => SITE_MAIN
),
'tool' => array(
'favoriteHref' => Helpers::url('/home/favorite?t=' . $radomNum), //我的收藏链接
'couponHref' => Helpers::url('/home/coupons?t=' . $radomNum), //我的优惠券链接
'orderHref' => Helpers::url('/home/orders?t=' . $radomNum), //订单中心连接
'userCenter' => Helpers::url('/home?t=' . $radomNum),
'helpHref' => Helpers::url('/help'),
'loginHref' => Helpers::url('/signin.html'), //登录链接,已登录不传
'registerHref' => Helpers::url('/reg.html'), //注册链接,已登录不传
),
'simpleHeader' => true,
'apiDomain' => $apiDomain,
));
}
/**
* 通过当前用户审判是否跳到登录
*
* @param int $useSession (true:从服务端session中检查, false:从客户端cookie中检查)
* @return uid/跳转链接
*/
protected function auditJumpLogin($useSession = true)
{
$uid = $this->getUid($useSession);
if (!$uid) {
$this->go(Helpers::url('/signin.html', array('refer' => $this->server('HTTP_REFERER', SITE_MAIN))));
}
else {
return $uid;
}
}
/**
* 获取登录接口域名
* @return string
*/
protected function getApiDomain()
{
if (APPLICATION_ENV == 'production' || APPLICATION_ENV == 'preview') {
$apiDomain = Yohobuy::API_LOGIN_URL;
}
else {
$apiDomain = Yohobuy::API_LOGIN_URL_TEST;
}
return $apiDomain;
}
}
... ...
<?php
/**
* 有货相关接口类
*
... ... @@ -17,32 +16,44 @@ use Plugin\Cache;
class Yohobuy
{
/* 正式环境 */
// php API
// php API
// const API_URL = 'http://api2.open.yohobuy.com/';
// const API_URL2 = 'http://api.open.yohobuy.com/';
// const SERVICE_URL = 'http://service.api.yohobuy.com/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
//java API
const API_URL = 'http://apih5.yoho.cn/';
const API_URL2 = 'http://apih5.yoho.cn/';
const SERVICE_URL = 'http://serviceh5.yoho.cn/';
const YOHOBUY_URL = 'http://www.yohobuy.com/';
const API_OLD = 'http://api2.open.yohobuy.com/';
/* 测试环境 */
// const API_URL = 'http://testapi.yoho.cn:28078/'; // 'http://192.168.102.205:8080/gateway/'
// const SERVICE_URL = 'http://testservice.yoho.cn:28077/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://test2.open.yohobuy.com/';
/* 预览环境 */
//java API
// const API_URL = 'http://apih5.yoho.cn/';
// const API_URL2 = 'http://apih5.yoho.cn/';
// const SERVICE_URL = 'http://serviceh5.yoho.cn/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://api2.open.yohobuy.com/';
/* 预览环境 java API */
// const API_URL = 'http://preapi.yoho.cn/';
// const API_URL2 = 'http://preapi.yoho.cn/';
// const SERVICE_URL = 'http://preservice.yoho.cn/';
// const SERVICE_URL = 'http://serviceh5.yoho.cn/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://api2.open.yohobuy.com/';
/* 测试环境 java API*/
const API_URL = 'http://testapi.yoho.cn:28078/'; // 'http://devapi.yoho.cn:58078/';
const DEV_API_URL = 'http://devapi.yoho.cn:58078/';
const SERVICE_URL = 'http://testservice.yoho.cn:28077/'; // 'http://devservice.yoho.cn:58077/';
const YOHOBUY_URL = 'http://www.yohobuy.com/';
const API_OLD = 'http://test2.open.yohobuy.com/';
/* 测试环境 php API*/
// const API_URL = 'http://test2.open.yohobuy.com/';
// const SERVICE_URL = 'http://test.service.api.yohobuy.com/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://api2.open.yohobuy.com/';
/**
* 登录老接口Api配置
*/
const API_LOGIN_URL = 'http://api.open.yohobuy.com';
const API_LOGIN_URL_TEST = 'http://test.open.yohobuy.com';
/**
* 私钥列表
*
... ... @@ -66,6 +77,7 @@ class Yohobuy
}
// 苹果IPAD
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'iPad')) {
return 'ipad';
}
elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'android')) {
... ... @@ -146,7 +158,7 @@ class Yohobuy
* @param int $timeout 超时时间
* @return mixed
*/
public static function get($url, $data = array(), $cache = false, $returnJson = false, $timeout = 5)
public static function get($url, $data = array(), $cache = false, $returnJson = false, $timeout = 5, $userAgent = null)
{
// 销毁私钥参数
if (isset($data['private_key'])) {
... ... @@ -154,7 +166,7 @@ class Yohobuy
}
if (!empty($data)) {
$url = self::httpBuildQuery($url, $data);
}
} //echo $url;
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
// 先尝试获取一级缓存(master), 有数据则直接返回.
... ... @@ -163,12 +175,13 @@ class Yohobuy
return $result;
}
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
//curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (!empty($userAgent)) {
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
}
$result = curl_exec($ch);
if (!$returnJson && !empty($result)) {
$result = json_decode($result, true);
... ... @@ -206,14 +219,13 @@ class Yohobuy
public static function post($url, $data = array(), $returnJson = false, $timeout = 10, $header = array(), $cookie = array())
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
if (!empty($header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
} else {
curl_setopt($ch, CURLOPT_HEADER, 0);
}
if (!empty($cookie)) {
$cookie_str = array();
foreach ($cookie as $key => $val) {
... ... @@ -251,9 +263,10 @@ class Yohobuy
* @param array $options CURL设置项
* @parma mixed $cache 控制是否启用接口数据的缓存(时间单位为秒). 如3600表示缓存1小时, false表示不缓存
* @param int $timeout 超时时间,单位是秒
* @param boolean $isOriginalData 是否原始数据返回 (默认false, 只返回data数据)
* @return array
*/
public static function getMulti($urlList = array(), $options = array(), $cache = false, $timeout = 5)
public static function getMulti($urlList = array(), $options = array(), $cache = false, $timeout = 5, $isOriginalData = false)
{
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
... ... @@ -323,11 +336,15 @@ class Yohobuy
}
$response = json_decode($data, true);
if (empty($response['data'])) {
continue;
if(!$isOriginalData) {//只返回data数据
if (!isset($response['data'])) {
continue;
}
$result[$name] = $response['data'];
}
else {
$result[$name] = $response;
}
$result[$name] = $response['data'];
curl_multi_remove_handle($mh, $ch[$name]);
curl_close($ch[$name]);
}
... ... @@ -403,7 +420,7 @@ class Yohobuy
* @see http://php.net/manual/zh/class.yar-concurrent-client.php
* @param string $uri
* @param string $method
* @param array $parameters
* @param array $parameter
* @param callable $callback
* @param int $timeout
* @return void
... ... @@ -468,5 +485,4 @@ class Yohobuy
return $result;
}
}
... ...
<?php
/**
* 有货相关接口类
*
* @name Yohobuy
* @package library/Api
* @copyright yoho.inc
* @version 1.0 (2015-9-30 16:42:51)
* @author fei.hong <fei.hong@yoho.cn>
*/
namespace Api;
use Plugin\Cache;
class YohobuyH5
{
/* 正式环境 */
// php API
// const API_URL = 'http://api2.open.yohobuy.com/';
// const API_URL2 = 'http://api.open.yohobuy.com/';
// const SERVICE_URL = 'http://service.api.yohobuy.com/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
//java API
const API_URL = 'http://apih5.yoho.cn/';
const API_URL2 = 'http://apih5.yoho.cn/';
const SERVICE_URL = 'http://serviceh5.yoho.cn/';
const YOHOBUY_URL = 'http://www.yohobuy.com/';
const API_OLD = 'http://api2.open.yohobuy.com/';
/* 测试环境 */
// const API_URL = 'http://testapi.yoho.cn:28078/'; // 'http://192.168.102.205:8080/gateway/'
// const SERVICE_URL = 'http://testservice.yoho.cn:28077/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://test2.open.yohobuy.com/';
/* 预览环境 */
// const API_URL = 'http://preapi.yoho.cn/';
// const API_URL2 = 'http://preapi.yoho.cn/';
// const SERVICE_URL = 'http://preservice.yoho.cn/';
// const YOHOBUY_URL = 'http://www.yohobuy.com/';
// const API_OLD = 'http://api2.open.yohobuy.com/';
/**
* 私钥列表
*
* @var array
*/
public static $privateKeyList = array(
'android' => 'fd4ad5fcfa0de589ef238c0e7331b585',
'iphone' => 'a85bb0674e08986c6b115d5e3a4884fa',
'ipad' => 'ad9fcda2e679cf9229e37feae2cdcf80',
'web' => '0ed29744ed318fd28d2c07985d3ba633',
);
/**
* 取得当前的客户端类型
*/
public static function clientType()
{
// 苹果设备
if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone')) {
return 'iphone';
}
// 苹果IPAD
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'iPad')) {
return 'ipad';
}
elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'android')) {
return 'android';
}
// 其它
else {
return 'android';
}
}
/**
* 取得当前的IP地址
*
* @param bool $int 返回int类型的ip地址,默认是
* @return mixed 当前的IP地址
*/
public static function ip($int = true)
{
if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']) {
$onlineip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) {
$onlineip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $int ? ip2long($onlineip) : $onlineip;
}
/**
* 取得公共的参数
*
* @return array
*/
public static function param()
{
$clientType = self::clientType();
$param = array(
'app_version' => '3.8.2',
'client_type' => $clientType,
'os_version' => 'yohobuy:h5',
'private_key' => self::$privateKeyList[$clientType],
'screen_size' => '720x1280',
'v' => '7',
);
return $param;
}
/**
* 构建URL
*
* @param string $url
* @param array $data
* @return string
*/
public static function httpBuildQuery($url, $data)
{
// 销毁私钥参数
if (isset($data['private_key'])) {
unset($data['private_key']);
}
if (strstr($url, '?') !== false) {
$url .= '&' . http_build_query($data, null, '&');
} else {
$url .= '?' . http_build_query($data, null, '&');
}
return $url;
}
/**
* get方式调用接口
*
* @param string $url 接口URL
* @param array $data 参数列表
* @parma mixed $cache 控制是否启用接口数据的缓存(时间单位为秒). 如3600表示缓存1小时, false表示不缓存
* @param bool $returnJson 控制是否返回json格式数据
* @param int $timeout 超时时间
* @return mixed
*/
public static function get($url, $data = array(), $cache = false, $returnJson = false, $timeout = 5)
{
// 销毁私钥参数
if (isset($data['private_key'])) {
unset($data['private_key']);
}
if (!empty($data)) {
$url = self::httpBuildQuery($url, $data);
}
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
// 先尝试获取一级缓存(master), 有数据则直接返回.
$result = Cache::get($url, 'master');
if (!empty($result)) {
return $result;
}
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
//curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (!$returnJson && !empty($result)) {
$result = json_decode($result, true);
}
curl_close($ch);
$data = array();
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
// 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
if (empty($result)) {
$result = Cache::get($url, 'slave');
}
// 接口调用成功时,这里会设置一级(master)和二级(slave)的缓存数据.
else {
Cache::set($url, $result, $cache);
}
}
return $result;
}
/**
* post提交数据
*
* @param string $url 接口URL
* @param array $data 参数列表
* @param bool $returnJson 控制是否返回json格式数据
* @param int $timeout 超时时间
* @param array $header
* @param array $cookie
* @return mixed
*/
public static function post($url, $data = array(), $returnJson = false, $timeout = 10, $header = array(), $cookie = array())
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
if (!empty($header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
} else {
curl_setopt($ch, CURLOPT_HEADER, 0);
}
if (!empty($cookie)) {
$cookie_str = array();
foreach ($cookie as $key => $val) {
$cookie_str[] = urlencode($key) . '=' . urlencode($val);
}
curl_setopt($ch, CURLOPT_COOKIE, implode(';', $cookie_str));
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 YOHOWEB');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
// 销毁私钥参数
if (isset($data['private_key'])) {
unset($data['private_key']);
}
if (!empty($data)) {
$str = http_build_query($data, null, '&');
// 新加支持application/x-www-form-urlencoded调用方式
//curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $str);
}
$result = curl_exec($ch);
if (!$returnJson && !empty($result)) {
$result = json_decode($result, true);
}
curl_close($ch);
$data = array();
return $result;
}
/**
* 批量调用接口
*
* @param array $urlList 接口列表
* @param array $options CURL设置项
* @parma mixed $cache 控制是否启用接口数据的缓存(时间单位为秒). 如3600表示缓存1小时, false表示不缓存
* @param int $timeout 超时时间,单位是秒
* @return array
*/
public static function getMulti($urlList = array(), $options = array(), $cache = false, $timeout = 5)
{
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
$key = md5(implode(',', array_values($urlList)));
// 先尝试获取一级缓存(master), 有数据则直接返回.
$result = Cache::get($key, 'master');
if (!empty($result)) {
return $result;
}
}
$result = array();
$response = array();
$running = 0;
$data = '';
$error = '';
$defaultOptions = array(
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => $timeout,
CURLOPT_TIMEOUT => $timeout,
CURLOPT_NOSIGNAL => 1, //忽略所有的curl传递给php的信号,减少并发crash
);
$mh = curl_multi_init();
$ch = array();
// 应用CURL配置
if (empty($options)) {
$options = $defaultOptions;
} else {
$options = array_merge($defaultOptions, $options);
}
// 添加子链接句柄
foreach ($urlList as $name => $api) {
$ch[$name] = curl_init($api);
curl_setopt_array($ch[$name], $options);
curl_multi_add_handle($mh, $ch[$name]);
$result[$name] = array();
}
// 调用API接口
do {
do {
$status = curl_multi_exec($mh, $running);
} while ($status == CURLM_CALL_MULTI_PERFORM);
if ($status != CURLM_OK) {
break;
}
if ($running > 0) {
curl_multi_select($mh, 0.5);
}
} while ($running);
// 获取API接口响应的结果
foreach ($urlList as $name => $api) {
$error = curl_error($ch[$name]);
if ($error != '') {
continue;
}
$data = curl_multi_getcontent($ch[$name]);
if (!$data) {
continue;
}
$response = json_decode($data, true);
if (empty($response['data'])) {
continue;
}
$result[$name] = $response['data'];
curl_multi_remove_handle($mh, $ch[$name]);
curl_close($ch[$name]);
}
curl_multi_close($mh);
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
// 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
if (empty($result[$name])) {
$result = Cache::get($key, 'slave');
}
// 接口调用成功时,这里会设置一级(master)和二级(slave)的缓存数据.
else {
Cache::set($key, $result, $cache);
}
}
return $result;
}
/**
* rpc调用远程服务(YAR)
*
* @see http://php.net/manual/zh/yar-client.setopt.php
* @param string $uri
* @param string $method
* @param array $parameters
* @param mixed $cache 控制是否启用接口数据的缓存(时间单位为秒). 如3600表示缓存1小时, false表示不缓存
* @param int $timeout
* @return array
*/
public static function yarClient($uri, $method, $parameters = array(), $cache = false, $timeout = 3000)
{
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
$key = self::httpBuildQuery($uri . $method, $parameters);
// 先尝试获取一级缓存(master), 有数据则直接返回.
$result = Cache::get($key, 'master');
if (!empty($result)) {
return $result;
}
}
$client = new \Yar_Client($uri);
$client->SetOpt(YAR_OPT_PACKAGER, 'php');
$client->SetOpt(YAR_OPT_TIMEOUT, $timeout);
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, $timeout);
try {
$result = call_user_func_array(array($client, $method), $parameters);
} catch (\Exception $e) {
$result = array();
}
/* 开启缓存的情况 */
if ($cache && USE_CACHE) {
// 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
if (empty($result)) {
$result = Cache::get($key, 'slave');
}
// 接口调用成功时,这里会设置一级(master)和二级(slave)的缓存数据.
else {
Cache::set($key, $result, $cache);
}
}
return $result;
}
/**
* 并行(异步)调用远程服务
*
* @see http://php.net/manual/zh/class.yar-concurrent-client.php
* @param string $uri
* @param string $method
* @param array $parameters
* @param callable $callback
* @param int $timeout
* @return void
*/
public static function yarConcurrentCall($uri, $method, $parameters, $callback, $timeout = 3000)
{
\Yar_Concurrent_Client::call($uri, $method, $parameters, $callback, null, array(
YAR_OPT_PACKAGER => 'php',
YAR_OPT_TIMEOUT => $timeout,
YAR_OPT_CONNECT_TIMEOUT => $timeout
));
}
public static function yarConcurrentLoop($callback = null)
{
\Yar_Concurrent_Client::loop($callback);
}
/**
* 提交json格式数据请求java有关接口
*
* @param string $url 接口URL
* @param array $data 参数列表
* @param bool $returnJson 控制是否返回json格式数据
* @param int $timeout 超时时间
* @param array $cookie
* @return mixed
*/
public static function jsonPost($url, $data = array(), $returnJson = false, $timeout = 10, $cookie = array())
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
if (!empty($cookie)) {
$cookie_str = array();
foreach ($cookie as $key => $val) {
$cookie_str[] = urlencode($key) . '=' . urlencode($val);
}
curl_setopt($ch, CURLOPT_COOKIE, implode(';', $cookie_str));
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (!empty($data)) {
$data_string = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
// 设置json的Header
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)
));
}
$result = curl_exec($ch);
if (!$returnJson && !empty($result)) {
$result = json_decode($result, true);
}
curl_close($ch);
$data = array();
return $result;
}
}
... ...
<?php
namespace Configs;
class ChannelConfig
{
/**
* 最新上架分类
*/
... ... @@ -9,325 +12,481 @@ class ChannelConfig
//首页
'boys' => array(
array(
'misort' => 16,
'sort' => 147,
'viewNum' => 5
),//卫衣
), //休闲/运动鞋
array(
'misort' => 44,
'sort' => 129,
'viewNum' => 5
),//休闲/运动鞋
), //休闲裤
array(
'misort' => 21,
'sort' => 152,
'viewNum' => 5
),//夹克
), //双肩包
array(
'misort' => 26,
'misort' => 11,
'viewNum' => 5
),//休闲裤
), //T恤
array(
'misort' => 11,
'sort' => 115,
'viewNum' => 5
),//T恤
), //衬衫
array(
'misort' => 49,
'sort' => 130,
'viewNum' => 5
),//双肩包
), //牛仔裤
array(
'misort' => 12,
'misort' => 60,
'viewNum' => 5
),//衬衫
), //帽子
array(
'misort' => 27,
'sort' => 124,
'viewNum' => 5
),//牛仔裤
), //夹克
array(
'misort' => 45,
'sort' => 119,
'viewNum' => 5
),//靴子
), //卫衣
array(
'misort' => 257,
'sort' => 162,
'viewNum' => 5
),//毛衣/针织
), //手表
array(
'misort' => 226,
'sort' => 148,
'viewNum' => 5
),//防风外套
), //靴子
array(
'misort' => 22,
'misort' => 65,
'viewNum' => 5
),//大衣/风衣
), //首饰
array(
'misort' => 50,
'sort' => 151,
'viewNum' => 5
),//手拎包/单肩包
), //时装鞋
array(
'misort' => 18,
'misort' => 61,
'viewNum' => 5
),//羽绒服
), //太阳镜/眼镜
array(
'misort' => 20,
'misort' => 39,
'viewNum' => 5
),//棉衣
), //袜子
array(
'misort' => 345,
'sort' => 346,
'viewNum' => 5
),//运动裤
), //运动裤
array(
'misort' => 48,
'sort' => 131,
'viewNum' => 5
),//时装鞋
), //短裤
array(
'misort' => 60,
'misort' => 66,
'viewNum' => 5
),//帽子
), //配饰
array(
'misort' => 61,
'misort' => 309,
'viewNum' => 5
),//太阳镜/眼镜
), //内裤
array(
'misort' => 65,
'misort' => 30,
'viewNum' => 5
),//首饰
), //打底裤/紧身裤
array(
'misort' => 59,
'sort' => 342,
'viewNum' => 5
),//手表
), //邮差包
),
//女首上架分类
'girls' => array(
array(
'misort' => 20,
'viewNum' => 4
),// 棉衣
array(
'misort' => 18,
'misort' => 16,
'viewNum' => 4
),// 羽绒服
), // 卫衣
array(
'misort' => 22,
'misort' => 12,
'viewNum' => 4
),// 风衣/大衣
), //衬衫
array(
'misort' => 44,
'viewNum' => 4
),//休闲/运动鞋
), //休闲/运动鞋
array(
'misort' => 21,
'misort' => 11,
'viewNum' => 4
),// 夹克
), //T恤
array(
'misort' => 16,
'misort' => 21,
'viewNum' => 4
),// 卫衣
), //夹克
array(
'misort' => 26,
'misort' => 257,
'viewNum' => 4
),// 休闲裤
), //毛衣/针织
array(
'misort' => 45,
'misort' => 22,
'viewNum' => 4
),//靴子
), //大衣/风衣
array(
'misort' => 226,
'misort' => 26,
'viewNum' => 4
),// 防风外套
), //休闲裤
array(
'misort' => 27,
'viewNum' => 4
),// 牛仔裤
), //牛仔裤
array(
'misort' => 257,
'misort' => 31,
'viewNum' => 4
),//毛衣/针织
), //连衣裙
array(
'misort' => 11,
'misort' => 32,
'viewNum' => 4
),// T恤
), //半身裙
array(
'misort' => 31,
'misort' => 48,
'viewNum' => 4
),//连衣裙
), //时装鞋
array(
'misort' => 32,
'misort' => 49,
'viewNum' => 4
),//半身裙
), //双肩包
array(
'misort' => 50,
'viewNum' => 4
),//手拎包/单肩包
), //手拎包/单肩包
array(
'misort' => 60,
'viewNum' => 4
),//帽子
), //帽子
array(
'misort' => 49,
'misort' => 65,
'viewNum' => 4
),//双肩包
), //首饰
array(
'misort' => 65,
'misort' => 59,
'viewNum' => 4
),//首饰
), //手表
array(
'misort' => 314,
'misort' => 61,
'viewNum' => 4
),//围巾
), //太阳镜
array(
'misort' => 59,
'misort' => 66,
'viewNum' => 4
),//手表
), //配饰
),
//潮童上架分类
'kids' => array(
array(
'misort' => 404,
'misort' => 366,
'viewNum' => 4
),// 夹克
), // T恤
array(
'misort' => 367,
'viewNum' => 4
), //衬衫
array(
'misort' => 396,
'viewNum' => 4
),// 卫衣
), //卫衣
array(
'misort' => 369,
'misort' => 400,
'viewNum' => 4
),// 休闲裤
), //毛衣/针织
array(
'misort' => 406,
'misort' => 404,
'viewNum' => 4
),// 大衣/风衣
), //夹克
array(
'misort' => 368,
'misort' => 369,
'viewNum' => 4
),// 休闲/运动鞋
), //休闲裤
array(
'misort' => 366,
'misort' => 388,
'viewNum' => 4
),// T恤
), //牛仔裤
array(
'misort' => 400,
'misort' => 371,
'viewNum' => 4
),// 毛衣/针织
), //连衣裙
array(
'misort' => 367,
'misort' => 370,
'viewNum' => 4
),// 衬衫
), //半身裙
array(
'misort' => 388,
'misort' => 368,
'viewNum' => 4
),// 牛仔裤
), //休闲/运动鞋
array(
'misort' => 392,
'viewNum' => 4
),// 双肩包
), //双肩包
array(
'misort' => 414,
'viewNum' => 4
), //帽子
array(
'misort' => 372,
'viewNum' => 4
), //短裤
array(
'misort' => 384,
'viewNum' => 4
),// 打底裤/紧身裤
), //打底裤/紧身裤
array(
'misort' => 371,
'misort' => 382,
'viewNum' => 4
), //凉鞋/拖鞋
array(
'misort' => 402,
'viewNum' => 4
), //马甲
array(
'misort' => 386,
'viewNum' => 4
),// 连衣裙
), //背心
array(
'misort' => 421,
'misort' => 406,
'viewNum' => 4
), //大衣/风衣
array(
'misort' => 430,
'viewNum' => 4
),// 围巾
), //羽绒服
array(
'misort' => 425,
'misort' => 423,
'viewNum' => 4
),// 围兜
), //棉衣
array(
'misort' => 417,
'viewNum' => 4
), //套装
),
//创意生活上架分类
'lifestyle' => array(
array(
'sort' => 171,
'viewNum' => 5
),//耳机
), //耳机
array(
'sort' => 398,
'viewNum' => 5
),//智能装备
), //智能装备
array(
'sort' => 185,
'viewNum' => 5
),//相机
), //相机
array(
'misort' => 259,
'viewNum' => 5
),//美妆
), //美妆
array(
'sort' => 267,
'viewNum' => 5
),//杯子/水壶
), //杯子/水壶
array(
'sort' => 313,
'viewNum' => 5
),//手机/ipad壳套
), //手机/ipad壳套
array(
'sort' => 211,
'viewNum' => 5
),//数码配件
), //数码配件
array(
'sort' => 292,
'viewNum' => 5
),//玩偶
), //玩偶
array(
'sort' => 272,
'viewNum' => 5
),//储物收纳
), //储物收纳
array(
'sort' => 183,
'viewNum' => 5
),//居家用品
), //居家用品
array(
'sort' => 273,
'viewNum' => 5
),//厨具/餐具
), //厨具/餐具
array(
'sort' => 271,
'viewNum' => 5
),//靠枕/靠垫/抱枕
), //靠枕/靠垫/抱枕
),
);
//from统计模块标识
public static $itemFromStats = array(
'search_index' => array('domain' =>'search','module'=>'s'),//搜索页search.yohobuy.com
'list_sale' => array('domain' =>'list','module'=>'s'),//list.yohobuy.com/sale
'list_index' => array('domain' =>'list','module'=>'c'),//list.yohobuy.com
'list_new' => array('domain' =>'list','module'=>'n'),//list.yohobuy.com/new
'index_brand' => array('domain' =>'brand','module'=>'b'),//xxx.yohobuy.com[品牌域名]
'sale_index' => array('domain' =>'sale','module' => 's'),//sale.yohobuy.com
'search_index' => array('domain' => 'search', 'module' => 's'), //搜索页search.yohobuy.com
'list_sale' => array('domain' => 'list', 'module' => 's'), //list.yohobuy.com/sale
'list_index' => array('domain' => 'list', 'module' => 'c'), //list.yohobuy.com
'list_new' => array('domain' => 'list', 'module' => 'n'), //list.yohobuy.com/new
'index_brand' => array('domain' => 'brand', 'module' => 'b'), //xxx.yohobuy.com[品牌域名]
'sale_index' => array('domain' => 'sale', 'module' => 's'), //sale.yohobuy.com
);
//左侧广告默认图片-passport相关页面
public static $leftDefaultImg = 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190';
//多品店品牌ID
public static $moreBrandIds = array(1025,504,1351,1362,613,456,842 ,
656,1310,1063,861,1417,1200,1207,1209,1306,972,308,856);
public static $moreBrandIds = array(1025, 504, 1351, 1362, 613, 456, 842,
656, 1310, 1063, 861, 1417, 1200, 1207, 1209, 1306, 972, 308, 856);
//默认头像
public static $headDefaultImgIco = 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100';
//商品详情页的默认头像
public static $itemHeadDefaultImgIco = 'http://static.yohobuy.com/images/v3/boy.jpg';
//性别
public static $genderArr = array(
array(
'value' => 1,
'text' => '男'
),
array(
'value' => 2,
'text' => '女'
)
);
//收入
public static $incomeArr = array(
array(
'value' => '0',
'text' => '请选择'
),
array(
'value' => '1',
'text' => '1000以下'
),
array(
'value' => '2',
'text' => '1000-2999'
),
array(
'value' => '3',
'text' => '3000-5999'
),
array(
'value' => '4',
'text' => '6000-7999'
),
array(
'value' => '5',
'text' => '8000-10000'
),
array(
'value' => '6',
'text' => '10000以上'
)
);
//职业
public static $professionArr = array(
array(
'value' => '1',
'text' => '已工作'
),
array(
'value' => '2',
'text' => '大学生'
),
array(
'value' => '3',
'text' => '中学生'
),
array(
'value' => '4',
'text' => '其他'
),
);
//购物习惯
public static $shoppingHabits = array(
array(
'type' => 'radio',
'key' => 'shopping',
'value' => '1',
'text' => '目的型购物',
),
array(
'type' => 'radio',
'key' => 'shopping',
'value' => '2',
'text' => '冲动型购物'
),
array(
'type' => 'radio',
'key' => 'shopping',
'value' => '3',
'text' => '保守型购物'
)
);
//着装习惯
public static $dressHabits = array(
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-1',
'value' => '1',
'text' => '正装',
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-2',
'value' => '2',
'text' => '商务'
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-3',
'value' => '3',
'text' => '街头流行'
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-4',
'value' => '4',
'text' => '运动休闲'
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-5',
'value' => '5',
'text' => '文艺气质'
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-6',
'value' => '6',
'text' => '甜美可爱'
),
array(
'type' => 'checkbox',
'key' => 'dress[]',
'index' => 'dress-7',
'value' => '7',
'text' => '另类'
)
);
//登录-跳转到首页的url关键字
public static $loginUrlKeys = array('reg.html', 'signin.html', 'passport/', 'logout.html');
//换货期限
public static $exchangeDay = 15;
//退货期限
public static $refundDay = 7;
// public static $moreBrandShopBrands = array(
// //品牌ID[店铺ID] => 品牌名称[店铺名称]
// 1025 => '鼎骏手表专营店',
// 504 => 'All Time Distribution',
// 1351 =>'TMD挺萌的',
// 1362 =>'Future Labels',
// 613 =>'GR8',
// 456 =>'FOSS',
// 842 => 'Redy',
// 656 =>'iplaybox',
// 1310 =>'My dream',
// 1063 =>'Le Petit Royal',
// 861 =>'百汇馆',
// 1417 =>'MLOHAS',
// 1200 =>'SSEEROOM',
// 1207 =>'正经客',
// 1209 =>'AAVA Lifestyle',
// 1306 =>'BLOCCO5',
// 972 =>'play lounge',
// 308 => 'solo'
// 856 => VFILES
// );
//支付方式
public static $payType = array(
'1' => '在线支付',
'2' => '货到付款',
'3' => '刷卡支付'
);
}
\ No newline at end of file
//送货时间
public static $deliverTimeSpan = array(
'1' => '只工作日送货(双休日、节假日不用送)',
'2' => '工作日、双休日和节假日均送货',
'3' => '只双休日、节假日送货(工作时间不送货)'
);
}
... ...
... ... @@ -12,6 +12,7 @@ class WebCacheConfig
const KEY_WEB_HOME_CHANNEL_DATA = 'key_web_home_channel_data';//web首页频道数据[boys, girls, kids, lifestyle]
const KEY_WEB_HOME_CHANNEL_NEWARRIVAL_DATA = 'key_web_home_newarrival_data';//web频道最新上架数据[boys, girls, kids, lifestyle]
const KEY_WEB_PRODUCT_SEARCH_DATA = 'key_web_product_search_data'; // web搜索的数据
const KEY_WEB_PRODUCT_SEARCH_SALESORT = 'key_web_product_search_salesort'; // web销售类目
const KEY_WEB_GUANG_PLUSSTAR_DATA = 'key_web_guang_plussstar_data';//web逛的plusstar
const KEY_WEB_BRAND_PLUSSTAR_BANNER_DATA = 'key_web_brand_plusstar_banner_data';//web品牌下的plusstar的banner
const KEY_WEB_BRAND_PLUSSTARINDEX_DATA = 'key_web_brand_plussstarindex_data';//web品牌下的plusstarindex
... ... @@ -20,6 +21,7 @@ class WebCacheConfig
const KEY_WEB_BRAND_INDEX_VIEW_TOP_DATA = 'key_web_brand_index_view_top_data'; // 品牌一览数据_top
const KEY_WEB_BRAND_INDEX_VIEW_LIST_DATA = 'key_web_brand_index_view_list_data'; // 品牌一览数据_list
const KEY_PASSPORT_USER_DATA = 'key_web_passport_user_data';//用户信息
const KEY_WEB_PRODUCT_INDEX_BRAND = 'key_web_product_index_brand';//brand品牌主页数据
const KEY_WEB_PRODUCT_INDEX_BRANDINTRO = 'key_web_product_index_brandintro';//brand品牌介绍页
const KEY_WEB_PRODUCT_LIST_INDEX = 'key_web_product_list_index';//list-index页数据
... ... @@ -28,6 +30,9 @@ class WebCacheConfig
const KEY_WEB_PRODUCT_SALE_INDEX = 'key_web_product_sale_index';//sale页数据
const KEY_WEB_INDEX_BRANDS_BRANDINFO = 'key_web_index_brands_brandinfo';//web首页品牌信息
const KEY_WEB_ITEM_SORT_DATA = 'key_web_item_sort_data';//web的item页分类
const KEY_WEB_ADDRESS_LIST_DATA = 'key_web_address_list_data'; // 三级地址数据
const KEY_WEB_LOGIN_LEFT_BANNER = 'key_web_login_left_banner'; // 登录页左侧的广告图
}
... ...
<?php
namespace LibModels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
class AddressData
{
/**
* 获取省市区信息
* $parentId 父级ID
*/
public static function getProviceCityInfo($parentId=0)
{
$param = Yohobuy::param();
$param['method'] = 'app.address.provinces';
$param['id'] = $parentId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 地址数据
*
* @param int $uid 用户ID
* @param int $limit 分页大小参数(默认10条)
* @return array 地址接口返回的数据
*/
public static function addressData($uid, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.address.get';
$param['uid'] = $uid;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 保存地址数据
*
* @param int $uid 用户ID
* @param string $address 地址信息
* @param int $area_code 城市码
* @param string $consignee 收货人
* @param string $email 邮箱地址
* @param int $id 地址唯一标识符id
* @param string $mobile 手机号码
* @param string $phone 电话号码
* @param string $zip_code 邮编
* @return array 地址接口返回的数据
*/
public static function saveAddressData($uid, $address, $area_code, $consignee, $email, $id, $mobile, $phone, $zip_code)
{
$param = Yohobuy::param();
$param['address'] = $address;
$param['area_code'] = $area_code;
$param['consignee'] = $consignee;
$param['email'] = $email;
if (!empty($id)) { // 修改
$param['id'] = $id;
$param['method'] = 'app.address.update';
} else { // 添加
$param['method'] = 'app.address.add';
}
$param['mobile'] = $mobile;
$param['phone'] = $phone;
$param['zip_code'] = $zip_code;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 删除地址
*
* @param int $uid 用户ID
* @param int $id 地址唯一标识符id
* @return array 接口返回的数据
*/
public static function deleteAddress($uid, $id)
{
$param = Yohobuy::param();
$param['id'] = $id;
$param['method'] = 'app.address.del';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 设置默认地址
*
* @param int $uid 用户ID
* @param int $id 地址唯一标识符id
* @return array 接口返回的数据
*/
public static function setDefaultAddress($uid, $id)
{
$param = Yohobuy::param();
$param['id'] = $id;
$param['method'] = 'app.address.setdefault';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace LibModels\Web\Home;
use Api\Sign;
use Api\Yohobuy;
use LibModels\Web\Product\SearchData;
/**
* 购物车的数据模型
*
* @name CartData
* @package LibModels/Web/Home
* @copyright yoho.inc
* @version 1.0 (2016-02-17 14:12:32)
* @author fei.hong <fei.hong@yoho.cn>
*/
class CartData
{
/**
* 加入购物车接口
*
* @param int $productSku 商品SKU
* @param int $buyNumber 购买数量
* @param int $goodsType 商品类型,0表示普通商品,1表示加价购商品
* @param int $isEdit 是否是编辑商品SKU,0表示不是编辑
* @param null|int $promotionId 促销id,默认null(加价购有关)
* @param null|int $uid 用户UID,可以不传
* @param string $shoppingKey 未登录用户唯一识别码,可以不传
* @return array 加入购物车接口返回的数据
*/
public static function addToCart($productSku, $buyNumber, $goodsType, $isEdit = 0, $promotionId = null, $uid = null, $shoppingKey = null)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.add';
$param['product_sku'] = $productSku;
$param['buy_number'] = intval($buyNumber);
$param['goods_type'] = $goodsType;
$param['edit_product_sku'] = $isEdit;
$param['selected'] = 'Y';
$param['promotion_id'] = $promotionId;
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车商品选择与取消接口
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 购物车接口返回的数据
*/
public static function selectGoods($uid, $sku, $shoppingKey)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.selected';
$param['product_sku_list'] = $sku;
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车数据
*
* @param int $uid 用户ID
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 购物车接口返回的数据
*/
public static function cartData($uid, $shoppingKey)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.cart';
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 移出购物车
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
public static function removeFromCart($uid, $sku, $shoppingKey)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.remove';
$param['product_sku_list'] = $sku;
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 移入收藏夹
*
* @param int $uid 用户ID
* @param string $sku 商品sku列表
* @return array 接口返回的数据
*/
public static function addToFav($uid, $sku)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.addfavorite';
$param['product_sku_list'] = $sku;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取购物车商品详情数据
*
* @param int $uid 用户ID
* @param int $skn 商品skn
* @return array 接口返回的数据
*/
public static function cartProductData($uid, $skn)
{
$param = Yohobuy::param();
$param['method'] = 'app.product.data';
$param['product_skn'] = $skn;
$param['showcomment'] = 'N';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取加价购商品详情数据
*
* @param int $skn 商品skn
* @param int $promotionId 加价购商品促销ID
* @return array 接口返回的数据
*/
public static function giftProductData($skn, $promotionId)
{
$param = Yohobuy::param();
$param['method'] = 'app.product.gift';
$param['product_skn'] = $skn;
$param['promotion_id'] = $promotionId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 增减购物车商品数量
*
* @param int $uid 用户ID
* @param string $sku 商品SKU
* @param int $increaseNum 增加的数目
* @param int $decreaseNum 减少的数目
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
public static function modifyProductNum($uid, $sku, $increaseNum, $decreaseNum, $shoppingKey)
{
$param = Yohobuy::param();
$param['product_sku'] = $sku;
// 增加
if (!empty($increaseNum)) {
$param['method'] = 'app.Shopping.increase';
$param['increase_number'] = intval($increaseNum);
}
// 减少
if (!empty($decreaseNum)) {
$param['method'] = 'app.Shopping.decrease';
$param['decrease_number'] = intval($decreaseNum);
}
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 修改购物车商品数据
*
* @param int $uid 用户ID
* @param string $swapData 商品数据
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
public static function modifyCartProduct($uid, $swapData, $shoppingKey)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.swap';
$param['swap_data'] = $swapData;
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车结算
*
* @param int $uid 用户ID
* @param string $cartType 购物车类型,ordinary表示普通购物车
* @param int $isUseYohoCoin 是否使用有货币,默认0不使用, 1使用
* @return array 接口返回的数据
*/
public static function cartPay($uid, $cartType, $isUseYohoCoin = 0)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.payment';
$param['cart_type'] = $cartType;
$param['yoho_coin_mode'] = $isUseYohoCoin;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车结算--支付方式和配送方式选择
*
* @param int $uid 用户ID
* @param string $cartType 购物车类型,ordinary表示普通购物车
* @param int $deliveryWay 配送方式,1表示普通快递,2表示顺丰速运
* @param int $paymentType 支付方式,1表示在线支付,2表示货到付款
* @param string $couponCode 优惠券码
* @param mixed $yohoCoin 使用的YOHO币数量
* @param int $redEnvelopes 红包
* @return array 接口返回的数据
*/
public static function orderCompute($uid, $cartType, $deliveryWay, $paymentType, $couponCode, $yohoCoin, $redEnvelopes)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.compute';
$param['cart_type'] = $cartType;
$param['delivery_way'] = $deliveryWay;
$param['payment_type'] = $paymentType;
if (!empty($couponCode)) {
$param['coupon_code'] = $couponCode;
}
if (!empty($yohoCoin)) {
$param['use_yoho_coin'] = $yohoCoin;
}
if (!empty($redEnvelopes)) {
$param['use_red_envelopes'] = $redEnvelopes;
}
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车结算--使用优惠券
*
* @param int $uid 用户ID
* @param string $couponCode 优惠券代码
* @return array 接口返回的数据
*/
public static function searchCoupon($uid, $couponCode)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.useCoupon';
$param['coupon_code'] = $couponCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车结算--获取优惠券列表
*
* @param int $uid 用户ID
* @return array 接口返回的数据
*/
public static function getCouponList($uid, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.coupons.lists';
$param['type'] = 'notuse';
$param['page'] = 1;
$param['limit'] = $limit;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 购物车结算--提交结算信息
*
* @param int $uid 用户ID
* @param int $addressId 地址ID
* @param string $cartType 购物车类型
* @param int $deliveryTime 寄送时间ID
* @param int $deliveryWay 寄送方式ID
* @param string $invoiceTitle 发票说明
* @param int $invoiceId 发票类型ID
* @param int $paymentId 支付方式ID
* @param int $paymentType 支付类型ID
* @param string $remark 留言
* @param string $couponCode 优惠券码
* @param mixed $yohoCoin 使用的YOHO币数量或为空
* @param int $isPreContact 送货前是否联系
* @param int $isPrintPrice 是否打印价格
* @param string|null $userAgent 联盟过来用户下单时需要的User-Agent信息
* @param int $redEnvelopes 红包
* @return array 接口返回的数据
*/
public static function orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId,
$paymentId, $paymentType, $remark, $couponCode, $yohoCoin, $isPreContact, $isPrintPrice, $userAgent, $redEnvelopes)
{
$param = Yohobuy::param();
$param['debug'] = 'Y';
$param['client_type'] = 'web'; // 需要ERP统计PC的下单量
$param['private_key'] = Yohobuy::$privateKeyList['web']; // PC默认使用Android的私钥
$param['method'] = 'app.Shopping.submit';
$param['address_id'] = $addressId;
$param['cart_type'] = $cartType;
$param['delivery_time'] = $deliveryTime;
$param['delivery_way'] = $deliveryWay;
$param['uid'] = $uid;
if (!empty($invoiceTitle)) {
$param['invoices_title'] = $invoiceTitle;
}
if (!empty($invoiceId)) {
$param['invoices_type_id'] = $invoiceId;
}
if (!empty($redEnvelopes)) {
$param['use_red_envelopes'] = $redEnvelopes;
}
$param['payment_id'] = $paymentId;
$param['payment_type'] = $paymentType;
$param['remark'] = $remark;
if (!empty($couponCode)) {
$param['coupon_code'] = $couponCode;
}
if (!empty($yohoCoin)) {
$param['use_yoho_coin'] = $yohoCoin;
}
if (!empty($isPreContact)) {
$param['is_pre_contact'] = 'Y';
}
if (!empty($isPrintPrice)) {
$param['is_print_price'] = 'Y';
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, false, false, 10, $userAgent);
}
/**
* 购物车数量
*
* @param int $uid 用户ID
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 购物车接口返回的数据
*/
public static function cartCount($uid, $shoppingKey)
{
$param = Yohobuy::param();
$param['method'] = 'app.Shopping.count';
if (!empty($uid)) {
$param['uid'] = $uid;
}
if (!empty($shoppingKey)) {
$param['shopping_key'] = $shoppingKey;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 凑单商品
*
* @param int $page 分页页码
* @return array
*/
public static function togetherProduct($page)
{
$param = Yohobuy::param();
$param['method'] = 'web.product.together';
$param['client_type'] = 'web';
$param['private_key'] = Yohobuy::$privateKeyList['web'];
$param['page'] = $page;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 浏览记录数据
*
* @param int $uid 用户ID
* @param int $udid 客户端唯一标识
* @param int $page 第几页,默认为1
* @param int $limit 限制多少条,默认100
* @return array 接口返回的数据
*/
public static function browseRecord($uid, $udid, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.browse.product';
$param['uid'] = $uid;
$param['udid'] = $udid;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 通过搜索查询商品信息
*
* 备注:因默认的搜索方法会有过滤, 浏览记录不需要过滤
*
* @param string $query 查询的条件
* @param int $limit 查询的限制数
* @return array
*/
public static function browseRecordFromSearch($query, $limit = 10)
{
$param = array();
$param['order'] = 'shelve_time:desc';
$param['page'] = 1;
$param['viewNum'] = $limit;
$param['query'] = $query;
return Yohobuy::get(SearchData::getUrl('search'), $param);
}
}
... ...
<?php
namespace LibModels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
class IndexData
{
//分类服务
const URL_OPERATIONS_CATEGORY = 'operations/service/v1/category';
//资源位地址
const URL_OPERATIONS_RESOURCE_GET = 'operations/api/v5/resource/get';
/**
* 获取导航数据
*
... ... @@ -20,14 +23,14 @@ class IndexData
public static function getNavData($status = 1, $fields = 'id,sort_name,sort_name_en,parent_id,sort_url,sort_ico,content_code,is_new,is_hot,separative_sign')
{
$params = array(
'parent_id'=>'',
'platform'=>'web',
'status'=> $status,
'fields'=> $fields
'parent_id' => '',
'platform' => 'web',
'status' => $status,
'fields' => $fields
);
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_CATEGORY,'getCategory', $params);
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_CATEGORY, 'getCategory', $params);
}
/**
* 获取资源数据
*
... ... @@ -35,17 +38,18 @@ class IndexData
* @param string $client_type
* @return array
*/
public static function getResourceData($content_code, $client_type = 'web')
public static function getResourceData($content_code, $client_type = 'web')
{
// 构建必传参数
$params = Yohobuy::param();
$params['content_code'] = $content_code;
$params['content_code'] = $content_code;
$params['client_type'] = $client_type;
$params['private_key'] = Yohobuy::$privateKeyList[$client_type];
$params['client_secret'] = Sign::getSign($params);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params, false, false, 2);
}
/**
* 邮箱订阅
*
... ... @@ -71,7 +75,7 @@ class IndexData
unset($param['v']);
return Yohobuy::post(Yohobuy::API_URL, $param);
}
/**
* 意见反馈
*
... ... @@ -99,5 +103,71 @@ class IndexData
unset($param['v']);
return Yohobuy::post(Yohobuy::API_URL, $param);
}
}
\ No newline at end of file
/**
* 消息提示——未读消息
*
* @param int $uid 用户ID
* @return array 接口返回的数据
*/
public static function infoNum($uid, $udid)
{
$param = Yohobuy::param();
$param['method'] = 'app.home.getInfoNum';
$param['uid'] = $uid;
$param['udid'] = $udid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 消息提示——未确认订单数量
* @param type $uid
* @return type
*/
public static function getPendingOrderCount($uid)
{
$param = Yohobuy::param();
$param['method'] = 'web.SpaceOrders.getPendingOrderCount';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::DEV_API_URL, $param);
}
/**
* 消息提示——未评论数量
* @param type $uid
* @return type
*/
public static function notCommentRecordCount($uid)
{
$param = Yohobuy::param();
$param['method'] = 'show.notCommentRecordCount';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* YOHO币列表数据
*
* @param int $uid 用户ID
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @param string $type 请求类型 get,post
* @return array YOHO币接口返回的数据
*/
public static function yohoCoinData($uid, $page = 1, $limit = 15, $type = 'get')
{
$param = Yohobuy::param();
$param['method'] = 'app.yohocoin.lists';
$param['uid'] = $uid;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::$type(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace LibModels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
class OrderData
{
/**
* 我的订单-分页
* @param type $uid
* @param type $page
* @param type $limit
* @param type $type 获取订单类型 type=1全部,type=2待付款,type=3待发货,type=4待收货,type=5待评论(已成功) 7取消
* @return type
*/
public static function getUserOrders($uid, $page = 1, $limit = 10, $type = 1)
{
$param = Yohobuy::param();
$param['method'] = 'app.SpaceOrders.get';
$param['uid'] = $uid;
$param['type'] = $type;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 订单详情
* @param type $uid
* @param type $orderCode
* @return type
*/
public static function getOrderDetail($uid, $orderCode)
{
$param = Yohobuy::param();
$param['method'] = 'app.SpaceOrders.info';
$param['uid'] = $uid;
$param['order_code'] = $orderCode;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 取消订单
* @param type $uid
* @param type $orderCode
* @return type
*/
public static function cancelUserOrder($uid, $orderCode)
{
$param = Yohobuy::param();
$param['method'] = 'app.SpaceOrders.close';
$param['uid'] = $uid;
$param['order_code'] = $orderCode;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 确认订单
* @param type $uid
* @param type $orderCode
* @return type
*/
public static function confirmUserOrder($uid, $orderCode)
{
$param = Yohobuy::param();
$param['method'] = 'app.SpaceOrders.confirm';
$param['uid'] = $uid;
$param['order_code'] = $orderCode;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取yohood票
*
* @param string $uid
* @param string $sku
* @return array
*/
public static function getYohoodTicket($uid, $sku)
{
$param = Yohobuy::param();
$param['method'] = 'app.shopping.ticket';
$param['uid'] = $uid;
$param['sku'] = $sku;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 我的订单-查看物流
*
* @param int $orderCode 订单号
* @param int $uid 用户ID
* @return array
*/
public static function getLogisticsData($orderCode, $uid)
{
//构建必传参数
$param = Yohobuy::param();
$param['method'] = 'app.express.li';
$param['order_code'] = $orderCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
//调用接口获得数据
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace Libmodels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
//退换货类
class ReturnsData
{
//退换货订单列表
public static function getReturnsData($uid, $limit = 10, $page = 1)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.refund.getList';
$param['uid'] = $uid;
$param['limit'] = $limit;
$param['page'] = $page;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//可退货商品列表
public static function getRefundGoodsList($orderCode, $uid)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.refund.goodsList';
$param['order_code'] = $orderCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//可换货商品列表
public static function getChangeGoodsList($orderCode, $uid)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.change.goodsList';
$param['order_code'] = $orderCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//换货详情
public static function getChangeDetail($uid, $id)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.change.detail';
$param['uid'] = $uid;
$param['id'] = $id;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//退货详情
public static function getRefundDetail($uid, $id)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.refund.detail';
$param['uid'] = $uid;
$param['id'] = $id;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//快递公司列表
public static function getExpressCompany()
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.express.getExpressCompany';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//设置快递
public static function setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = $isChange ? 'app.change.setexpress' : 'app.refund.setexpress';
$param['id'] = $id;
$param['express_id'] = $expressId;
$param['express_number'] = $expressNumber;
$param['uid'] = $uid;
$param['express_company'] = $expressCompany;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//可退货商品列表数据
public static function getRefundGoodsData($orderCode, $uid)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.refund.goodsList';
$param['order_code'] = $orderCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
//可换货商品列表数据
public static function getChangeGoodsData($orderCode, $uid)
{
$param = array();
$param = Yohobuy::param();
$param['method'] = 'app.change.goodsList';
$param['order_code'] = $orderCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(yohobuy::API_URL, $param);
}
}
\ No newline at end of file
... ...
<?php
namespace LibModels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
use WebPlugin\Helpers;
class UserData extends \LibModels\Wap\Home\UserData
{
/**
* 根据手机号获取用户信息[TODO +cache]
*
* @param string $area
* @param string $mobile
* @return array
*/
public static function getUserInfoByMobile($area, $mobile)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.userlist';
$param['mobile'] = Helpers::makeMobile($area, $mobile);
$param['debug'] = 'Y';
$param['screen_size'] = '320x568';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600);
}
/**
* 根据email获取用户信息
*
* @param string $email
* @return array
*/
public static function getUserInfoByEmail($email)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.userlist';
$param['email'] = $email;
$param['debug'] = 'Y';
$param['screen_size'] = '320x568';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600);
}
}
\ No newline at end of file
<?php
namespace LibModels\Web\Home;
use Api\Yohobuy;
use Api\Sign;
use WebPlugin\Helpers;
class UserData
{
/**
* 根据手机号获取用户信息[TODO +cache]
*
* @param string $area
* @param string $mobile
* @return array
*/
public static function getUserInfoByMobile($area, $mobile)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.userlist';
$param['mobile'] = Helpers::makeMobile($area, $mobile);
$param['debug'] = 'Y';
$param['screen_size'] = '320x568';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 根据email获取用户信息
*
* @param string $email
* @return array
*/
public static function getUserInfoByEmail($email)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.userlist';
$param['email'] = $email;
$param['debug'] = 'Y';
$param['screen_size'] = '320x568';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 查询个人信息
*
* @param int $uid 用户ID
* @return array 个人详情接口返回的数据
*/
public static function getUserInfo($uid)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.profile';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 修改个人详情数据
*
* @param array $params 需要修改的参数集合
* uid:用户ID
* username:真实姓名
* nick_name:昵称
* gender:性别
* birthday:生日
* headIco:头像
* income:收入
* profession:职位
*/
public static function editUserInfo($params)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.modifyBase';
$param['uid'] = $params['uid'];
$param['nick_name'] = $params['nickname'];
$param['username'] = $params['username'];
$param['gender'] = $params['gender'];
$param['profession'] = $params['profession'];
$param['income'] = $params['income'];
$param['birthday'] = $params['birthday'];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 查询用户联系信息
*
* @param int $uid 用户ID
* @return array 返回的数据
*/
public static function getUserContactInfo($uid)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.getUserContacts';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 修改用户联系信息
* @param array $params 需要修改的参数集合
* uid:用户ID
* area_code:区域code 2-4-6 取最后一位地区
* phone:固定电话
* mobile:手机号码
* qq
* full_address:联系地址
* zip_code:邮编
*/
public static function editUserContactInfo($params)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.modifyUserContacts';
$param['uid'] = $params['uid'];
$param['area_code'] = $params['areaCode'];
$param['phone'] = $params['phone'];
$param['mobile'] = $params['mobile'];
$param['qq'] = $params['qq'];
$param['full_address'] = $params['fullAddress'];
$param['zip_code'] = $params['zipCode'];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 查询用户购物习惯&着装信息
*
* @param int $uid 用户ID
* @return array 返回的数据
*/
public static function getUserHabitsInfo($uid)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.getUserHabits';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 修改用户习惯信息
* @param array $params 需要修改的参数集合
* uid:用户ID
* shopping:购物习惯 字符串 1
* dress:着装习惯 字符串 1,2
*/
public static function editUserHabitsInfo($params)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.modifyUserHabits';
$param['uid'] = $params['uid'];
$param['shopping'] = $params['shopping'];
$param['dress'] = $params['dress'];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 查询用户喜欢的品牌
*
* @param int $uid 用户ID
*/
public static function getUserLikeBrand($uid)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.getLikeBrand';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 修改用户喜欢品牌
* @param array $params 需要修改的参数集合
* uid:用户ID
* brand:喜爱品牌 字符串1,2
*/
public static function editUserLikeBrand($params)
{
$param = Yohobuy::param();
$param['method'] = 'web.passport.modifyLikeBrand';
$param['uid'] = $params['uid'];
$param['brand'] = $params['brand'];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 个人中心页面优惠券,收藏的商品等的数目数据
*
* @param int $uid 用户ID
* @return array 接口返回的数据
*/
public static function infoNum($uid, $udid)
{
$param = Yohobuy::param();
$param['method'] = 'app.home.getInfoNum';
$param['uid'] = $uid;
$param['udid'] = $udid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 个人中心页面优选新品数据
*
* @param int $channel 频道,1代表男生,2代表女生,3代表潮童,4代表创意生活
* @return array 接口返回的数据
*/
public static function preference($channel)
{
$param = Yohobuy::param();
$param['method'] = 'app.home.preference';
$param['yh_channel'] = $channel;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 订单数据
*
* @param int $uid 用户ID
* @param int $type 订单类型,1表示全部,2表示待付款,3表示待发货,4表示待收货,5表示待评价
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @return array 订单接口返回的数据
*/
public static function orderData($uid, $type, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.SpaceOrders.get';
$param['uid'] = $uid;
$param['type'] = $type;
$param['page'] = $page;
$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 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);
}
/**
* 收藏的品牌数据
*
* @param int $uid 用户ID
* @param string $gender 性别 1,3表示男,2,3表示女,1,2,3表示全部
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @return array 收藏的品牌接口返回的数据
*/
public static function favoriteBrandData($uid, $gender, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.brand';
$param['uid'] = $uid;
$param['gender'] = $gender;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 取消收藏的商品数据
*
* @param int $uid 用户ID
* @param int $fav_id 要取消的收藏id
* @return array 接口返回的数据
*/
public static function favoriteDelete($uid, $fav_id)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.cancel';
$param['type'] = 'product';
$param['uid'] = $uid;
$param['fav_id'] = $fav_id;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 浏览记录数据
*
* @param int $uid 用户ID
* @param int $udid 客户端唯一标识
* @param int $page 第几页,默认为1
* @param int $limit 限制多少条,默认100
* @return array 接口返回的数据
*/
public static function browseRecord($uid, $udid, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.browse.product';
$param['uid'] = $uid;
$param['udid'] = $udid;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 删除浏览记录
*
* @param int $uid 用户ID
* @param int $skn 商品SKN
* @return array 接口返回的数据
*/
public static function delRecord($uid, $skn)
{
$param = Yohobuy::param();
$param['method'] = 'app.browse.delete';
$param['uid'] = $uid;
$param['skn'] = $skn;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* YOHO币总数
*
* @param int $uid 用户ID
* @return array YOHO币接口返回的数据
*/
public static function yohoCoinTotal($uid)
{
// $param = Yohobuy::param();
// $param['method'] = 'app.yohocoin.total';
// $param['uid'] = $uid;
// $param['client_secret'] = Sign::getSign($param);
//
// return Yohobuy::get(Yohobuy::API_URL, $param);
$param = Yohobuy::param();
$param['method'] = 'app.yoho.yohocoin';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* YOHO币列表数据
*
* @param int $uid 用户ID
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @param string $type 请求类型 get,post
* @return array YOHO币接口返回的数据
*/
public static function yohoCoinData($uid, $page = 1, $limit = 10, $type = 'get')
{
$param = Yohobuy::param();
$param['method'] = 'app.yohocoin.lists';
$param['uid'] = $uid;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::$type(Yohobuy::API_URL, $param);
}
/**
* 优惠券数据
*
* @param int $uid 用户ID
* @param int $status 优惠券状态,0表示未使用,1表示已使用
* @param int $page 第几页,默认1
* @param int $limit 限制读取的数目,默认10
* @return array 优惠券接口返回的数据
*/
public static function couponData($uid, $status, $page = 1, $limit = 10)
{
$param = Yohobuy::param();
$param['method'] = 'app.coupons.li';
$param['uid'] = $uid;
$param['status'] = $status;
$param['page'] = $page;
$param['limit'] = $limit;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 地址数据
*
* @param int $uid 用户ID
* @return array 地址接口返回的数据
*/
public static function addressData($uid)
{
$param = Yohobuy::param();
$param['method'] = 'app.address.get';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取三级地址列表数据
*
* @param int $uid 用户ID
* @return array 地址接口返回的数据
*/
public static function addressListData($uid)
{
$param = Yohobuy::param();
$param['method'] = 'app.address.getlist';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取省市区县的列表数据
*
* @param int $id ID
* @return array
*/
public static function provinceData($id)
{
$param = Yohobuy::param();
$param['method'] = 'app.address.provinces';
$param['id'] = $id;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 保存地址数据
*
* @param int $uid 用户ID
* @param string $address 地址信息
* @param int $areaCode 城市码
* @param string $consignee 收货人
* @param string $email 邮箱地址
* @param int $id 地址唯一标识符id
* @param string $mobile 手机号码
* @param string $zipCode 邮编
* @return array 地址接口返回的数据
*/
public static function saveAddressData($uid, $address, $areaCode, $consignee, $email, $id, $mobile, $zipCode)
{
$param = Yohobuy::param();
$param['address'] = $address;
$param['area_code'] = $areaCode;
$param['consignee'] = $consignee;
$param['email'] = $email;
if (!empty($id)) { // 修改
$param['id'] = $id;
$param['method'] = 'app.address.update';
} else { // 添加
$param['method'] = 'app.address.add';
}
$param['mobile'] = $mobile;
$param['zip_code'] = $zipCode;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 设置默认地址
*
* @param int $uid 用户ID
* @param int $id 地址唯一标识符id
* @return array 接口返回的数据
*/
public static function setDefaultAddress($uid, $id)
{
$param = Yohobuy::param();
$param['id'] = $id;
$param['method'] = 'app.address.setdefault';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 删除地址
*
* @param int $uid 用户ID
* @param int $id 地址唯一标识符id
* @return array 接口返回的数据
*/
public static function deleteAddress($uid, $id)
{
$param = Yohobuy::param();
$param['id'] = $id;
$param['method'] = 'app.address.del';
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 我的消息接口
*
* @param int $uid 用户ID
* @param int $page 获取第一页,默认是1
* @param int $size 获取数目,默认是10
* @return array 消息接口返回的数据
*/
public static function messageData($uid, $page = 1, $size = 10)
{
$param = Yohobuy::param();
$param['uid'] = $uid;
$param['size'] = $size;
$param['page'] = $page;
$param['method'] = 'app.inbox.getlist';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace LibModels\Web\Passport;
use Api\Sign;
use Api\Yohobuy;
/**
* 绑定手机号 数据模型
*
* @name BindData
* @package LibModels/Wap/Passport
* @copyright yoho.inc
* @version 1.0 (2015-12-14 10:00:00)
* @author xiaowei
*/
class BindData
{
/**
* 绑定前检查
*
* @param string $mobile 绑定输入手机号
* @param string $openId 第三方唯一识别码
* @param string $sourceType 登录方式 qq,sina,alipay,wechat
* @param int $area 所在地区
* @return array 登录返回结果
*/
public static function bindCheck($mobile, $openId, $sourceType, $area)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.check';
$param['area'] = $area;
$param['mobile'] = $mobile;
$param['open_id'] = $openId;
$param['source_type'] = $sourceType;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 发送、重发送验证码
* @param string $mobile 手机号
*
*/
public static function sendBindMsg($area, $mobile)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.smsbind';
$param['mobile'] = $mobile;
$param['area'] = $area;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 验证验证码是否正确
*
*/
public static function checkBindCode($area, $mobile, $code)
{
$param = Yohobuy::param();
$param['method'] = 'app.register.validRegCode';
$param['mobile'] = $mobile;
$param['code'] = $code;
$param['area'] = $area;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 第三方绑定手机号
*
* @param string $openId 第三方唯一识别码
* @param string $nickname 姓名
* @param string $sourceType 登录方式
* @param string $mobile 手机号
* @param string $area 国别码
* @param string $password 密码
*/
public static function bindMobile($openId, $sourceType, $mobile, $area, $password = '', $nickname = '')
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.bind';
$param['mobile'] = $mobile;
$param['open_id'] = $openId;
$param['source_type'] = $sourceType;
$param['area'] = $area;
if (!empty($nickname)) {
$param['nickname'] = $nickname;
}
if (!empty($password)) {
$param['password'] = $password;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 换绑手机检验
* @param string $mobile 手机号
* @param string $area 国别码
*/
public static function changeCheck($mobile, $area)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.changeCheck';
$param['mobile'] = $mobile;
$param['area'] = $area;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 换绑手机
* @param string $uid 用户Id
* @param string $mobile 手机号
* @param string $area 国别码
* @param string $code 验证码
*/
public static function changeMobile($uid, $mobile, $area, $code)
{
$param = Yohobuy::param();
$param['method'] = 'app.passport.changeMobile';
$param['mobile'] = $mobile;
$param['uid'] = $uid;
$param['code'] = $code;
$param['area'] = $area;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
... ... @@ -108,18 +108,22 @@ class RegData
}
/**
* 发送手机注册验证码
* 发送手机注册验证码-PC
*
* @param string $area 地区号 如"86"
* @param string $mobile 手机号
* @param string $clientType 客户端
* @return array
*/
public static function sendCodeToMobile($area, $mobile)
public static function sendCodeToMobile($area, $mobile, $clientType = 'web')
{
$param = Yohobuy::param();
$param['method'] = 'app.register.sendRegCodeToMobile';
$param['debug'] = 'Y';
$param['area'] = $area;
$param['mobile'] = $mobile;
$param['client_type'] = $clientType;
$param['private_key'] = Yohobuy::$privateKeyList[$clientType];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(Yohobuy::API_URL, $param);
... ...
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
use Api\Sign;
/**
* 品牌数据接口操作类
*
* @name BrandData
* @package Library/LibModels/wap/Category
* @copyright yoho.inc
* @version 1.0 (2015-10-10)
* @author gtskk <rocky.zhang@yoho.cn>
*/
class BrandData
{
const URI_BRAND_TOPPOS = 'operations/api/v5/resource/get';
const URL_BRAND_LOGO = '/cmsproduct/service/v1/brands';
const URL_BRAND_FOLDER = '/cmsproduct/service/v1/brands';
const URL_BRAND_NODECONTENT = '/operations/service/v6/htmlcontent';
/**
* 获取品牌简介
*
* @param integer $brandId 品牌ID
* @param int 用户ID
* @return array 品牌介绍信息
*/
public static function getBrandIntro($brandId, $uid)
{
// 构建必传参数
$param = Yohobuy::param();
$param['brand_id'] = $brandId;
$param['uid'] = $uid;
$param['method'] = 'app.brand.getBrandIntro';
$param['client_secret'] = Sign::getSign($param);
$cache = empty($uid) ? 3600 : false;
return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时
}
/**
* 获取品牌banner图
* @param integer $brandId 品牌ID
* @return array banner图
*/
public static function getBrandBanner($brandId)
{
// 构建必传参数
$param = Yohobuy::param();
$param['brand_id'] = $brandId;
$param['method'] = 'app.brand.banner';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时
}
/**
* 获取品牌介绍详情
*
* @param int $brandId 品牌id
* @return array
*/
public static function getBrandLogo($brandId)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByids', array($brandId));
}
/**
* 通过域名获取品牌LOGO信息
*
* @param int $domain 品牌domain
* @return array
*/
public static function getBrandLogoByDomain($domain, $fields = 'less')
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByDomain', array($domain, $fields));
}
/**
* 通过品牌id获取品牌Folder
*
* @param int $brand_id 品牌id
* @param int $status 状态
* @return array
*/
public static function getFolderByBrand($brand_id, $status = 1)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_FOLDER, 'getFolderByBrand', array($brand_id, $status));
}
/**
* 根据节点和运行模式选择静态内容
* @param $node 20141219-100447
* @param string $mode
* @return mixed
*/
public static function getByNodeContent($node, $mode = 'release')
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_NODECONTENT, 'getByNodeContent', array($node, $mode));
}
/*
* 分开取数,品牌一览 顶部的轮翻广告及热门品牌数据-PC
* @param string $contentCode 获取广告资源需要的位置码
*/
public static function getBrandTopData($contentCode, $clientType = 'web')
{
/* 顶部的轮翻广告及热门品牌数据 */
$param = Yohobuy::param();
$param['content_code'] = $contentCode;
$param['client_type'] = $clientType;
$param['private_key'] = Yohobuy::$privateKeyList[$clientType];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param);
}
/**
* 分开取数,获取品牌一览 "按字母'A-Z'分组的品牌列表数据"
* @param int $channel 频道标识 1:男,2:女,3:潮童,4:创意生活
*/
public static function getBrandListData($channel = 1)
{
// 构建必传参数
$param = Yohobuy::param();
$param['method'] = 'app.brand.brandlist';
if (is_numeric($channel)) {
$param['yh_channel'] = $channel;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
use Api\Sign;
/**
* 品牌数据接口操作类
*
* @name BrandData
* @package Library/LibModels/wap/Category
* @copyright yoho.inc
* @version 1.0 (2015-10-10)
* @author gtskk <rocky.zhang@yoho.cn>
*/
class BrandData
{
const URI_BRAND_TOPPOS = 'operations/api/v5/resource/get';
const URL_BRAND_LOGO = '/cmsproduct/service/v1/brands';
const URL_BRAND_FOLDER = '/cmsproduct/service/v1/brands';
const URL_BRAND_NODECONTENT = '/operations/service/v6/htmlcontent';
/**
* 获取品牌简介
*
* @param integer $brandId 品牌ID
* @param int 用户ID
* @return array 品牌介绍信息
*/
public static function getBrandIntro($brandId, $uid)
{
// 构建必传参数
$param = Yohobuy::param();
$param['brand_id'] = $brandId;
$param['uid'] = $uid;
$param['method'] = 'app.brand.getBrandIntro';
$param['client_secret'] = Sign::getSign($param);
$cache = empty($uid) ? 3600 : false;
return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时
}
/**
* 获取品牌banner图
* @param integer $brandId 品牌ID
* @return array banner图
*/
public static function getBrandBanner($brandId)
{
// 构建必传参数
$param = Yohobuy::param();
$param['brand_id'] = $brandId;
$param['method'] = 'app.brand.banner';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时
}
/**
* 获取品牌介绍详情
*
* @param int $brandId 品牌id
* @return array
*/
public static function getBrandLogo($brandId)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByids', array($brandId));
}
/**
* 通过域名获取品牌LOGO信息
*
* @param int $domain 品牌domain
* @return array
*/
public static function getBrandLogoByDomain($domain, $fields = 'less')
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByDomain', array($domain, $fields));
}
/**
* 通过品牌id获取品牌Folder
*
* @param int $brand_id 品牌id
* @param int $status 状态
* @return array
*/
public static function getFolderByBrand($brand_id, $status = 1)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_FOLDER, 'getFolderByBrand', array($brand_id, $status));
}
/**
* 根据节点和运行模式选择静态内容
* @param $node 20141219-100447
* @param string $mode
* @return mixed
*/
public static function getByNodeContent($node, $mode = 'release')
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_NODECONTENT, 'getByNodeContent', array($node, $mode));
}
/*
* 分开取数,品牌一览 顶部的轮翻广告及热门品牌数据-PC
* @param string $contentCode 获取广告资源需要的位置码
*/
public static function getBrandTopData($contentCode, $clientType = 'web')
{
/* 顶部的轮翻广告及热门品牌数据 */
$param = Yohobuy::param();
$param['content_code'] = $contentCode;
$param['client_type'] = $clientType;
$param['private_key'] = Yohobuy::$privateKeyList[$clientType];
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param);
}
/**
* 分开取数,获取品牌一览 "按字母'A-Z'分组的品牌列表数据"
* @param int $channel 频道标识 1:男,2:女,3:潮童,4:创意生活
*/
public static function getBrandListData($channel = 1)
{
// 构建必传参数
$param = Yohobuy::param();
$param['method'] = 'app.brand.brandlist';
if (is_numeric($channel)) {
$param['yh_channel'] = $channel;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取品牌banner信息
*
* @param string $brandId
* @param boolean $isOnlyUrl 是否指返回链接
* @return array
*/
public static function getBannerInfo($brandId, $isOnlyUrl = false)
{ // 构建必传参数
$param = Yohobuy::param();
$param['method'] = 'web.brand.banner';
$param['brand_id'] = $brandId;
$param['client_secret'] = Sign::getSign($param);
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace LibModels\Web\Product;
use Api\Sign;
use Api\Yohobuy;
/**
* 商品详情相关的数据模型
*
* @name DetailData
* @package LibModels/Web/Product
* @copyright yoho.inc
* @version 1.0 (2016-02-18 18:56:48)
* @author fei.hong <fei.hong@yoho.cn>
*/
class DetailData
{
/**
* 商品基本信息
*
* @param int $productId 商品ID
* @param int $uid 用户ID
* @param int $productSkn SKN
* @return array
*/
public static function baseInfo($productId, $uid, $productSkn = null)
{
$param = Yohobuy::param();
$param['method'] = 'h5.product.data';
if ($productId !== null) {
$param['productId'] = $productId;
} elseif ($productSkn !== null) {
$param['product_skn'] = $productSkn;
}
if (!empty($uid)) {
$param['uid'] = $uid;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 商品尺码信息
*
* @param int $productSkn 商品SKN号
* @return array
*/
public static function sizeInfo($productSkn)
{
$param = Yohobuy::param();
$param['method'] = 'h5.product.intro';
$param['productskn'] = $productSkn;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询内容列表
*
* @param int $uid 用户ID
* @param int $productId 产品ID
* @param int $pageNum 页码数
* @param int $pageSize 每页显示个数
* @return array
*/
public static function consultList($uid, $productId, $pageNum, $pageSize)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.li';
$param['product_id'] = $productId;
if (!empty($uid)) {
$param['uid'] = $uid;
}
$param['page'] = $pageNum;
$param['limit'] = $pageSize;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 常见问题列表
*
* @return array
*/
public static function commonConsultList()
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.common';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 评论内容列表
*
* @param int $productId 产品ID
* @param int $pageNum 页码数
* @param int $pageSize 每页显示个数
* @return array
*/
public static function commentList($productId, $pageNum, $pageSize)
{
$param = Yohobuy::param();
$param['method'] = 'app.comment.li';
$param['product_id'] = $productId;
$param['page'] = $pageNum;
$param['limit'] = $pageSize;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 为你优选的商品列表
*
* @param int $productSkn 商品SKN号
* @return array
*/
public static function preference($productSkn, $channel, $brandId)
{
$param = Yohobuy::param();
$param['method'] = 'h5.preference.Search';
$param['productskn'] = $productSkn;
$param['yhchannel'] = $channel;
$param['brandId'] = $brandId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时
}
/**
* 添加咨询
*
* @param int $uid 用户ID
* @param int $productId 商品ID
* @return array
*/
public static function addConsult($uid, $productId, $content)
{
$param = Yohobuy::param();
$param['method'] = 'h5.consult.add';
$param['product_id'] = $productId;
$param['content'] = $content;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(Yohobuy::API_URL, $param);
}
/**
* 商品信息
*
* @param int $productSkn 商品SKN号
* @return array
*/
public static function product($productSkn)
{
$param = Yohobuy::param();
$param['method'] = 'app.product.data';
$param['product_skn'] = $productSkn;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询点赞
*
* @param int $uid 用户ID
* @param int $id 咨询ID
* @return array
*/
public static function upvoteConsult($uid, $id)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.like';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询有用
*
* @param int $uid 用户ID
* @param int $id 咨询ID
* @return array
*/
public static function usefulConsult($uid, $id)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.useful';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
... ...
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
use Api\Sign;
/**
* FavoriteData
* 收藏相关接口
* @author Administrator
*/
class FavoriteData
{
const URL_PRODUCT_FAVORITE = 'shops/service/v1/favorite/';
/**
* 根据uid和商品的skn查询是否被用户收藏
* @param $uid
* @param $productSkn
* @return boolean 收藏 true 未收藏 false
*/
public static function getUidProductFav($uid, $productSkn)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $productSkn));
}
/**
* 根据uid和商品的skn收藏商品
* @param $uid
* @param $productSkn
* @return bool
*/
public static function addUidProductFav($uid, $productSkn, $isBrand = false)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.add';
$param['id'] = $productSkn;
$param['uid'] = $uid;
$param['type'] = $isBrand ? 'brand' : 'product';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(Yohobuy::API_URL, $param);
}
/**
* 根据uid和商品的skn取消收藏商品
* @param $uid
* @param $productSkn
* @return bool
*/
public static function delUidProductFav($uid, $productSkn, $isBrand = false)
{
$param = Yohobuy::param();
$param['method'] = 'app.favorite.cancel';
$param['fav_id'] = $productSkn;
$param['uid'] = $uid;
$param['type'] = $isBrand ? 'brand' : 'product';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(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));
}
}
<?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);
}
}
... ...
<?php
namespace LibModels\Web\Product;
use Api\Yohobuy;
use Api\Sign;
class ItemData
{
const PRODUCT_BASE_INFO = 'product/queryProductDetailByProductId';
const PRODUCT_SIZE_INFO = 'product/queryProductIntroBySkn';
const PRODUCT_CONSULT_LIST = 'consult/queryConsults';
const PRODUCT_COMMENT_LIST = 'sns/comments/commentList';
/**
* 商品基本信息
*
* @param int $productId 商品ID
* @param int $uid 用户ID
* @param int $productSkn SKN
* @return array
*/
public static function baseInfo($productId, $uid, $productSkn = null)
{
$param = Yohobuy::param();
$param['method'] = 'h5.product.data';
if ($productId !== null) {
$param['productId'] = $productId;
} elseif ($productSkn !== null) {
$param['product_skn'] = $productSkn;
}
if (!empty($uid)) {
$param['uid'] = $uid;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 商品尺码信息
*
* @param int $productSkn 商品SKN号
* @param boolean $isOnlyUrl 是否指返回链接
* @return array
*/
public static function sizeInfo($productSkn, $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'h5.product.intro';
$param['productskn'] = $productSkn;
$param['client_secret'] = Sign::getSign($param);
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询内容列表
*
* @param int $uid 用户ID
* @param int $productId 产品ID
* @param int $pageNum 页码数
* @param int $pageSize 每页显示个数
* @return array
*/
public static function consultList($uid, $productId, $pageNum, $pageSize)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.li';
$param['product_id'] = $productId;
if (!empty($uid)) {
$param['uid'] = $uid;
}
$param['page'] = $pageNum;
$param['limit'] = $pageSize;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 常见问题列表
*
* @return array
*/
public static function commonConsultList()
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.common';
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 评论内容列表
*
* @param int $productId 产品ID
* @param int $pageNum 页码数
* @param int $pageSize 每页显示个数
* @return array
*/
public static function commentList($productId, $pageNum, $pageSize)
{
$param = Yohobuy::param();
$param['method'] = 'app.comment.li';
$param['product_id'] = $productId;
$param['page'] = $pageNum;
$param['limit'] = $pageSize;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 为你优选的商品列表
*
* @param int $productSkn 商品SKN号
* @return array
*/
public static function preference($productSkn, $channel, $brandId)
{
$param = Yohobuy::param();
$param['method'] = 'h5.preference.Search';
$param['productskn'] = $productSkn;
$param['yhchannel'] = $channel;
$param['brandId'] = $brandId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时
}
/**
* 添加咨询
*
* @param int $uid 用户ID
* @param int $productId 商品ID
* @return array
*/
public static function addConsult($uid, $productId, $content)
{
$param = Yohobuy::param();
$param['method'] = 'h5.consult.add';
$param['product_id'] = $productId;
$param['content'] = $content;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(Yohobuy::API_URL, $param);
}
/**
* 商品信息
*
* @param int $productSkn 商品SKN号
* @return array
*/
public static function product($productSkn)
{
$param = Yohobuy::param();
$param['method'] = 'app.product.data';
$param['product_skn'] = $productSkn;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询点赞
*
* @param int $uid 用户ID
* @param int $id 咨询ID
* @return array
*/
public static function upvoteConsult($uid, $id)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.like';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 咨询有用
*
* @param int $uid 用户ID
* @param int $id 咨询ID
* @return array
*/
public static function usefulConsult($uid, $id)
{
$param = Yohobuy::param();
$param['method'] = 'app.consult.useful';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取详情页的活动Banner
*
* @param int $productId
* @param string $client_type
* @param boolean $isOnlyUrl 是否指返回链接
* @return array
*/
public static function getProductBanner($productId, $client_type ='web', $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'web.productBanner.data';
$param['product_id'] = $productId;
$param['client_type'] = $client_type;
$param['private_key'] = Yohobuy::$privateKeyList[$client_type];
$param['client_secret'] = Sign::getSign($param);
//只是返回链接
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取商品的热区
*
* @param int $productId
* @return array
*/
public static function getProductHotArea($productId)
{
$param = Yohobuy::param();
$param['method'] = 'web.productCollocation.list';
$param['product_id'] = $productId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取模特卡信息
*
* @param int $productId
* @param boolean $isOnlyUrl 是否指返回链接
* @return array
*/
public static function getProductModelCard($productId, $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'web.productModelcard.list';
$param['product_id'] = $productId;
$param['client_secret'] = Sign::getSign($param);
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取商品舒适度
*
* @param int $productId
* @param boolean $isOnlyUrl 是否指返回链接
* @return array
*/
public static function getProductComfort($productId, $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'web.productComfort.data';
$param['product_id'] = $productId;
$param['client_secret'] = Sign::getSign($param);
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取模特试穿
*
* @param string $productSkn
* @param boolean $isOnlyUrl 是否指返回链接
* @param string $isOnlyUrl
*/
public static function getProductModelTry($productSkn, $isOnlyUrl = false)
{
$param = Yohobuy::param();
$param['method'] = 'web.productModelTry.data';
$param['product_skn'] = $productSkn;
$param['client_secret'] = Sign::getSign($param);
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
}
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
\ No newline at end of file
... ...
... ... @@ -21,28 +21,39 @@ class SearchData
public static function getUrl($type = '')
{
defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'developer');
switch (APPLICATION_ENV) {
case 'production':
if ($type == 'sort') {
return 'http://101.200.31.165/yohosearch/sortgroup.json';
return 'http://x.yohobuy.com/yohosearch/sortgroup.json';
// return 'http://101.200.31.165/yohosearch/sortgroup.json';
}
elseif ($type == 'discount') {
return 'http://101.200.31.165/yohosearch/discount.json';
return 'http://x.yohobuy.com/yohosearch/discount.json';
// return 'http://101.200.31.165/yohosearch/discount.json';
}
elseif ($type == 'recent') {
return 'http://101.200.31.165/yohosearch/recent.json';
return 'http://x.yohobuy.com/yohosearch/recent.json';
// return 'http://101.200.31.165/yohosearch/recent.json';
}
elseif ($type == 'suggest') {
return 'http://101.200.31.165/yohosearch/suggest.json';
return 'http://x.yohobuy.com/yohosearch/suggest.json';
// return 'http://101.200.31.165/yohosearch/suggest.json';
}
else if($type == 'new-shelve') {
return 'http://101.200.31.165/yohosearch/new-shelve.json';
return 'http://x.yohobuy.com/yohosearch/new-shelve.json';
// return 'http://101.200.31.165/yohosearch/new-shelve.json';
}
elseif ($type == 'shop') {
return 'http://101.200.31.165/yohosearch/shops.json';
return 'http://x.yohobuy.com/yohosearch/shops.json';
// return 'http://101.200.31.165/yohosearch/shops.json';
}
return 'http://101.200.31.165/yohosearch/search.json';
elseif ($type == 'brand') {
return 'http://x.yohobuy.com/yohosearch/brand/list.json';
// return 'http://101.200.31.165/yohosearch/brand/list.json';
}
return 'http://x.yohobuy.com/yohosearch/search.json';
// return 'http://101.200.31.165/yohosearch/search.json';
case 'preview':
if ($type == 'sort') {
... ... @@ -63,37 +74,53 @@ class SearchData
elseif ($type == 'shop') {
return 'http://101.200.31.165/yohosearch/shops.json';
}
elseif ($type == 'brand') {
return 'http://101.200.31.165/yohosearch/brand/list.json';
}
return 'http://101.200.31.165/yohosearch/search.json';
case 'testing':
case 'developer':
default:
if ($type == 'sort') {
//return 'http://101.200.31.165/yohosearch/sortgroup.json';
return 'http://182.92.99.119:8080/yohosearch/sortgroup.json';
return 'http://x.yohobuy.com/yohosearch/sortgroup.json';
// return 'http://101.200.31.165/yohosearch/sortgroup.json';
// return 'http://182.92.99.119:8080/yohosearch/sortgroup.json';
}
elseif ($type == 'discount') {
//return 'http://101.200.31.165/yohosearch/discount.json';
return 'http://182.92.99.119:8080/yohosearch/discount.json';
return 'http://x.yohobuy.com/yohosearch/discount.json';
// return 'http://101.200.31.165/yohosearch/discount.json';
// return 'http://182.92.99.119:8080/yohosearch/discount.json';
}
elseif ($type == 'recent') {
//return 'http://101.200.31.165/yohosearch/recent.json';
return 'http://182.92.99.119:8080/yohosearch/recent.json';
return 'http://x.yohobuy.com/yohosearch/recent.json';
// return 'http://101.200.31.165/yohosearch/recent.json';
// return 'http://182.92.99.119:8080/yohosearch/recent.json';
}
elseif ($type == 'suggest') {
return 'http://x.yohobuy.com/yohosearch/suggest.json';
// return 'http://101.200.31.165/yohosearch/suggest.json';
return 'http://182.92.99.119:8080/yohosearch/suggest.json';
// return 'http://182.92.99.119:8080/yohosearch/suggest.json';
}
else if($type == 'new-shelve') {
return 'http://182.92.99.119:8080/yohosearch/new-shelve.json';//'http://182.92.99.119:8080/yohosearch/new-shelve.json';
return 'http://x.yohobuy.com/yohosearch/new-shelve.json';//'http://182.92.99.119:8080/yohosearch/new-shelve.json';
// return 'http://182.92.99.119:8080/yohosearch/new-shelve.json';//'http://182.92.99.119:8080/yohosearch/new-shelve.json';
}
elseif ($type == 'shop') {
//return 'http://101.200.31.165/yohosearch/shops.json';
return 'http://182.92.99.119:8080/yohosearch/shops.json';
return 'http://x.yohobuy.com/yohosearch/shops.json';
// return 'http://101.200.31.165/yohosearch/shops.json';
// return 'http://182.92.99.119:8080/yohosearch/shops.json';
}
elseif ($type == 'search') {
return 'http://182.92.99.119:8080/yohosearch/search-once.json';
}
return 'http://182.92.99.119:8080/yohosearch/search.json';
elseif ($type == 'brand') {
return 'http://x.yohobuy.com/yohosearch/brand/list.json';
// return 'http://101.200.31.165/yohosearch/brand/list.json';
// return 'http://182.92.99.119:8080/yohosearch/brand/list.json';
}
return 'http://x.yohobuy.com/yohosearch/search.json';
//return 'http://101.200.31.165/yohosearch/search.json';
// return 'http://182.92.99.119:8080/yohosearch/search.json';
}
}
... ... @@ -143,6 +170,7 @@ class SearchData
$param['status'] = 1; // 是否上架,1表示在架,2表示不在
$param['sales'] = 'Y'; // 只搜索销售的产品
$param['stocknumber'] = 1; // 过滤掉已售罄的商品
$param['attribute_not'] = '2'; //过滤掉赠品
// $param['needFilter'] = 1; // 是否需要返回筛选条件
if (!isset($condition['order'])) {
$param['order'] = $orderMaps['s_t_desc'];
... ... @@ -171,11 +199,11 @@ class SearchData
/**
* 根据分类列表获取商品信息
*
* @param array $params
* @param array $param
* @param array $sortList
* @return array
*/
public static function getSearchDataBySort(array $params, array $sortList)
public static function getSearchDataBySort(array $param, array $sortList)
{
// $data = array();
// foreach ($sortList as $v) {
... ... @@ -195,10 +223,14 @@ class SearchData
/* code review by fei.hong: 2016/01/26 优化合并misort参数, 减少调用搜索接口的次数 */
$data = array();
// 按照时间降序排的参数
$params['order'] = 'shelve_time:desc';
//按照时间降序排的参数
$param['order'] = 'shelve_time:desc';
$param['status'] = 1; // 是否上架,1表示在架,2表示不在
$param['sales'] = 'Y'; // 只搜索销售的产品
$param['attribute_not'] = 2; //过滤掉赠品
$param['stocknumber'] = 3; // 过滤掉即将售罄的商品
// 获取新品的接口URL,以数组列表返回
$urlList = self::getNewArrivalUrl($sortList, $params);
$urlList = self::getNewArrivalUrl($sortList, $param);
// 并行调用搜索新品接口
$searchd = Yohobuy::getMulti($urlList);
... ... @@ -332,6 +364,7 @@ class SearchData
$param['status'] = 1; // 是否上架,1表示在架,2表示不在
$param['sales'] = 'Y'; // 只搜索销售的产品
$param['stocknumber'] = 1; // 过滤掉已售罄的商品
$param['attribute_not'] = 2; //过滤掉赠品
if (!isset($condition['order'])) {
$param['order'] = $orderMaps['s_t_desc'];
} else {
... ... @@ -359,7 +392,6 @@ class SearchData
* @param $condition
* @return string
*/
public static function getClassesUrl($condition = array())
{
$condition['sales'] = 'Y'; //在销售商品分类
... ... @@ -419,6 +451,15 @@ class SearchData
{
return Yohobuy::httpBuildQuery(SearchData::getUrl('shop'), $param);
}
/**
* 获取品牌列表接口地址
* @param $param
* @return string
*/
public static function getBrandListUrl($param = array())
{
return Yohobuy::httpBuildQuery(SearchData::getUrl('brand'), $param);
}
/**
* 获取list页广告数据
... ... @@ -433,7 +474,7 @@ class SearchData
'middle_sort_id' => $misort
);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_INDEX_AD, $param);
return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_INDEX_AD, $param, 600, false, 1); // 有缓存10分钟
}
... ... @@ -498,4 +539,31 @@ class SearchData
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* search获取所有品牌list
* @return type
*/
public static function getBrandData()
{
return Yohobuy::get(self::getUrl('brand'),array(), 3600);
}
/**
* 获取条件获取分类
*
* @param array $condition [ msort: 产品大分类ID, misort:产品中分类ID, sort: 小分类ID]
* @param boolean $isOnlyUrl
* @return mixed
*/
public static function getSortByCondition(array $condition, $isOnlyUrl = false) {
$result = array();
if(!empty($condition)) {
if($isOnlyUrl) {
return Yohobuy::httpBuildQuery(self::getUrl('sort'), $condition);
}
$result = Yohobuy::get(self::getUrl('sort'), $condition);
}
return $result;
}
}
\ No newline at end of file
... ...
<?php
namespace WebPlugin;
use WebPlugin\Paging;
use WebPlugin\Helpers;
use LibModels\Web\Product\BrandData;
use Configs\ChannelConfig;
/**
* 搜索辅助类
*/
class HelperHome
{
/**
* 格式化喜欢的品牌
* @param $brandInfo
* @param int $i
* @return array
*/
public static function formatFavBrand($brandInfo, $i = 10)
{
//取前20个热销品牌
$hotBrands = array();
if ($brandInfo) {
foreach ($brandInfo as $value) {
if ($value['is_hot'] == 'Y') {
$hotBrands[] = array(
'href' => Helpers::url('', '', $value['brand_domain']),
'logo' => Images::getSourceUrl($value['brand_ico'], 'brandLogo'),
'name' => $value['brand_name'],
);
$i--;
}
if ($i <= 0) {
break;
}
}
}
return $hotBrands;
}
/**
* 格式化新品上架数据(个人中心)
* @param $product
* @return array
*/
public static function formatNew($product)
{
$result = array();
foreach ($product as $key => $val) {
$result[$key]['href'] = Helpers::getUrlBySkc($val['product_id'], $val['goods_list'][0]['product_skc'], $val['cn_alphabet']);
$result[$key]['thumb'] = Images::getImageUrl($val['default_images'], 400, 500);
$result[$key]['name'] = $val['product_name'];
$result[$key]['price'] = $val['sales_price'];
}
return $result;
}
}
... ...