Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
Rock Zhang
10 years ago
Commit
1cff6b92868b9e24b90f1037a05a7179824393d5
1 parent
cb6b2141
初步调试列表页功能
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
304 additions
and
104 deletions
library/LibModels/Wap/Category/BrandData.php
library/Plugin/DataProcess/ListProcess.php
yohobuy/m.yohobuy.com/application/modules/Product/controllers/List.php
library/LibModels/Wap/Category/BrandData.php
View file @
1cff6b9
...
...
@@ -135,6 +135,9 @@ class BrandData
*/
public
static
function
selectBrandDetail
(
$gender
,
$brand
,
$sort
,
$color
,
$size
,
$price
,
$p_d
,
$channel
=
1
,
$order
=
's_t_desc'
,
$limit
=
60
,
$page
=
1
)
{
// 构建必传参数
$param
=
Yohobuy
::
param
();
$selectItems
=
array
(
'gender'
=>
$gender
,
'brand'
=>
$brand
,
...
...
@@ -148,9 +151,7 @@ class BrandData
$queriedParams
=
array_filter
(
$selectItems
,
function
(
$v
)
{
return
$v
!==
null
;
});
// 构建必传参数
$param
=
Yohobuy
::
param
();
$param
+=
$queriedParams
;
$param
[
'method'
]
=
'app.search.brand'
;
$param
[
'page'
]
=
$page
;
...
...
library/Plugin/DataProcess/ListProcess.php
0 → 100644
View file @
1cff6b9
<?php
namespace
Plugin\DataProcess
;
use
Plugin\Helpers
;
/**
* 列表数据处理类
*/
class
ListProcess
{
/**
* 返回商品和过滤数据
*
* @param $data
* @return array 处理之后的商品数据
*/
public
static
function
getListData
(
$data
)
{
$result
=
array
(
'new'
=>
array
(),
'filter'
=>
array
());
if
(
isset
(
$data
[
'product_list'
]))
{
$result
[
'new'
]
=
self
::
getProductData
(
$data
[
'product_list'
]);
}
if
(
isset
(
$data
[
'filter'
]))
{
$result
[
'filter'
]
=
self
::
getFilterData
(
$data
[
'filter'
]);
}
return
$result
;
}
/**
* 处理列表商品数据
*
* @param $data
* @return array 处理之后的商品数据
*/
public
static
function
getProductData
(
$data
)
{
// 处理商品
$products
=
array
();
foreach
(
$data
as
$value
)
{
$products
[]
=
Helpers
::
formatProduct
(
$value
);
}
return
$products
;
}
/**
* 处理筛选数据
*
* @param $data
* @return array 处理之后的筛选数据
*/
public
static
function
getFilterData
(
$data
)
{
// 过滤条件数据
$filters
=
array
(
'classify'
=>
array
());
foreach
(
$data
as
$key
=>
$val
)
{
if
(
empty
(
$val
))
{
continue
;
}
if
(
!
is_callable
(
"self::
$key
"
))
{
continue
;
}
$build
=
self
::
$key
(
$val
);
$filters
[
'classify'
][]
=
$build
;
}
return
$filters
;
}
private
static
function
brand
(
$data
)
{
$result
=
array
(
'title'
=>
'品牌'
,
'name'
=>
'所有品牌'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有品牌'
)
)
);
// 对品牌数据按照品牌字母进行排序
self
::
sortArrByField
(
$data
,
'brand_alif'
);
foreach
(
$data
as
$one
)
{
$brand
=
array
();
$brand
[
'dataId'
]
=
$one
[
'id'
];
$brand
[
'name'
]
=
$one
[
'brand_name'
];
$result
[
'subs'
][]
=
$brand
;
}
return
$result
;
}
private
static
function
color
(
$data
)
{
$result
=
array
(
'title'
=>
'颜色'
,
'name'
=>
'所有颜色'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有颜色'
)
)
);
foreach
(
$data
as
$one
)
{
$color
=
array
();
$color
[
'dataId'
]
=
$one
[
'color_id'
];
$color
[
'name'
]
=
$one
[
'color_name'
];
$result
[
'subs'
][]
=
$color
;
}
return
$result
;
}
private
static
function
discount
(
$data
)
{
$result
=
array
(
'title'
=>
'折扣'
,
'name'
=>
'所有商品'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有商品'
)
)
);
foreach
(
$data
as
$one
)
{
$discount
=
array
();
$discount
[
'dataId'
]
=
$one
[
'count'
];
$discount
[
'name'
]
=
$one
[
'name'
]
.
'折商品'
;
$result
[
'subs'
][]
=
$discount
;
}
return
$result
;
}
private
static
function
gender
(
$data
)
{
$result
=
array
(
'title'
=>
'性别'
,
'name'
=>
'所有性别'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有性别'
),
array
(
'dataId'
=>
1
,
'name'
=>
'男'
),
array
(
'dataId'
=>
2
,
'name'
=>
'女'
),
)
);
return
$result
;
}
private
static
function
group_sort
(
$data
)
{
$result
=
array
(
'title'
=>
'品类'
,
'name'
=>
'所有品类'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有品类'
)
)
);
foreach
(
$data
as
$one
)
{
$category
=
array
();
$category
[
'dataId'
]
=
$one
[
'category_id'
];
$category
[
'name'
]
=
$one
[
'category_name'
];
// 子品类
if
(
isset
(
$one
[
'sub'
]))
{
$category
[
'subs'
]
=
array
();
foreach
(
$one
[
'sub'
]
as
$single
)
{
$subitem
=
array
();
$subitem
[
'dataId'
]
=
$single
[
'category_id'
];
$subitem
[
'name'
]
=
$single
[
'category_name'
];
$category
[
'subs'
][]
=
$subitem
;
}
}
$result
[
'subs'
][]
=
$category
;
}
return
$result
;
}
private
static
function
priceRange
(
$data
)
{
$result
=
array
(
'title'
=>
'价格'
,
'name'
=>
'所有价格'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有价格'
)
)
);
foreach
(
$data
as
$one
)
{
$price
=
array
();
$price
[
'name'
]
=
$one
;
$result
[]
=
$price
;
}
return
$result
;
}
private
static
function
size
(
$data
)
{
$result
=
array
(
'title'
=>
'尺码'
,
'name'
=>
'所有尺码'
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'所有尺码'
)
)
);
foreach
(
$data
as
$one
)
{
$size
=
array
();
$size
[
'dataId'
]
=
$one
[
'size_id'
];
$size
[
'name'
]
=
$one
[
'size_name'
];
$result
[
'subs'
][]
=
$size
;
}
return
$result
;
}
/**
* 按照数组中指定字段排序二维数组
*
* @param array &$array 需要排序的数组
* @param string $field 字段名称
* @param boolean $desc 时候降序排列,默认为false
*/
private
static
function
sortArrByField
(
&
$array
,
$field
,
$desc
=
false
){
$fieldArr
=
array
();
foreach
(
$array
as
$k
=>
$v
)
{
$fieldArr
[
$k
]
=
$v
[
$field
];
}
$sort
=
$desc
==
false
?
SORT_ASC
:
SORT_DESC
;
array_multisort
(
$fieldArr
,
$sort
,
$array
);
}
}
...
...
yohobuy/m.yohobuy.com/application/modules/Product/controllers/List.php
View file @
1cff6b9
...
...
@@ -4,6 +4,7 @@ use Action\AbstractAction;
use
LibModels\Wap\Product\SearchData
;
use
LibModels\Wap\Category\BrandData
;
use
Plugin\DataProcess\ListProcess
;
use
Plugin\Helpers
;
/**
* 商品列表页
...
...
@@ -15,7 +16,6 @@ class ListController extends AbstractAction
$data
=
array
(
'goodListPage'
=>
true
,
'goodList'
=>
array
(
<<<<<<<
HEAD
)
);
...
...
@@ -28,7 +28,7 @@ class ListController extends AbstractAction
// 查询数据
$listData
=
SearchData
::
searchLiDatas
(
null
,
$brand
,
$gender
,
$p_d
,
$misort
,
$msort
);
// 处理返回的数据
if
(
isset
(
$listData
[
'code'
])
&&
$listData
[
'code'
]
==
200
)
{
if
(
isset
(
$listData
[
'code'
])
&&
$listData
[
'code'
]
==
=
200
)
{
$tmpData
=
$listData
[
'data'
];
$data
[
'goodList'
]
=
ListProcess
::
getListData
(
$tmpData
);
...
...
@@ -49,128 +49,40 @@ class ListController extends AbstractAction
$p_d
=
$this
->
get
(
'p_d'
,
null
);
$data
=
array
(
'pageHeader'
=>
array
(
'navHome'
=>
'/'
),
'goodListPage'
=>
true
,
'goodList'
=>
array
(
'brand'
=>
array
(
'id'
=>
$brand
=======
'search'
=>
'Aape'
,
'brandWay'
=>
array
(
'url'
=>
'http://aape.m.yohobuy.com/'
,
'name'
=>
'Aape'
,
'thumb'
=>
'http://img13.static.yhbimg.com/brandLogo/2015/08/26/15/02261f64c198cb4b181c5ef9e61f38f4b9.jpg?imageMogr2/thumbnail/150x70/extent/150x70/background/d2hpdGU=/position/center/quality/90'
),
'brand'
=>
array
(
'id'
=>
1
,
'banner'
=>
'http://img10.static.yhbimg.com/brandBanner/2015/08/26/07/015af5d6ee626cb132cd9c436e896fae26.jpg?imageMogr2/crop/640x'
),
'new'
=>
array
(
array
(
'id'
=>
1
,
'thumb'
=>
'http://img13.static.yhbimg.com/goodsimg/2015/09/15/03/02e50b1037b45b90aa8f33ee328b18facf.jpg?imageMogr2/thumbnail/290x388/extent/290x388/background/d2hpdGU=/position/center/quality/90'
,
'url'
=>
''
,
'name'
=>
'Aape X YO’HOOD moon face YOH'
,
'salePrice'
=>
599
,
'tags'
=>
array
(
'is_new'
=>
true
,
'is_discount'
=>
true
),
'is_soon_sold_out'
=>
true
),
array
(
'id'
=>
2
,
'thumb'
=>
'http://img10.static.yhbimg.com/goodsimg/2015/09/15/03/0101b0c3998752d02724a5512c6efcb241.jpg?imageMogr2/thumbnail/290x388/extent/290x388/background/d2hpdGU=/position/center/quality/90'
,
'url'
=>
''
,
'name'
=>
'Aape X YO’HOOD moon face YOH'
,
'salePrice'
=>
99
,
'tags'
=>
array
(
'is_yohoood'
=>
true
),
'is_soon_sold_out'
=>
true
)
),
'filter'
=>
array
(
array
(
'classify'
=>
array
(
array
(
'title'
=>
'性别'
,
'name'
=>
'全部性别'
,
'default'
=>
true
,
'subs'
=>
array
(
array
(
'chosed'
=>
true
,
'dataId'
=>
0
,
'name'
=>
'全部性别'
),
array
(
'dataId'
=>
1
,
'name'
=>
'男'
),
array
(
'dataId'
=>
3
,
'name'
=>
'女'
)
)
),
array
(
'title'
=>
'尺寸'
,
'name'
=>
'XL'
,
'subs'
=>
array
(
array
(
'dataId'
=>
0
,
'name'
=>
'全部尺寸'
),
array
(
'dataId'
=>
1
,
'name'
=>
'S'
),
array
(
'dataId'
=>
2
,
'name'
=>
'M'
),
array
(
'dataId'
=>
3
,
'name'
=>
'L'
),
array
(
'chosed'
=>
true
,
'dataId'
=>
4
,
'name'
=>
'XL'
),
array
(
'dataId'
=>
5
,
'name'
=>
'XXL'
)
)
)
)
)
>>>>>>>
4
b0a4270663f76e6b242af42f29607e22ffa75e7
)
)
);
// 获取品牌介绍信息
$introData
=
BrandData
::
getBrandIntro
(
$brand
);
if
(
isset
(
$introData
[
'code'
])
&&
$introData
[
'code'
]
==
200
)
if
(
isset
(
$introData
[
'code'
])
&&
$introData
[
'code'
]
==
=
200
)
{
$data
[
'goodList'
][
'intro'
]
=
isset
(
$introData
[
'data'
][
'brand_intro'
])
?
$introData
[
'data'
][
'brand_intro'
]
:
''
;
$data
[
'goodList'
][
'
brand'
][
'
intro'
]
=
isset
(
$introData
[
'data'
][
'brand_intro'
])
?
$introData
[
'data'
][
'brand_intro'
]
:
''
;
}
// 获取品牌banner的数据
$bannerData
=
BrandData
::
getBrandBanner
(
$brand
,
0
);
if
(
isset
(
$bannerData
[
'code'
])
&&
$bannerData
[
'code'
]
==
200
)
if
(
isset
(
$bannerData
[
'code'
])
&&
$bannerData
[
'code'
]
==
=
200
)
{
$data
[
'goodList'
][
'b
anner'
]
=
isset
(
$bannerData
[
'data'
][
'banner'
])
?
$bannerData
[
'data'
][
'banner'
]
:
''
;
$data
[
'goodList'
][
'b
rand'
][
'banner'
]
=
isset
(
$bannerData
[
'data'
][
'banner'
])
?
Helpers
::
getImageUrl
(
$bannerData
[
'data'
][
'banner'
],
640
,
75
)
:
''
;
}
// 查询数据
$listData
=
BrandData
::
selectBrandDetail
(
$gender
,
$brand
,
$sort
,
$color
,
$size
,
$price
,
$p_d
);
// 处理返回的数据
if
(
isset
(
$listData
[
'code'
])
&&
$listData
[
'code'
]
==
200
)
{
if
(
isset
(
$listData
[
'code'
])
&&
$listData
[
'code'
]
==
=
200
)
{
$tmpData
=
$listData
[
'data'
];
// 设置品牌名称
$data
[
'pageHeader'
][
'navTitle'
]
=
isset
(
$tmpData
[
'brand_name'
])
?
$tmpData
[
'brand_name'
]
:
''
;
$data
[
'goodList'
]
=
ListProcess
::
getListData
(
$tmpData
);
$data
[
'goodList'
]
+
=
ListProcess
::
getListData
(
$tmpData
);
}
$this
->
_view
->
display
(
'index'
,
$data
);
...
...
Please
register
or
login
to post a comment