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
Plain Diff
Browse Files
Authored by
梁志锋
9 years ago
Commit
6e5d393afceae886fc9f360094b557220ea4b1d2
2 parents
43b587ce
4402eb07
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
130 additions
and
107 deletions
library/LibModels/Web/Product/SearchData.php
library/Plugin/HelperSearch.php
template/www.yohobuy.com/partials/product/filter-box.phtml
yohobuy/www.yohobuy.com/application/models/Product/Search.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
library/LibModels/Web/Product/SearchData.php
View file @
6e5d393
...
...
@@ -11,31 +11,114 @@ class SearchData extends \LibModels\Wap\Product\SearchData
*
* @return string
*/
p
rivate
static
function
getUrl
(
$type
=
'search'
)
p
ublic
static
function
getUrl
(
$type
=
'search'
)
{
defined
(
'APPLICATION_ENV'
)
||
define
(
'APPLICATION_ENV'
,
'developer'
);
switch
(
APPLICATION_ENV
)
{
case
'release'
:
if
(
$type
==
'sort'
)
{
if
(
$type
==
'sort'
)
{
return
'http://100.98.132.63/yohosearch/sortgroup.json'
;
}
elseif
(
$type
==
'suggest'
){
return
'http://100.98.132.63/yohosearch/suggest.json'
;
elseif
(
$type
==
'discount'
)
{
return
'http://100.98.132.63/yohosearch/discount.json'
;
}
elseif
(
$type
==
'recent'
)
{
return
'http://100.98.132.63/yohosearch/recent.json'
;
}
elseif
(
$type
==
'shop'
)
{
return
'http://100.98.132.63/yohosearch/shops.json'
;
}
return
'http://100.98.132.63/yohosearch/search.json'
;
case
'test'
:
case
'preview'
:
case
'developer'
:
default
:
if
(
$type
==
'sort'
)
{
if
(
$type
==
'sort'
)
{
return
'http://101.200.31.165/yohosearch/sortgroup.json'
;
}
elseif
(
$type
==
'suggest'
){
return
'http://101.200.31.165/yohosearch/suggest.json'
;
elseif
(
$type
==
'discount'
)
{
return
'http://101.200.31.165/yohosearch/discount.json'
;
}
elseif
(
$type
==
'recent'
)
{
return
'http://101.200.31.165/yohosearch/recent.json'
;
}
elseif
(
$type
==
'shop'
)
{
return
'http://101.200.31.165/yohosearch/shops.json'
;
}
// return 'http://101.200.31.165/yohosearch/search.json';
return
'http://192.168.10.64:8080/yohosearch/search-once.json'
;
}
}
/**
* 根据给定查询数据搜索数据列表 (新的)
*
* @param string $query 查询条件, 默认为null
* @param string $brand 品牌,默认为null
* @param string $gender 性别,默认为null,"1,3"表示男, "2,3"表示女, "1,2,3"表示全部
* @param integer $color 颜色id
* @param integer $size 尺码id
* @param integer $price 价格
* @param string $p_d 折扣,默认为null
* @param string $sort 商品所属品类,默认为null
* @param string $order 排序方式,默认为按照时间倒序排列s_t_desc,
* s_t_asc表示按时间正序排列,
* s_p_asc表示按价格正序排列,
* s_p_desc表示按价格倒序排列,
* p_d_asc表示按折扣正序排列,
* p_d_desc表示按折扣倒序排列
* @param integer $page 指定查询是多少页,默认为第一页
* @param integer $limit 指定查询多少个,默认是60个
* @param integer $channel表示哪个频道,1表示男生,2表示女生,3表示潮童,4表示创意生活
* @return array 搜索到的数据
*/
public
static
function
searchElasticByCondition
(
$condition
,
$cache
=
false
)
{
// 排序数据映射表
$orderMaps
=
array
(
's_t_desc'
=>
'shelve_time:desc'
,
's_t_asc'
=>
'shelve_time:asc'
,
's_p_asc'
=>
'sales_price:asc'
,
's_p_desc'
=>
'sales_price:desc'
,
'p_d_desc'
=>
'discount:desc'
,
'p_d_asc'
=>
'discount:asc'
,
'skn_desc'
=>
'product_skn:desc'
,
'skn_asc'
=>
'product_skn:asc'
,
'activities_desc'
=>
'activities.order_by:desc'
,
'activities_asc'
=>
'activities.order_by:asc'
,
's_n_asc'
=>
'sales_num:asc'
,
's_n_desc'
=>
'sales_num:desc'
,
'activities_id_desc'
=>
'activities.activity_id:desc'
,
'activities_id_asc'
=>
'activities.activity_id:asc'
,
);
return
'http://101.200.31.165/yohosearch/search.json'
;
$param
=
array
();
$param
[
'status'
]
=
1
;
// 是否上架,1表示在架,2表示不在
$param
[
'sales'
]
=
'Y'
;
// 只搜索销售的产品
$param
[
'stocknumber'
]
=
1
;
// 过滤掉已售罄的商品
// $param['needFilter'] = 1; // 是否需要返回筛选条件
if
(
!
isset
(
$condition
[
'order'
]))
{
$param
[
'order'
]
=
$orderMaps
[
's_t_desc'
];
}
else
{
$param
[
'order'
]
=
$orderMaps
[
$condition
[
'order'
]];
}
if
(
!
isset
(
$condition
[
'page'
]))
{
$param
[
'page'
]
=
1
;
}
if
(
isset
(
$condition
[
'viewNum'
]))
{
$param
[
'viewNum'
]
=
$condition
[
'viewNum'
];
}
else
if
(
!
isset
(
$condition
[
'limit'
]))
{
$param
[
'viewNum'
]
=
60
;
}
else
{
$param
[
'viewNum'
]
=
$condition
[
'limit'
];
unset
(
$condition
[
'limit'
]);
}
if
(
!
empty
(
$condition
))
{
$param
+=
$condition
;
}
return
Yohobuy
::
get
(
self
::
getUrl
(
'search'
),
$param
,
$cache
);
}
/**
* 根据分类列表获取商品信息
...
...
library/Plugin/HelperSearch.php
View file @
6e5d393
...
...
@@ -4,6 +4,7 @@ namespace Plugin;
use
Plugin\Paging
;
use
LibModels\Web\Product\BrandData
;
use
LibModels\Web\Product\SearchData
;
use
Api\Yohobuy
;
use
Api\Sign
;
/**
...
...
@@ -89,6 +90,10 @@ class HelperSearch
$result
[
'shopEntry'
]
=
isset
(
$data
[
'shop'
])
&&
!
empty
(
$data
[
'shop'
])
?
self
::
shop
(
$data
[
'shop'
],
$data
[
'sort'
][
'sort'
])
:
array
();
//分页
$result
[
'pager'
]
=
self
::
pager
(
$result
[
'totalCount'
],
$options
[
'viewNum'
]
-
1
);
//浏览记录
if
(
isset
(
$options
[
'reviewNum'
])
&&
!
empty
(
$options
[
'reviewNum'
]))
{
$result
[
'latestWalk'
]
=
$options
[
'reviewNum'
];
}
//选中条件
$result
[
'filters'
][
'checkedConditions'
]
=
self
::
getSelected
();
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
==
'Search'
)
{
...
...
@@ -134,7 +139,7 @@ class HelperSearch
if
(
!
empty
(
$val
[
'default_images'
]))
{
$val
[
'default_images'
]
=
Images
::
getImageUrl
(
$val
[
'default_images'
],
$imgSize
[
0
],
$imgSize
[
1
]);
}
$good
s
[]
=
array
(
$good
=
array
(
'tags'
=>
array
(
'isNew'
=>
$isNew
,
'isLimit'
=>
$isLimit
...
...
@@ -143,12 +148,16 @@ class HelperSearch
'thumb'
=>
$val
[
'default_images'
],
'name'
=>
$val
[
'product_name'
],
'salePrice'
=>
$val
[
'sales_price'
],
'marketPrice'
=>
$val
[
'market_price'
],
'isFew'
=>
$isFew
,
'skn'
=>
$val
[
'product_skn'
],
'showColBtn'
=>
true
,
'coled'
=>
true
);
//市场价不等于售价时显示
if
(
$val
[
'market_price'
]
!=
$val
[
'sales_price'
])
{
$good
[
'marketPrice'
]
=
$val
[
'market_price'
];
}
$goods
[]
=
$good
;
}
return
$goods
;
}
...
...
@@ -343,10 +352,6 @@ class HelperSearch
array
(
'index'
=>
'all'
,
'name'
=>
'全部'
),
array
(
'index'
=>
'0-9'
,
'name'
=>
'0 ~ 9'
)
),
'brandsShow'
=>
array
()
...
...
@@ -356,17 +361,29 @@ class HelperSearch
$brandIds
=
isset
(
$params
[
'brand'
])
&&
!
empty
(
$params
[
'brand'
])
?
explode
(
','
,
$params
[
'brand'
])
:
array
();
if
(
isset
(
$filter
[
'brand'
])
&&
!
empty
(
$filter
[
'brand'
]))
{
$brand
=
$filter
[
'brand'
];
// print_r($filter); exit;
//已选中品牌数量
$existBrandNum
=
0
;
//已选中品牌标签名
$existName
=
''
;
foreach
(
$brand
as
$key
=>
$v
)
{
$selectBrandIds
=
$brandIds
;
//品牌
id在提交的参数中,构造url参数去除该品牌id
//品牌
已被选中
if
(
in_array
(
$v
[
'id'
],
$brandIds
))
{
$filterKey
=
array_search
(
$v
[
'id'
],
$selectBrandIds
);
unset
(
$selectBrandIds
[
$filterKey
]);
$url
=
self
::
buildUrl
(
array_merge
(
$params
,
array
(
'brand'
=>
implode
(
','
,
$selectBrandIds
)
)));
if
(
$existBrandNum
===
0
)
{
$existName
.=
$v
[
'brand_name'
]
.
'、'
;
}
if
(
$existBrandNum
===
1
){
$existName
.=
substr
(
$v
[
'brand_name'
],
0
,
3
)
.
'...'
;
}
$existBrandNum
++
;
}
//该品牌
url参数中添加该品牌的id
//该品牌
未被选中
else
{
$selectBrandIds
[]
=
$v
[
'id'
];
$url
=
self
::
buildUrl
(
array_merge
(
$params
,
array
(
...
...
@@ -396,25 +413,6 @@ class HelperSearch
}
//清空品牌参数
unset
(
$params
[
'brand'
]);
//设置已选中的品牌
$existBrandNum
=
0
;
$existName
=
''
;
foreach
(
$brandIds
as
$key
=>
$val
)
{
if
(
isset
(
$brandAll
[
$val
]))
{
$brandParam
=
$brandIds
;
unset
(
$brandParam
[
$key
]);
if
(
$existBrandNum
===
0
)
{
$existName
.=
$brandAll
[
$val
]
.
'、'
;
}
if
(
$existBrandNum
===
1
){
$existName
.=
substr
(
$brandAll
[
$val
],
0
,
3
)
.
'...'
;
}
$existBrandNum
++
;
}
if
(
$existBrandNum
>
1
)
{
break
;
}
}
//设置选中
if
(
isset
(
self
::
$params
[
'brand'
])
&&
!
empty
(
self
::
$params
[
'brand'
]))
{
self
::
$selected
[
'brand'
]
=
array
(
...
...
@@ -448,6 +446,7 @@ class HelperSearch
if
(
count
(
$result
[
'brandsShow'
])
<
11
)
{
$result
[
'hideMore'
]
=
true
;
}
// print_r($result); exit;
return
$result
;
}
/**
...
...
@@ -459,14 +458,14 @@ class HelperSearch
{
$params
=
self
::
$params
;
$paramsValue
=
array_filter
(
$params
);
if
(
!
$isAjax
&&
empty
(
$paramsValue
))
{
return
array
();
}
$sizeId
=
isset
(
$params
[
'size'
])
&&
!
empty
(
$params
[
'size'
])
?
$params
[
'size'
]
:
''
;
if
(
isset
(
$params
[
'size'
]))
{
unset
(
$params
[
'size'
]);
}
$result
=
array
();
if
(
!
$isAjax
&&
empty
(
$paramsValue
))
{
return
array
();
}
if
(
isset
(
$filter
[
'size'
])
&&
!
empty
(
$filter
[
'size'
]))
{
$size
=
$filter
[
'size'
];
foreach
(
$size
as
$k
=>
$v
)
{
...
...
@@ -485,7 +484,7 @@ class HelperSearch
'checked'
=>
isset
(
self
::
$params
[
'size'
])
&&
self
::
$params
[
'size'
]
==
$v
[
'size_id'
]
?
true
:
false
);
}
if
(
self
::
checkSearch
(
'size'
))
{
if
(
self
::
checkSearch
(
'size'
))
{
return
array
();
}
}
...
...
@@ -940,8 +939,8 @@ class HelperSearch
}
if (
$data
) {
$result['conditions']
=
$data
;
$result['clearUrl']
= self::current();
}
$result['clearUrl']
= self::current();
return
$result
;
}
...
...
@@ -1200,7 +1199,7 @@ class HelperSearch
if (!empty(
$condition
)) {
$param
+=
$condition
;
}
return Yohobuy::httpBuildQuery(
self
::getUrl(),
$param
);
return Yohobuy::httpBuildQuery(
SearchData
::getUrl(),
$param
);
}
/**
...
...
@@ -1213,7 +1212,7 @@ class HelperSearch
$condition['sales']
= 'Y'; //在销售商品分类
$condition['status']
= 1; //上架商品分类
$condition['stocknumber']
= 1; //过滤掉已售罄
return Yohobuy::httpBuildQuery(
self
::getUrl('sort'),
$condition
);
return Yohobuy::httpBuildQuery(
SearchData
::getUrl('sort'),
$condition
);
}
/**
...
...
@@ -1223,7 +1222,7 @@ class HelperSearch
public static function getDiscountUrl(
$param
= array())
{
return Yohobuy::httpBuildQuery(
self
::getUrl('discount'),
$param
);
return Yohobuy::httpBuildQuery(
SearchData
::getUrl('discount'),
$param
);
}
/**
...
...
@@ -1231,7 +1230,7 @@ class HelperSearch
*/
public static function getRecentShelveUrl(
$param
= array())
{
return Yohobuy::httpBuildQuery(
self
::getUrl('recent'),
$param
);
return Yohobuy::httpBuildQuery(
SearchData
::getUrl('recent'),
$param
);
}
/**
...
...
@@ -1262,15 +1261,6 @@ class HelperSearch
return Yohobuy::httpBuildQuery(Yohobuy::API_URL,
$param
);
}
/**
* 并行调接口url获取(获取用户浏览记录)
*/
// public static function getReviewUrl(
$param
= array())
// {
// return Yohobuy::httpBuildQuery(self::getUrl('review'),
$param
);
// }
/**
...
...
@@ -1280,58 +1270,7 @@ class HelperSearch
*/
public static function getShopUrl(
$param
)
{
return Yohobuy::httpBuildQuery(self::getUrl('shop'),
$param
);
}
/**
* 获取搜索的服务地址
*
* 备注:此处是根据环境来确定使用阿里云内网还是外网的URL
*
* @return string
*/
private static function getUrl(
$type
= 'search')
{
defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'developer');
switch (APPLICATION_ENV) {
case 'release':
if (
$type
== 'sort') {
return 'http://100.98.132.63/yohosearch/sortgroup.json';
}
elseif (
$type
== 'discount') {
return 'http://100.98.132.63/yohosearch/discount.json';
}
elseif (
$type
== 'recent') {
return 'http://100.98.132.63/yohosearch/recent.json';
}
// elseif (
$type
== 'review') {
//
// }
elseif (
$type
== 'shop') {
return 'http://100.98.132.63/yohosearch/shops.json';
}
return 'http://100.98.132.63/yohosearch/search.json';
case 'test':
case 'preview':
case 'developer':
default:
if (
$type
== 'sort') {
return 'http://101.200.31.165/yohosearch/sortgroup.json';
}
elseif (
$type
== 'discount') {
return 'http://101.200.31.165/yohosearch/discount.json';
}
elseif (
$type
== 'recent') {
return 'http://101.200.31.165/yohosearch/recent.json';
}
// elseif (
$type
== 'review') {
//
// }
elseif (
$type
== 'shop') {
return 'http://101.200.31.165/yohosearch/shops.json';
}
// return 'http://101.200.31.165/yohosearch/search.json';
return 'http://192.168.10.64:8080/yohosearch/search-once.json';
}
return Yohobuy::httpBuildQuery(SearchData::getUrl('shop'),
$param
);
}
/**
...
...
template/www.yohobuy.com/partials/product/filter-box.phtml
View file @
6e5d393
...
...
@@ -179,7 +179,7 @@
</div>
{{/if}}
<div class="size section
hide
">
<div class="size section
{{#unless size}}hide{{/unless}}
">
<span class="title">尺码:</span>
<div class="attr-content clearfix">
...
...
yohobuy/www.yohobuy.com/application/models/Product/Search.php
View file @
6e5d393
...
...
@@ -154,6 +154,7 @@ class SearchModel
//$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']);
$result
=
Yohobuy
::
getMulti
(
$urlList
,
array
(),
true
);
// 组织模板数据
$data
=
HelperSearch
::
getList
(
$result
,
$searchCondition
[
'options'
]);
return
$data
;
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
View file @
6e5d393
...
...
@@ -50,7 +50,7 @@ class ListController extends WebAction
public
function
saleAction
()
{
$condition
=
array
();
$list
=
SearchModel
::
getListData
(
$condition
);
$list
=
SearchModel
::
getListData
(
$condition
,
array
(
'reviewNum'
=>
6
)
);
$data
=
array
(
//初始化js
'productListPage'
=>
true
,
...
...
Please
register
or
login
to post a comment