|
|
<?php
|
|
|
|
|
|
namespace product;
|
|
|
|
|
|
use WebPlugin\Images;
|
|
|
use Api\Yohobuy;
|
|
|
use Plugin\Helpers;
|
|
|
use LibModels\Web\Product\HotrankData;
|
|
|
use LibModels\Web\Product\SearchData;
|
|
|
use LibModels\Web\Home\IndexData;
|
...
|
...
|
@@ -12,33 +14,49 @@ use WebPlugin\DataProcess\Channel as ChannelProcess; |
|
|
* Hotrank页数据模型
|
|
|
*/
|
|
|
|
|
|
class HotrankModel {
|
|
|
|
|
|
class HotrankModel
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
* 获取频道资源
|
|
|
*
|
|
|
* @return array
|
|
|
*/
|
|
|
static public function getChannelResource()
|
|
|
public static function getChannelResource()
|
|
|
{
|
|
|
$channel = isset($_COOKIE['_Channel']) ? $_COOKIE['_Channel'] : 'boys';
|
|
|
switch ($channel)
|
|
|
{
|
|
|
switch ($channel) {
|
|
|
case 'boys' :
|
|
|
$resource = array('channel' => 'boys', 'gender' => '1,3','road' => 1,'code' => '80d772d8dff25300a2a2e4c97165330c');
|
|
|
$resource = array(
|
|
|
'channel' => 'boys',
|
|
|
'gender' => '1,3',
|
|
|
'road' => 1,
|
|
|
'code' => '80d772d8dff25300a2a2e4c97165330c');
|
|
|
return $resource;
|
|
|
case 'girls' :
|
|
|
$resource = array('channel' => 'girls','gender' => '2,3','road' => 2,'code' => '8df64e505e94edb9881fd1e7efb702e9');
|
|
|
$resource = array(
|
|
|
'channel' => 'girls',
|
|
|
'gender' => '2,3',
|
|
|
'road' => 2,
|
|
|
'code' => '8df64e505e94edb9881fd1e7efb702e9');
|
|
|
return $resource;
|
|
|
case 'lifestyle' :
|
|
|
$resource = array('channel' => 'lifestyle','gender' => '','road' => 4,'code' => 'd131aba83a84a6977eee3a7403a713de');
|
|
|
$resource = array(
|
|
|
'channel' => 'lifestyle',
|
|
|
'gender' => '',
|
|
|
'road' => 4,
|
|
|
'code' => 'd131aba83a84a6977eee3a7403a713de');
|
|
|
return $resource;
|
|
|
case 'kids' :
|
|
|
$resource = array('channel' => 'kids','gender' => '','road' => 3,'code' => 'bd6a06a08f8ca9b0db762f78e0bc5b68');
|
|
|
$resource = array(
|
|
|
'channel' => 'kids',
|
|
|
'gender' => '',
|
|
|
'road' => 3,
|
|
|
'code' => 'bd6a06a08f8ca9b0db762f78e0bc5b68');
|
|
|
return $resource;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取热销排行所有资源
|
|
|
* @param $data 频道信息
|
...
|
...
|
@@ -46,26 +64,27 @@ class HotrankModel { |
|
|
* @param $page 页码
|
|
|
* @return array
|
|
|
*/
|
|
|
static public function HotrankResource($data,$sid,$page)
|
|
|
public static function getHotrankResource($data, $sid, $page)
|
|
|
{
|
|
|
//焦点图 热门品牌
|
|
|
$focus = self::getFocusResource($data['channel'], $data['code']);
|
|
|
$data['hotrank']['slide'] = $focus[0]['slide'];
|
|
|
$data['hotrank']['hotBrands'] = $focus[1]['hotBrands'];
|
|
|
|
|
|
// $focus = self::getFocusResource($data['channel'], $data['code']);
|
|
|
// $data['slide'] = $focus[0]['slide'];
|
|
|
// $data['hotBrands'] = $focus[1]['hotBrands'];
|
|
|
//人气单品 一周热卖
|
|
|
$config = array('sort' =>$sid,'gender' => $data['gender'],'road' => $data['road']);
|
|
|
$publiclist = self::getSearchData($config,$page,0);
|
|
|
$data['hotrank']['popular'] = $publiclist['popular'];
|
|
|
$data['hotrank']['hotWeek'] = $publiclist['hotWeek'];
|
|
|
|
|
|
$sort = ($sid == 1) ? '' : $sid;
|
|
|
$config = array(
|
|
|
'sort' => $sort,
|
|
|
'gender' => $data['gender'],
|
|
|
'road' => $data['road']);
|
|
|
$publiclist = self::getSearchData($config, $page, 0);
|
|
|
$data['popular'] = $publiclist['popular'];
|
|
|
$data['hotWeek'] = $publiclist['hotWeek'];
|
|
|
//分类标签
|
|
|
$nav = HotrankModel::getHotranktag('web',$data['road'],true);
|
|
|
$data['hotrank']['hotWeek']['nav'] = $nav;
|
|
|
|
|
|
return $data['hotrank'];
|
|
|
$nav = self::getHotrankTag('web', $data['road'], true);
|
|
|
$data['hotWeek']['nav'] = $nav;
|
|
|
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
* 一周热卖加载更多
|
...
|
...
|
@@ -73,194 +92,172 @@ class HotrankModel { |
|
|
* @param $sid 一周热卖分类id
|
|
|
* @param $page 页码
|
|
|
*/
|
|
|
static public function getListData($data,$sid,$page)
|
|
|
|
|
|
public static function getListData($data, $sid, $page)
|
|
|
{
|
|
|
$sort = '';
|
|
|
$sort = '';
|
|
|
//是否是默认标签
|
|
|
if($sid > 1)
|
|
|
{
|
|
|
if ($sid > 1) {
|
|
|
//通过ID获取标签信息
|
|
|
$info = HotrankData::getTagById($sid, false);
|
|
|
if(!empty($info['data']))
|
|
|
{
|
|
|
if (!empty($info['data'])) {
|
|
|
$sort = $info['data']['category_id'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//获取频道资源
|
|
|
$channel = self::getChannelResource();
|
|
|
//一周热卖
|
|
|
$config = array('sort' =>$sort,'gender' => $data['gender'],'road' => $data['road']);
|
|
|
$config = array(
|
|
|
'sort' => $sort,
|
|
|
'gender' => $data['gender'],
|
|
|
'road' => $data['road']);
|
|
|
$list = self::getSearchData($config, $page, 1);
|
|
|
$lister = $list['hotWeek']['list'];
|
|
|
$lister = array_values($lister);
|
|
|
if($sid == 1 && $page == 1)
|
|
|
{
|
|
|
if ($sid == 1 && $page == 1) {
|
|
|
$lister = array_slice($lister, 10, 50);
|
|
|
}else{
|
|
|
}
|
|
|
else {
|
|
|
$lister = array_slice($lister, 0, 50);
|
|
|
}
|
|
|
$data = array( 'code'=>200, 'data'=>$lister,);
|
|
|
$data = array(
|
|
|
'code' => 200,
|
|
|
'data' => $lister,);
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取焦点图,热门品牌资源
|
|
|
* @param string $channel
|
|
|
* @param string $content_code
|
|
|
* @return array
|
|
|
*/
|
|
|
static public function getFocusResource($channel, $content_code)
|
|
|
public static function getFocusResource($channel, $content_code)
|
|
|
{
|
|
|
$resource = IndexData::getResourceData($content_code);
|
|
|
// 格式化数据
|
|
|
$data = ChannelProcess::getFormat($channel, $resource['data']);
|
|
|
return $data;
|
|
|
$resource = IndexData::getResourceData($content_code);
|
|
|
// 格式化数据
|
|
|
$data = ChannelProcess::getFormat($channel, $resource['data']);
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取人气单品,一周热卖商品资源
|
|
|
* @param $config 过滤参数
|
|
|
* @param $page 当前页数
|
|
|
* @param $ajax 是否是ajax加载 默认0不是
|
|
|
*/
|
|
|
static public function getSearchData($config,$page,$ajax)
|
|
|
public static function getSearchData($config, $page, $ajax)
|
|
|
{
|
|
|
//配置查询商品参数
|
|
|
$viewNum = 60;
|
|
|
$param = array('order'=>'s_n_desc','viewNum'=>$viewNum,'page'=>$page,'stocknumber'=>1,'status'=>1,
|
|
|
'sort'=>$config['sort'],'gender'=>$config['gender'],'attribute_not'=>2);
|
|
|
if($ajax == 0)
|
|
|
{
|
|
|
if($config['sort'] != 0)
|
|
|
{
|
|
|
$param['sort'] = $sort_id;
|
|
|
}else{
|
|
|
$param['sort'] = '';
|
|
|
}
|
|
|
if($config['road'] == 3)
|
|
|
{
|
|
|
$param['msort'] = 365;
|
|
|
}elseif($config['road'] == 4){
|
|
|
$param['msort'] = 10;
|
|
|
}else{
|
|
|
$param['not_maxSortId'] = '10,365';
|
|
|
}
|
|
|
}else{
|
|
|
if(empty($param['sort']))
|
|
|
{
|
|
|
if($config['road'] == 3)
|
|
|
{
|
|
|
$param = array(
|
|
|
'order' => 's_n_desc',
|
|
|
'viewNum' => $viewNum,
|
|
|
'page' => $page,
|
|
|
'stocknumber' => 1,
|
|
|
'status' => 1,
|
|
|
'sort' => $config['sort'],
|
|
|
'gender' => $config['gender'],
|
|
|
'attribute_not' => 2);
|
|
|
if ($ajax == 0 || ($ajax == 1 && empty($param['sort']))) {
|
|
|
switch ($config['road']) {
|
|
|
case 3 :
|
|
|
$param['msort'] = 365;
|
|
|
}elseif($config['road'] == 4){
|
|
|
break;
|
|
|
case 4 :
|
|
|
$param['msort'] = 10;
|
|
|
}else{
|
|
|
break;
|
|
|
default :
|
|
|
$param['not_maxSortId'] = '10,365';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//根据给定查询数据搜索数据列表
|
|
|
$result = SearchData::searchElasticByCondition($param);
|
|
|
$data = self::getProductList($result,$page,$ajax);
|
|
|
$data = self::getProductList($result, $page, $ajax);
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取标签资源
|
|
|
* @param $client_type 客户端类型
|
|
|
* @param $channel 频道类型
|
|
|
* @param $is_concurrent 是否异步,true异步,false同步,默认true
|
|
|
* 获取标签资源
|
|
|
* @param $client_type 客户端类型
|
|
|
* @param $channel 频道类型
|
|
|
* @param $is_concurrent 是否异步,true异步,false同步,默认true
|
|
|
*/
|
|
|
static public function getHotranktag($client_type,$channel,$is_concurrent)
|
|
|
public static function getHotrankTag($client_type, $channel, $is_concurrent)
|
|
|
{
|
|
|
$list = \LibModels\Web\Product\HotrankData::getHotranktag($client_type,$channel,$is_concurrent);
|
|
|
$list = HotrankData::getHotrankTag($client_type, $channel, $is_concurrent);
|
|
|
$nav = array();
|
|
|
if(!empty($list['data']['list']))
|
|
|
{
|
|
|
foreach($list['data']['list'] as $li=>$lt)
|
|
|
{
|
|
|
$nav[$li]['sid'] = $lt['id'];
|
|
|
$nav[$li]['textCn'] = $lt['tag_name'];
|
|
|
}
|
|
|
if (!empty($list['data']['list'])) {
|
|
|
foreach ($list['data']['list'] as $li => $lt) {
|
|
|
$nav[$li]['sid'] = $lt['id'];
|
|
|
$nav[$li]['textCn'] = $lt['tag_name'];
|
|
|
}
|
|
|
}
|
|
|
return $nav;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 人气单品 一周热卖 数据处理
|
|
|
* @param $result 过滤参数
|
|
|
* @param $page 当前页数
|
|
|
* @param $ajax 是否是ajax加载 默认0不是
|
|
|
*/
|
|
|
static public function getProductList($result,$page,$ajax=0)
|
|
|
public static function getProductList($result, $page, $ajax = 0)
|
|
|
{
|
|
|
// 调用发起请求
|
|
|
Yohobuy::yarConcurrentLoop();
|
|
|
|
|
|
if(empty($result) || empty($result['data']) || empty($result['data']['product_list']))
|
|
|
{
|
|
|
return;
|
|
|
$product = array();
|
|
|
if (empty($result) || empty($result['data']) || empty($result['data']['product_list'])) {
|
|
|
return $product;
|
|
|
}
|
|
|
$data = $result['data']['product_list'];
|
|
|
$popular = array();
|
|
|
$hotWeek = array();
|
|
|
foreach($data as $key=>$val)
|
|
|
{
|
|
|
if(empty($val['goods_list']))
|
|
|
{
|
|
|
foreach ($data as $key => $val) {
|
|
|
if (empty($val['goods_list'])) {
|
|
|
continue;
|
|
|
}
|
|
|
$defaultGoodsId = 0;
|
|
|
foreach ($val['goods_list'] as $v)
|
|
|
{
|
|
|
if($v['is_default'] == 'Y')
|
|
|
{
|
|
|
foreach ($val['goods_list'] as $v) {
|
|
|
if ($v['is_default'] == 'Y') {
|
|
|
$defaultGoodsId = $v['goods_id'];
|
|
|
}
|
|
|
}
|
|
|
if(empty($defaultGoodsId))
|
|
|
{
|
|
|
if (empty($defaultGoodsId)) {
|
|
|
$defaultGoodsId = $val['goods_list'][0]['goods_id'];
|
|
|
}
|
|
|
|
|
|
$product_id = empty($val['product_id']) ? '' : $val['product_id'];
|
|
|
$re['name'] = $val['product_name'];
|
|
|
if($key <= 9 && $page == 1 && $ajax == 0)
|
|
|
{
|
|
|
$product['name'] = $val['product_name'];
|
|
|
if ($key <= 9 && $page == 1 && $ajax == 0) {
|
|
|
//人气单品
|
|
|
$re['rank'] = $key + 1;
|
|
|
$re['href'] = 'http://item.yohobuy.com/product/pro_'.$product_id.'_'.$defaultGoodsId.'.html';
|
|
|
$re['price'] = (int)$val['market_price'] == (int)$val['sales_price'] ? '' : $val['market_price'];
|
|
|
$re['sPrice'] = empty($val['sales_price']) ? '' : $val['sales_price'];
|
|
|
if($key <= 5)
|
|
|
{
|
|
|
$re['img'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 378, 504, 2);
|
|
|
$popular['list'][] = $re;
|
|
|
}else{
|
|
|
$re['img'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 280, 373, 2);
|
|
|
$popular['list'][] = $re;
|
|
|
$product['rank'] = $key + 1;
|
|
|
$product['href'] = 'http://item.yohobuy.com/product/pro_' . $product_id . '_' . $defaultGoodsId . '.html';
|
|
|
$product['price'] = (int) $val['market_price'] == (int) $val['sales_price'] ? '' : $val['market_price'];
|
|
|
$product['sPrice'] = empty($val['sales_price']) ? '' : $val['sales_price'];
|
|
|
if ($key <= 5) {
|
|
|
$product['img'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 378, 504, 2);
|
|
|
$popular['list'][] = $product;
|
|
|
}
|
|
|
else {
|
|
|
$product['img'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 280, 373, 2);
|
|
|
$popular['list'][] = $product;
|
|
|
}
|
|
|
}else{
|
|
|
}
|
|
|
else {
|
|
|
//一周热卖
|
|
|
$re['url'] = 'http://item.yohobuy.com/product/pro_'.$product_id.'_'.$defaultGoodsId.'.html';
|
|
|
$re['marketPrice'] = (int)$val['market_price'] == (int)$val['sales_price'] ? '' : $val['market_price'];
|
|
|
$re['salePrice'] = empty($val['sales_price']) ? '' : $val['sales_price'];
|
|
|
$re['rank'] = '';
|
|
|
$re['thumb'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 280, 373, 2);
|
|
|
$hot[] = $re;
|
|
|
// $product['url'] = 'http://item.yohobuy.com/product/pro_' . $product_id . '_' . $defaultGoodsId . '.html';
|
|
|
$product['url'] = Helpers::url('/product/pro',array('product_id' => $product_id,'defaultGoodsId'=> $defaultGoodsId),'item');
|
|
|
$product['marketPrice'] = (int) $val['market_price'] == (int) $val['sales_price'] ? '' : $val['market_price'];
|
|
|
$product['salePrice'] = empty($val['sales_price']) ? '' : $val['sales_price'];
|
|
|
$product['rank'] = '';
|
|
|
$product['thumb'] = empty($val['default_images']) ? '' : Images::getImageUrl($val['default_images'], 280, 373, 2);
|
|
|
$hot[] = $product;
|
|
|
}
|
|
|
}
|
|
|
$popular['name'] = '人气单品';
|
|
|
$hotWeek = array(
|
|
|
'name'=>'一周热卖',
|
|
|
'list'=>$hot,
|
|
|
'name' => '一周热卖',
|
|
|
'list' => $hot,
|
|
|
);
|
|
|
$data['popular'] = $popular;
|
|
|
$data['hotWeek'] = $hotWeek;
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
} |
|
|
\ No newline at end of file |
|
|
|
|
|
} |
...
|
...
|
|