Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYWAP
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
cailing
9 years ago
Commit
77b61eec483ef6a4e24e86728a92b683857793f6
1 parent
73544d74
热销排行
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
172 additions
and
71 deletions
library/LibModels/Web/Product/HotrankData.php
library/Plugin/DataProcess/WebChannel/Process.php
yohobuy/www.yohobuy.com/application/models/Product/Hotrank.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Index.php
library/LibModels/Web/Product/HotrankData.php
View file @
77b61ee
...
...
@@ -2,33 +2,33 @@
namespace
LibModels\Web\Product
;
use
Api\Yohobuy
;
use
Api\Sign
;
/**
* 热销排行
*
* */
*/
class
HotrankData
extends
\LibModels\Wap\Product\SearchData
{
const
URI_HOTRANK_RES
=
'/operations/service/v4/resource'
;
const
URI_HOTRANK_TAG
=
'/operations/api/v5/resource/get'
;
{
const
URI_HOTRANK_TAG
=
'http://test.service.api.yohobuy.com/operations/service/v1/hotranktag'
;
/**
获取热销排行
* 分类标签
* 获取标签
* $client_type 客户端类型
* $channel 频道类型
*/
public
static
function
getHotranktag
(
$client_type
=
'web'
,
$channel
=
0
,
$is_concurrent
=
true
,
$callback
=
''
)
public
static
function
getHotranktag
(
$client_type
=
'web'
,
$channel
=
0
,
$is_concurrent
=
true
)
{
// 构建必传参数
$params
=
Yohobuy
::
param
();
$params
[
'client_type'
]
=
'web'
;
$params
[
'channel'
]
=
$channel
;
$params
[
'is_concurrent'
]
=
true
;
$params
[
'callback'
]
=
$callback
;
$params
[
'client_secret'
]
=
Sign
::
getSign
(
$params
);
return
Yohobuy
::
get
(
Yohobuy
::
SERVICE_URL
.
self
::
URI_HOTRANK_TAG
,
$params
);
$params
=
array
(
'client_type'
=>
$client_type
,
'channel'
=>
$channel
,
'is_concurrent'
=>
$is_concurrent
);
return
Yohobuy
::
yarClient
(
self
::
URI_HOTRANK_TAG
,
'getTag'
,
$params
);
}
/**
* 通过ID获取标签信息
* $id 标签ID
*/
public
static
function
getTagById
(
$id
,
$is_concurrent
=
true
)
{
$params
[
'id'
]
=
$id
;
return
Yohobuy
::
yarClient
(
self
::
URI_HOTRANK_TAG
,
'getOneTag'
,
$params
);
}
}
\ No newline at end of file
...
...
library/Plugin/DataProcess/WebChannel/Process.php
View file @
77b61ee
...
...
@@ -834,9 +834,8 @@ class Process
{
$result
=
array
();
$temp
=
array
();
if
(
$data
[
$key
][
'template_name'
]
==
'custom_brands'
)
if
(
$data
[
$key
][
'template_name'
]
==
'custom_brands'
||
$data
[
$key
][
'template_name'
]
==
'kids_brands'
)
{
// print_r($data[$key]);
$result
=
array
(
'hotBrands'
=>
array
(
'name'
=>
''
,
...
...
@@ -856,7 +855,6 @@ class Process
{
$width
=
185
;
$height
=
86
;
$type
=
'lifestyle'
;
$val
[
'src'
]
=
Images
::
getImageUrl
(
$val
[
'src'
],
$width
,
$height
,
2
);
$val
[
'url'
]
=
Helpers
::
transUrl
(
$val
[
'url'
],
$type
);
$floor
[
'logoBrand'
][]
=
array
(
...
...
@@ -865,11 +863,8 @@ class Process
);
}
$floor
[
'moreBrand'
]
=
'http://yohobuy.com/brands'
;
//$floor['moreBrand'] = 'http://yohobuy.com/brands?gender=1,3&openby:yohobuy={"action":"go.list","params":{"actiontype":0,"gender":"1,3"}}';
//print_r($floor);
$type_key
=
sprintf
(
"%s_%s"
,
$type
,
$key
);
$cacheKey
=
sprintf
(
"%s_%s"
,
CacheConfig
::
KEY_INDEX_BRANDS_LIST_DATA
,
$type_key
);
//print_r($cacheKey);
Cache
::
set
(
$cacheKey
,
$floor
,
7200
);
$result
[
'hotBrands'
][
'brandUrl'
]
=
'/common/getIndexResourceBrand?type='
.
$type_key
;
//print_r($result['hotBrands']['brandUrl']);
...
...
yohobuy/www.yohobuy.com/application/models/Product/Hotrank.php
View file @
77b61ee
...
...
@@ -2,10 +2,9 @@
namespace
product
;
use
Plugin\Images
;
use
Plugin\Helpers
;
use
Plugin\Cache
;
use
Configs\CacheConfig
;
use
LibModels\Web\Home\IndexData
;
use
Api\Yohobuy
;
//use Plugin\Helpers;
//use LibModels\Web\Home\IndexData;
use
\LibModels\Web\Product\HotrankData
;
use
\LibModels\Web\Product\SearchData
;
...
...
@@ -14,14 +13,14 @@ class HotrankModel {
/**
* 人气单品 一周热卖
*/
static
public
function
getSearchData
(
$
condition
,
$options
)
static
public
function
getSearchData
(
$
param
,
$page
,
$ajax
)
{
// 调用接口查询商品数据
$result
=
SearchData
::
searchElasticByCondition
(
$
condition
);
$result
=
SearchData
::
searchElasticByCondition
(
$
param
);
//print_r($result);
if
(
!
empty
(
$result
)){
$res
=
self
::
getProductList
(
$result
);
$res
=
self
::
getProductList
(
$result
,
$page
,
$ajax
);
if
(
!
empty
(
$res
[
'popular'
])){
$data
[
'popular'
]
=
$res
[
'popular'
];
}
...
...
@@ -37,18 +36,16 @@ class HotrankModel {
/**
* 获取分类标签
*/
static
public
function
getHotranktag
(
$cl
asses
)
static
public
function
getHotranktag
(
$cl
ient_type
,
$channel
,
$is_concurrent
)
{
$list
=
SearchData
::
getClassesData
(
$classes
);
//print_r($list);
$list
=
\LibModels\Web\Product\HotrankData
::
getHotranktag
(
$client_type
,
$channel
,
$is_concurrent
);
$nav
=
array
();
if
(
!
empty
(
$list
[
'data'
][
'sort'
])){
foreach
(
$list
[
'data'
][
'sort'
]
as
$li
=>
$lt
){
$nav
[
$li
][
'sid'
]
=
$lt
[
'sort_id'
];
$nav
[
$li
][
'textCn'
]
=
$lt
[
'sort_name'
];
if
(
!
empty
(
$list
[
'data'
][
'list'
])){
foreach
(
$list
[
'data'
][
'list'
]
as
$li
=>
$lt
){
$nav
[
$li
][
'sid'
]
=
$lt
[
'id'
];
$nav
[
$li
][
'textCn'
]
=
$lt
[
'tag_name'
];
}
}
//print_r($nav);
return
$nav
;
}
...
...
@@ -56,8 +53,10 @@ class HotrankModel {
/**
* 人气单品 一周热卖 数据处理
*/
static
public
function
getProductList
(
$result
)
static
public
function
getProductList
(
$result
,
$page
,
$ajax
=
0
)
{
// 调用发起请求
Yohobuy
::
yarConcurrentLoop
();
/*----product start---------*/
if
(
empty
(
$result
)
||
empty
(
$result
[
'data'
])
||
empty
(
$result
[
'data'
][
'product_list'
])){
return
;
...
...
@@ -83,26 +82,35 @@ class HotrankModel {
$product_id
=
empty
(
$val
[
'product_id'
])
?
''
:
$val
[
'product_id'
];
$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
[
'name'
]
=
$val
[
'product_name'
];
if
(
$key
<=
9
){
$re
[
'rank'
]
=
$key
+
1
;
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
;
}
}
else
{
$re
[
'rank'
]
=
''
;
$re
[
'thumb'
]
=
empty
(
$val
[
'default_images'
])
?
''
:
Images
::
getImageUrl
(
$val
[
'default_images'
],
280
,
373
,
2
);
$hot
[]
=
$re
;
}
$re
[
'name'
]
=
$val
[
'product_name'
];
if
(
$key
<=
9
&&
$page
==
1
&&
$ajax
==
0
){
$re
[
'rank'
]
=
$key
+
1
;
if
(
$key
<=
5
){
$re
[
'price'
]
=
(
int
)
$val
[
'market_price'
]
==
(
int
)
$val
[
'sales_price'
]
?
''
:
'¥'
.
$val
[
'market_price'
];
$re
[
'sPrice'
]
=
empty
(
$val
[
'sales_price'
])
?
''
:
'¥'
.
$val
[
'sales_price'
];
$re
[
'img'
]
=
empty
(
$val
[
'default_images'
])
?
''
:
Images
::
getImageUrl
(
$val
[
'default_images'
],
378
,
504
,
2
);
$popular
[
'list'
][]
=
$re
;
}
else
{
$re
[
'price'
]
=
(
int
)
$val
[
'market_price'
]
==
(
int
)
$val
[
'sales_price'
]
?
''
:
'¥'
.
$val
[
'market_price'
];
$re
[
'sPrice'
]
=
empty
(
$val
[
'sales_price'
])
?
''
:
'¥'
.
$val
[
'sales_price'
];
$re
[
'img'
]
=
empty
(
$val
[
'default_images'
])
?
''
:
Images
::
getImageUrl
(
$val
[
'default_images'
],
280
,
373
,
2
);
$popular
[
'list'
][]
=
$re
;
}
}
else
if
(
$ajax
==
1
){
$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
[
'img'
]
=
empty
(
$val
[
'default_images'
])
?
''
:
Images
::
getImageUrl
(
$val
[
'default_images'
],
280
,
373
,
2
);
$hot
[]
=
$re
;
}
else
{
$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
;
}
}
$popular
[
'name'
]
=
'人气单品'
;
$hotWeek
=
array
(
'name'
=>
'一周热卖'
,
'list'
=>
$hot
,
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Index.php
View file @
77b61ee
...
...
@@ -2,12 +2,16 @@
use
Action\WebAction
;
use
LibModels\Web\Product\BrandData
;
use
LibModels\Web\Product\HotrankData
;
use
\
LibModels\Web\Product\HotrankData
;
use
product\HotrankModel
;
use
LibModels\Web\Home\IndexData
;
class
IndexController
extends
WebAction
{
public
$channel
;
public
$gender
;
public
$road
;
//频道
public
$code
;
/**
* 品牌首页
*/
...
...
@@ -53,7 +57,7 @@ class IndexController extends WebAction
}
public
function
hotrankAction
()
{
$this
->
setWebNavHeader
(
\Index\HomeModel
::
COOKIE_NAME_LIFESTYLE
);
$data
=
array
(
'hotrankPage'
=>
true
,
'hotrank'
=>
array
(
...
...
@@ -261,30 +265,124 @@ class IndexController extends WebAction
)
)
);
$cookie
=
$this
->
getCookie
(
'_Channel'
);
$cookie
=
'lifestyle'
;
$this
->
channel
=
isset
(
$cookie
)
?
$cookie
:
'boys'
;
switch
(
$this
->
channel
){
case
'boys'
:
$this
->
gender
=
'1,3'
;
$this
->
road
=
1
;
$this
->
code
=
'80d772d8dff25300a2a2e4c97165330c'
;
break
;
case
'girls'
:
$this
->
gender
=
'2,3'
;
$this
->
road
=
2
;
$this
->
code
=
'8df64e505e94edb9881fd1e7efb702e9'
;
break
;
case
'lifestyle'
:
$this
->
gender
=
''
;
$this
->
road
=
4
;
$this
->
code
=
'd131aba83a84a6977eee3a7403a713de'
;
break
;
case
'kids'
:
$this
->
gender
=
''
;
$this
->
road
=
3
;
$this
->
code
=
'bd6a06a08f8ca9b0db762f78e0bc5b68'
;
break
;
}
$this
->
setWebNavHeader
(
\Index\HomeModel
::
$this
->
channel
);
$data
=
array
(
'hotrankPage'
=>
true
,
'footerTop'
=>
true
,
'hotrank'
=>
array
()
);
//焦点图 热门品牌
$focus
=
\Index\HomeModel
::
getChannelResource
(
'lifestyle'
,
'd131aba83a84a6977eee3a7403a713de'
);
//print_r($focus);
$focus
=
\Index\HomeModel
::
getChannelResource
(
$this
->
channel
,
$this
->
code
);
$data
[
'hotrank'
][
'slide'
]
=
$focus
[
0
][
'slide'
];
$data
[
'hotrank'
][
'hotBrands'
]
=
$focus
[
1
][
'hotBrands'
];
//人气单品 一周热卖
$page
=
1
;
$param
=
array
(
'order'
=>
's_n_desc'
,
'viewNum'
=>
60
,
'page'
=>
1
,
'stocknumber'
=>
1
,
'status'
=>
1
,
'gender'
=>
''
,
'attribute_not'
=>
2
);
$publiclist
=
\product\HotrankModel
::
getSearchData
(
$param
,
$page
);
$page
=
$this
->
get
(
'page'
,
1
);
$sort_id
=
$this
->
get
(
'sid'
,
0
);
$viewNum
=
60
;
$param
=
array
(
'order'
=>
's_n_desc'
,
'viewNum'
=>
$viewNum
,
'page'
=>
$page
,
'stocknumber'
=>
1
,
'status'
=>
1
,
'gender'
=>
$this
->
gender
,
'attribute_not'
=>
2
);
if
(
$sort_id
!=
0
){
$param
[
'sort'
]
=
$sort_id
;
}
if
(
$this
->
road
==
3
){
$param
[
'msort'
]
=
365
;
}
elseif
(
$this
->
road
==
4
){
$param
[
'msort'
]
=
10
;
}
else
{
$param
[
'not_maxSortId'
]
=
'10,365'
;
}
$publiclist
=
\product\HotrankModel
::
getSearchData
(
$param
,
$page
,
0
);
$data
[
'hotrank'
][
'popular'
]
=
$publiclist
[
'popular'
];
$data
[
'hotrank'
][
'hotWeek'
]
=
$publiclist
[
'hotWeek'
];
//print_r($publiclist);
//分类标签
$classes
=
array
(
'gender'
=>
2
);
$nav
=
\product\HotrankModel
::
getHotranktag
(
$classes
);
$data
[
'hotrank'
][
'hotWeek'
][
'nav'
]
=
$nav
;
//print_r($data);
$nav
=
\product\HotrankModel
::
getHotranktag
(
'web'
,
$this
->
road
,
true
);
$data
[
'hotrank'
][
'hotWeek'
][
'nav'
]
=
$nav
;
$this
->
_view
->
display
(
'hotrank'
,
$data
);
}
/*
* 一周热卖加载更多
*/
public
function
getdataAction
()
{
$page
=
$this
->
get
(
'page'
,
1
);
//加载到100个以后停止
if
(
$page
>
2
)
{
echo
json_encode
(
array
(
'code'
=>
201
,
'data'
=>
''
));
exit
;
}
$sid
=
$this
->
get
(
'sid'
,
1
);
$sort
=
''
;
//是否是默认标签
if
(
$sid
>
1
)
{
//通过ID获取标签信息
$info
=
\LibModels\Web\Product\HotrankData
::
getTagById
(
$sid
,
false
);
if
(
!
empty
(
$info
[
'data'
]))
{
$sort
=
$info
[
'data'
][
'category_id'
];
}
}
$viewNum
=
60
;
//过滤掉赠品
$param
=
array
(
'order'
=>
's_n_desc'
,
'viewNum'
=>
$viewNum
,
'page'
=>
$page
,
'sort'
=>
$sort
,
'stocknumber'
=>
1
,
'status'
=>
1
,
'gender'
=>
$this
->
gender
,
'attribute_not'
=>
2
);
if
(
empty
(
$param
[
'sort'
]))
{
if
(
$this
->
road
==
3
)
{
$param
[
'msort'
]
=
365
;
}
elseif
(
$this
->
road
==
4
){
$param
[
'msort'
]
=
10
;
}
else
{
$param
[
'not_maxSortId'
]
=
'10,365'
;
}
}
$list
=
\product\HotrankModel
::
getSearchData
(
$param
,
$page
,
1
);
$lister
=
$list
[
'hotWeek'
][
'list'
];
$lister
=
array_values
(
$lister
);
if
(
$sid
==
1
&&
$page
==
1
)
{
$lister
=
array_slice
(
$lister
,
10
,
50
);
}
else
{
$lister
=
array_slice
(
$lister
,
0
,
50
);
}
$data
=
array
(
'code'
=>
200
,
'data'
=>
$lister
,
);
echo
json_encode
(
$data
);
exit
;
}
}
?>
\ No newline at end of file
...
...
Please
register
or
login
to post a comment