Authored by Lynnic

Merge branch 'develop' of git.dev.yoho.cn:web/yohobuy into feature/detailFix

... ... @@ -283,6 +283,9 @@ class AbstractAction extends Controller_Abstract
*/
protected function getUid($useSession = false)
{
// @todo
$useSession = false;
if (!$this->_uid) {
$cookie = $this->getCookie('_UID');
if (!empty($cookie)) {
... ...
... ... @@ -53,9 +53,10 @@ class ListProcess
*
* @param $data
* @param string | integer $gender 默认选择的性别,默认1,2,3表示所有
* @param null|string $exclude 需要排除的字段
* @return array 处理之后的筛选数据
*/
public static function getFilterData($data, $gender = '1,2,3')
public static function getFilterData($data, $gender = '1,2,3', $exclude = null)
{
// 过滤条件数据
$filters = array('classify' => array());
... ... @@ -65,12 +66,10 @@ class ListProcess
$num = 1;
foreach ($data as $key => $val) {
if (empty($val)) {
continue;
}
if (!is_callable("self::$key")) {
if ($key === $exclude || empty($val) || !is_callable("self::$key")) {
continue;
}
$build = self::$key($val, $gender);
if ($num === 1) {
$build['active'] = true;
... ...
... ... @@ -491,8 +491,10 @@ class Helpers
return false;
}
//格式化订单商品
public static function formatOrderGoods($orderGoods)
/**
* 格式化订单商品
*/
public static function formatOrderGoods($orderGoods, &$count = 0)
{
$arr = array();
foreach ($orderGoods as $key => $vo) {
... ... @@ -512,6 +514,8 @@ class Helpers
if (!empty($vo['expect_arrival_time'])) {
$arr[$key]['appearDate'] = $vo['expect_arrival_time'];
}
// 累计购买数
$count += intval($vo['buy_number']);
}
return $arr;
}
... ...
... ... @@ -17,6 +17,7 @@ var $icon = $('.search-icon');
var $form = $('#search-form');
var $history = $('.history');
var $historySearch = $('.history-search');
var $clearHistory = $('#clear-history');
... ... @@ -31,6 +32,8 @@ chHammer.on('tap', function() {
localStorage.removeItem('historys');
$history.html('');
$historySearch.hide();
$clearHistory.hide();
window.rePosFooter();
});
... ... @@ -80,7 +83,7 @@ $('#search').on('touchend', function() {
$history.html(html);
$clearHistory.removeClass('hide');
$historySearch.removeClass('hide');
window.rePosFooter();
}
}
... ...
... ... @@ -21,7 +21,7 @@
{{/ hot}}
</ul>
</div>
<div class="history-search">
<div class="history-search hide">
<h3>历史搜索</h3>
<ul class="history clearfix"></ul>
</div>
... ... @@ -29,4 +29,4 @@
</div>
{{/ search}}
</div>
{{> layout/footer}}
\ No newline at end of file
{{> layout/footer}}
... ...
... ... @@ -32,36 +32,33 @@ class SearchController extends AbstractAction
*/
public function listAction()
{
// // 过滤请求参数
// $condition = filter_input_array(INPUT_GET, array(
// 'query' => FILTER_DEFAULT,
// 'brand' => FILTER_DEFAULT,
// 'sort' => FILTER_DEFAULT,
// 'msort' => FILTER_DEFAULT,
// 'misort' => FILTER_DEFAULT,
// 'color' => FILTER_DEFAULT,
// 'size' => FILTER_DEFAULT,
// 'style' => FILTER_DEFAULT,
// 'price' => FILTER_DEFAULT,
// 'discount' => FILTER_DEFAULT,
// 'gender' => FILTER_DEFAULT,
// 'p_d' => FILTER_DEFAULT,), false);
//
// $query = empty($condition['query']) ? null : strtolower(trim($condition['query']));
// if (isset($condition['discount'])) {
// $condition['p_d'] = rawurldecode($condition['discount']);
// // unset($condition['discount']); 为了兼容js中传参的discount
// }
// // 为了兼容现在运营在用的p_d
// if (isset($condition['p_d'])) {
// $condition['discount'] = rawurldecode($condition['p_d']);
// }
// if (isset($condition['query'])) {
// $condition['query'] = rawurlencode($condition['query']);
// }
$query = $this->get('query', '');
$query = is_string($query) ? '' : strtolower(trim($query));
// 过滤请求参数
$condition = filter_input_array(INPUT_GET, array(
'query' => FILTER_DEFAULT,
'brand' => FILTER_DEFAULT,
'sort' => FILTER_DEFAULT,
'msort' => FILTER_DEFAULT,
'misort' => FILTER_DEFAULT,
'color' => FILTER_DEFAULT,
'size' => FILTER_DEFAULT,
'style' => FILTER_DEFAULT,
'price' => FILTER_DEFAULT,
'discount' => FILTER_DEFAULT,
'gender' => FILTER_DEFAULT,
'p_d' => FILTER_DEFAULT,), false);
$query = empty($condition['query']) ? null : strtolower(trim($condition['query']));
if (isset($condition['discount'])) {
$condition['p_d'] = rawurldecode($condition['discount']);
// unset($condition['discount']); 为了兼容js中传参的discount
}
// 为了兼容现在运营在用的p_d
if (isset($condition['p_d'])) {
$condition['discount'] = rawurldecode($condition['p_d']);
}
if (isset($condition['query'])) {
$condition['query'] = rawurlencode($condition['query']);
}
// 标识用户是否有输入搜索内容
$haveQuery = $query !== '';
... ... @@ -133,13 +130,13 @@ class SearchController extends AbstractAction
$classNames = array();
}
// else {
// $condition['query'] = '';
// }
else {
$condition['query'] = '';
}
$data = array();
$data['goodListPage'] = true;
//$data['goodList'] = $condition;
$data['goodList'] = $condition;
$data['query'] = $query;
// 搜索是一级品类
if ($isQueryFirstClass) {
... ...
... ... @@ -70,20 +70,21 @@ class OrderModel
if (!empty($data['data']['order_list'])) {
// 订单的状态列表
//$orderStatus = Helpers::getOrderStatus();
$count = 0;
foreach ($data['data']['order_list'] as $key => $vo) {
// if ($vo['payment_status'] == 'Y' && $vo['status'] == 0) {
// $vo['status'] = 1;
// }
$count = 0;
//订单号,支付状态,订单商品数量,订单总价格
$result[$key]['orderNum'] = $vo['order_code'];
//$result[$key]['orderStatus'] = ($vo['is_cancel'] === 'Y') ? '已取消' : $orderStatus[ $vo['payment_type'] ][ $vo['status'] ];
$result[$key]['orderStatus'] = $vo['status_str'];
$result[$key]['count'] = count($vo['order_goods']);
$result[$key]['sumCost'] = $vo['amount'];
//类内调用格式化订单商品数据方法
$result[$key]['goods'] = Helpers::formatOrderGoods($vo['order_goods']);
$result[$key]['goods'] = Helpers::formatOrderGoods($vo['order_goods'], $count);
$result[$key]['detailUrl'] = Helpers::url('/home/orders/detail', array('order_code' => $vo['order_code'], 't' => time()));
$result[$key]['count'] = $count;
//根据订单status判断订单处于什么状态。
do {
//订单取消状态 = Y 时,跳出判断订单状态循环,并设置订单状态为已取消。
... ...
... ... @@ -304,7 +304,7 @@ class DetailModel
/* 参考尺码 */
$boyReference = !empty($sizeInfo['productExtra']['boyReference']);
$girlReference = !empty($sizeInfo['productExtra']['girlReference']);
$gender = isset($sizeInfo['gender']) ? $sizeInfo['gender'] : 3;
$gender = isset($sizeInfo['productDescBo']['gender']) ? $sizeInfo['productDescBo']['gender'] : 3;
$referenceName = '参考尺码';
if (($gender == 1 && $boyReference) || ($gender == 2 && $girlReference)) {
$referenceName = '参考尺码';
... ...
... ... @@ -87,17 +87,26 @@ class SearchModel
}
}
// 设置选定的gender
$gender = '1,2,3';
if (isset($condition['gender'])) {
$gender = $condition['gender'];
}
// 区别各种列表页面的筛选数据
if (isset($condition['brand'])) {
$listData = BrandData::filterBrandData($condition);
$exclude = 'brand';
} else if (isset($condition['sort'])) {
$listData = ClassData::filterClassData($condition);
$exclude = 'group_sort';
} else {
$listData = SearchData::searchByCondition($condition);
$exclude = null;
}
if (isset($listData['data']['filter'])) {
$result['filter'] = ListProcess::getFilterData($listData['data']['filter']);
$result['filter'] = ListProcess::getFilterData($listData['data']['filter'], $gender, $exclude);
}
if (USE_CACHE) {
... ...
... ... @@ -23,66 +23,66 @@ class IndexController extends AbstractAction
*/
public function indexAction()
{
// // 过滤请求参数
// $condition = filter_input_array(INPUT_GET, array(
// 'brand' => FILTER_DEFAULT,
// 'sort' => FILTER_DEFAULT,
// 'msort' => FILTER_DEFAULT,
// 'misort' => FILTER_DEFAULT,
// 'color' => FILTER_DEFAULT,
// 'size' => FILTER_DEFAULT,
// 'style' => FILTER_DEFAULT,
// 'price' => FILTER_DEFAULT,
// 'discount' => FILTER_DEFAULT,
// 'gender' => FILTER_DEFAULT,
// 'p_d' => FILTER_DEFAULT,), false);
//
// // 转义品牌
// if (isset($condition['brand'])) {
// $condition['brand'] = rawurldecode($condition['brand']);
// }
// // 转义分类
// if (isset($condition['sort'])) {
// $condition['sort'] = rawurldecode($condition['sort']);
// }
// // 转义一级分类
// if (isset($condition['msort'])) {
// $condition['msort'] = rawurldecode($condition['msort']);
// }
// // 转义二级分类
// if (isset($condition['misort'])) {
// $condition['misort'] = rawurldecode($condition['misort']);
// }
// // 转义颜色
// if (isset($condition['color'])) {
// $condition['color'] = rawurldecode($condition['color']);
// }
// // 转义尺码
// if (isset($condition['size'])) {
// $condition['size'] = rawurldecode($condition['size']);
// }
// // 转义风格
// if (isset($condition['style'])) {
// $condition['style'] = rawurldecode($condition['style']);
// }
// // 转义价格
// if (isset($condition['price'])) {
// $condition['price'] = rawurldecode($condition['price']);
// }
// // 转换折扣
// if (isset($condition['discount'])) {
// $condition['p_d'] = rawurldecode($condition['discount']);
// }
// // 为了兼容现在运营在用的p_d
// if (isset($condition['p_d'])) {
// $condition['discount'] = rawurldecode($condition['p_d']);
// }
// // 性别参数,不传则从COOKIE获取
// if (!isset($condition['gender'])) {
// $condition['gender'] = Helpers::getGenderByCookie();
// } else {
// $condition['gender'] = rawurldecode($condition['gender']);
// }
// 过滤请求参数
$condition = filter_input_array(INPUT_GET, array(
'brand' => FILTER_DEFAULT,
'sort' => FILTER_DEFAULT,
'msort' => FILTER_DEFAULT,
'misort' => FILTER_DEFAULT,
'color' => FILTER_DEFAULT,
'size' => FILTER_DEFAULT,
'style' => FILTER_DEFAULT,
'price' => FILTER_DEFAULT,
'discount' => FILTER_DEFAULT,
'gender' => FILTER_DEFAULT,
'p_d' => FILTER_DEFAULT,), false);
// 转义品牌
if (isset($condition['brand'])) {
$condition['brand'] = rawurldecode($condition['brand']);
}
// 转义分类
if (isset($condition['sort'])) {
$condition['sort'] = rawurldecode($condition['sort']);
}
// 转义一级分类
if (isset($condition['msort'])) {
$condition['msort'] = rawurldecode($condition['msort']);
}
// 转义二级分类
if (isset($condition['misort'])) {
$condition['misort'] = rawurldecode($condition['misort']);
}
// 转义颜色
if (isset($condition['color'])) {
$condition['color'] = rawurldecode($condition['color']);
}
// 转义尺码
if (isset($condition['size'])) {
$condition['size'] = rawurldecode($condition['size']);
}
// 转义风格
if (isset($condition['style'])) {
$condition['style'] = rawurldecode($condition['style']);
}
// 转义价格
if (isset($condition['price'])) {
$condition['price'] = rawurldecode($condition['price']);
}
// 转换折扣
if (isset($condition['discount'])) {
$condition['p_d'] = rawurldecode($condition['discount']);
}
// 为了兼容现在运营在用的p_d
if (isset($condition['p_d'])) {
$condition['discount'] = rawurldecode($condition['p_d']);
}
// 性别参数,不传则从COOKIE获取
if (!isset($condition['gender'])) {
$condition['gender'] = Helpers::getGenderByCookie();
} else {
$condition['gender'] = rawurldecode($condition['gender']);
}
// 品类名称参数, 不传则默认为全部
$name = $this->get('sort_name');
... ... @@ -92,11 +92,10 @@ class IndexController extends AbstractAction
$this->setTitle($name);
$this->setNavHeader($name, true, SITE_MAIN);
// if (!$condition) {
// $condition = array();
// }
// $goodList = $condition;
$goodList = array();
if (!$condition) {
$condition = array();
}
$goodList = $condition;
$goodList['cartUrl'] = Helpers::url('/cart/index/index', null);
$this->_view->display('index', array(
... ... @@ -133,13 +132,6 @@ class IndexController extends AbstractAction
$brandId = $brandLogo['id'];
}
/* 通过品牌域名找到对应的品牌ID */
// $domainList = Product\ListModel::getAllBrandDomains();
// $brandIds = array_keys($domainList, $domain);
// $brandId = 0;
// if (isset($brandIds[0])) {
// $brandId = $brandIds[0];
// }
// 当前的登录用户UID
$uid = $this->getUid();
... ... @@ -147,64 +139,64 @@ class IndexController extends AbstractAction
$from = $this->get('from');
$query = $this->get('query');
// /* 过滤请求参数 */
// $condition = filter_input_array(INPUT_GET, array(
// 'sort' => FILTER_DEFAULT,
// 'msort' => FILTER_DEFAULT,
// 'misort' => FILTER_DEFAULT,
// 'color' => FILTER_DEFAULT,
// 'size' => FILTER_DEFAULT,
// 'style' => FILTER_DEFAULT,
// 'price' => FILTER_DEFAULT,
// 'discount' => FILTER_DEFAULT,
// 'gender' => FILTER_DEFAULT,
// 'p_d' => FILTER_DEFAULT,), false);
// $condition['brand'] = $brandId;
// // 转义分类
// if (isset($condition['sort'])) {
// $condition['sort'] = rawurldecode($condition['sort']);
// }
// // 转义一级分类
// if (isset($condition['msort'])) {
// $condition['msort'] = rawurldecode($condition['msort']);
// }
// // 转义二级分类
// if (isset($condition['misort'])) {
// $condition['misort'] = rawurldecode($condition['misort']);
// }
// // 转义颜色
// if (isset($condition['color'])) {
// $condition['color'] = rawurldecode($condition['color']);
// }
// // 转义尺码
// if (isset($condition['size'])) {
// $condition['size'] = rawurldecode($condition['size']);
// }
// // 转义风格
// if (isset($condition['style'])) {
// $condition['style'] = rawurldecode($condition['style']);
// }
// // 转义价格
// if (isset($condition['price'])) {
// $condition['price'] = rawurldecode($condition['price']);
// }
// // 转换折扣
// if (isset($condition['discount'])) {
// $condition['p_d'] = rawurldecode($condition['discount']);
// }
// // 为了兼容现在运营在用的p_d
// if (isset($condition['p_d'])) {
// $condition['discount'] = rawurldecode($condition['p_d']);
// }
// if ($brandId === 0) {
// $condition['query'] = $domain;
// }
//
// if (isset($condition['gender'])) {
// $condition['gender'] = rawurldecode($condition['gender']);
// } else {
// $condition['gender'] = Helpers::getGenderByCookie();
// }
/* 过滤请求参数 */
$condition = filter_input_array(INPUT_GET, array(
'sort' => FILTER_DEFAULT,
'msort' => FILTER_DEFAULT,
'misort' => FILTER_DEFAULT,
'color' => FILTER_DEFAULT,
'size' => FILTER_DEFAULT,
'style' => FILTER_DEFAULT,
'price' => FILTER_DEFAULT,
'discount' => FILTER_DEFAULT,
'gender' => FILTER_DEFAULT,
'p_d' => FILTER_DEFAULT,), false);
$condition['brand'] = $brandId;
// 转义分类
if (isset($condition['sort'])) {
$condition['sort'] = rawurldecode($condition['sort']);
}
// 转义一级分类
if (isset($condition['msort'])) {
$condition['msort'] = rawurldecode($condition['msort']);
}
// 转义二级分类
if (isset($condition['misort'])) {
$condition['misort'] = rawurldecode($condition['misort']);
}
// 转义颜色
if (isset($condition['color'])) {
$condition['color'] = rawurldecode($condition['color']);
}
// 转义尺码
if (isset($condition['size'])) {
$condition['size'] = rawurldecode($condition['size']);
}
// 转义风格
if (isset($condition['style'])) {
$condition['style'] = rawurldecode($condition['style']);
}
// 转义价格
if (isset($condition['price'])) {
$condition['price'] = rawurldecode($condition['price']);
}
// 转换折扣
if (isset($condition['discount'])) {
$condition['p_d'] = rawurldecode($condition['discount']);
}
// 为了兼容现在运营在用的p_d
if (isset($condition['p_d'])) {
$condition['discount'] = rawurldecode($condition['p_d']);
}
if ($brandId === 0) {
$condition['query'] = $domain;
}
if (isset($condition['gender'])) {
$condition['gender'] = rawurldecode($condition['gender']);
} else {
$condition['gender'] = Helpers::getGenderByCookie();
}
$data = array();
$data['goodListPage'] = true;
... ...