NewsaleData.php 6.24 KB
<?php
namespace LibModels\Wap\Product;

use Api\Yohobuy;
use Api\Sign;
use Plugin\Helpers;

/**
 * 新品到着,折扣专区接口操作类
 * 
 * @name NewsaleData
 * @package Library/LibModels/wap/Product
 * @copyright yoho.inc
 * @version 1.0 (2015-10-8)
 * @author gtskk <rocky.zhang@yoho.cn>
 */
class NewsaleData
{

	/**
	 * 获取新品到着,折扣专区焦点图数据
	 * @param  string $contentCode 	内容位置码
	 * @return array              	新品到着焦点图有关数据
	 */
	public static function getNewsaleFocus($contentCode)
	{
		// 构建必传参数
		$param = Yohobuy::param();

		$param['content_code'] = $contentCode;
        $param['client_secret'] = Sign::getSign($param);
        
        return Yohobuy::get(Yohobuy::SERVICE_URL.'operations/api/v5/resource/get', $param);
	}

	/**
	 * 获取新品到着商品数据
	 * 
	 * @param  string $gender 		"1,3"表示男, "2,3"表示女, "1,2,3"表示全部
	 * @param  string $channel 		1表示男, 2表示女
	 * @param  integer $limit    	查询返回的最大限制数, 默认为50
	 * @param  integer $page 		分页第几页, 默认第1页
	 * @return array           		新品到着商品数据
	 */
	public static function getNewProducts($gender, $channel, $limit = 50, $page = 1)
	{
		$param = Yohobuy::param();
		$param['method'] = 'app.search.newProduct';
		$param['gender'] = $gender;
		$param['page'] = $page;
		$param['limit'] = $limit;
		$param['yh_channel'] = $channel;

		// 构建url地址列表
		$urlList = array();
		$param['dayLimit'] = 1;
		$param['client_secret'] = Sign::getSign($param);
		$urlList['new'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		$param['dayLimit'] = 2;
		unset($param['client_secret']);
		$param['client_secret'] = Sign::getSign($param);
		$urlList['week'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		$param['dayLimit'] = 3;
		unset($param['client_secret']);
		$param['client_secret'] = Sign::getSign($param);
		$urlList['sale'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		//var_dump($urlList);exit;
		
		return Yohobuy::getMulti($urlList);
	}

	/**
	 * 筛选新品到着、折扣专区商品
	 * 
	 * @param  string $gender  	 "1,3"表示男, "2,3"表示女, "1,2,3"表示全部
	 * @param  integer $brand  	 品牌Id
	 * @param  integer $sort   	 品类Id
	 * @param  integer $color  	 颜色Id
	 * @param  integer $size   	 尺码Id
	 * @param  string $price   	 价格
	 * @param  string $p_d     	 折扣
     * @param  integer $channel  表示频道号,1位男生,2为女生
	 * @param  integer $dayLimit 限制读取多少天,默认为1天
	 * @param  integer $limit    查询返回的最大限制数, 默认为50
	 * @param  integer $page 	 分页第几页, 默认第1页
	 * @return array          	 根据指定条件筛选出来的商品
	 */
	public static function selectNewSaleProducts($gender, $brand, $sort, $color, $size, $price, $p_d, $channel, $dayLimit = null, $limit = 50, $page = 1)
	{
		$selectItems = array(
			'gender' => $gender,
			'brand' => $brand,
			'sort' => $sort,
			'color' => $color,
			'size' => $size,
			'price' => $price,
			'p_d' => $p_d,
			'dayLimit' => $dayLimit
		);
		// 拉取筛选参数
		$queriedParams = array_filter($selectItems, function($v) {return $v !== null;});

		$param = Yohobuy::param();
		$param['method'] = 'app.search.newProduct';
		$param['page'] = $page;
		$param['limit'] = $limit;
		$param['yh_channel'] = $channel;
		$param = array_merge($param, $queriedParams);

		$param['client_secret'] = Sign::getSign($param);

		return Yohobuy::get(Yohobuy::API_URL, $param);
	}


	/**
	 * 获取折扣专区商品数据
	 * 
	 * @param  string $gender 		"1,3"表示男, "2,3"表示女, "1,2,3"表示全部
	 * @param  string $channel 		1表示男, 2表示女
	 * @param  integer $limit    	查询返回的最大限制数, 默认为50
	 * @param  integer $page 		分页第几页, 默认第1页
	 * @return array           		折扣专区商品数据
	 */
	public static function getSaleProducts($gender, $channel, $limit = 60, $page = 1)
	{
		$param = Yohobuy::param();
		$param['method'] = 'app.search.sales';
		$param['gender'] = $gender;
		$param['page'] = $page;
		$param['limit'] = $limit;
		$param['yh_channel'] = $channel;

		// 构建url地址列表
		$urlList = array();
		$param['p_d'] = '0.1,0.3';
		$param['client_secret'] = Sign::getSign($param);
		$urlList['1-3折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		$param['p_d'] = '0.4,0.6';
		unset($param['client_secret']);
		$param['client_secret'] = Sign::getSign($param);
		$urlList['4-6折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		$param['p_d'] = '0.7,0.9';
		unset($param['client_secret']);
		$param['client_secret'] = Sign::getSign($param);
		$urlList['7-9折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		$param['p_d'] = '0.1,0.9';
		unset($param['client_secret']);
		$param['client_secret'] = Sign::getSign($param);
		$urlList['ALL'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL,$param);
		
		return Yohobuy::getMulti($urlList);
	}

	/**
	 * 筛选折扣专区商品
	 * 
	 * @param  string gender  	"1,3"表示男, "2,3"表示女, "1,2,3"表示全部
	 * @param  integer brand  	品牌Id
	 * @param  integer sort   	品类Id
	 * @param  integer color  	颜色Id
	 * @param  integer size   	尺码Id
	 * @param  string price   	价格
	 * @param  string $channel 	1表示男, 2表示女
	 * @param  integer $p_d 	折扣
	 * @param  integer $limit   查询返回的最大限制数, 默认为50
	 * @param  integer $page 	分页第几页, 默认第1页
	 * @return array          	筛选出来的折扣专区商品
	 */
	public static function selectSaleProducts($gender, $brand, $sort, $color, $size, $price, $p_d, $channel, $limit = 50, $page = 1)
	{
		$selectItems = array(
			'gender' => $gender,
			'brand' => $brand,
			'sort' => $sort,
			'color' => $color,
			'size' => $size,
			'price' => $price
		);
		// 拉取筛选参数
		$queriedParams = array_filter($selectItems, function($v) {return $v !== null;});

		$param = Yohobuy::param();
		$param['method'] = 'app.search.sales';
		$param['yh_channel'] = $channel;
		$param['p_d'] = $p_d;
		$param['page'] = $page;
		$param['limit'] = $limit;
		$param = array_merge($param, $queriedParams);

		$param['client_secret'] = Sign::getSign($param);

		return Yohobuy::get(Yohobuy::API_URL, $param);
	}
    
}