Merge branch 'hotfix/sale-activity'
Showing
7 changed files
with
82 additions
and
31 deletions
@@ -9,6 +9,8 @@ | @@ -9,6 +9,8 @@ | ||
9 | const mRoot = '../models'; | 9 | const mRoot = '../models'; |
10 | const sale = require(`${mRoot}/sale`); // sale 页 model | 10 | const sale = require(`${mRoot}/sale`); // sale 页 model |
11 | 11 | ||
12 | +const _ = require('lodash'); | ||
13 | + | ||
12 | /** | 14 | /** |
13 | * sale 首页 | 15 | * sale 首页 |
14 | * @param {[type]} req [description] | 16 | * @param {[type]} req [description] |
@@ -150,6 +152,9 @@ exports.special = (req, res, next) => { | @@ -150,6 +152,9 @@ exports.special = (req, res, next) => { | ||
150 | return next(); | 152 | return next(); |
151 | } | 153 | } |
152 | 154 | ||
155 | + _.omit(params, 'specialsale_id'); | ||
156 | + params.productPool = specialId; | ||
157 | + | ||
153 | sale.getSaleSpecialData(specialId, params, req.yoho.channel).then(result => { | 158 | sale.getSaleSpecialData(specialId, params, req.yoho.channel).then(result => { |
154 | res.render('sale/special', result); | 159 | res.render('sale/special', result); |
155 | }).catch(next); | 160 | }).catch(next); |
@@ -208,7 +208,7 @@ const _getBrandDataByProductBaseInfo = (data, additionalData) => { | @@ -208,7 +208,7 @@ const _getBrandDataByProductBaseInfo = (data, additionalData) => { | ||
208 | return {}; | 208 | return {}; |
209 | } | 209 | } |
210 | 210 | ||
211 | - let brandId = data.brand_info.id; | 211 | + let brandId = data.brand_info.brand_id; |
212 | let bgImg = ''; | 212 | let bgImg = ''; |
213 | let logo = ''; | 213 | let logo = ''; |
214 | let bannerInfo = null; | 214 | let bannerInfo = null; |
@@ -106,14 +106,20 @@ const getListData = (params, channel) => { | @@ -106,14 +106,20 @@ const getListData = (params, channel) => { | ||
106 | 106 | ||
107 | finalResult.list = Object.assign( | 107 | finalResult.list = Object.assign( |
108 | searchHandler.handlePathNavData(result[1].data.sort, params, 'sort', channel), { | 108 | searchHandler.handlePathNavData(result[1].data.sort, params, 'sort', channel), { |
109 | - leftContent: searchHandler.handleSortData(result[1].data.sort, dps) | 109 | + leftContent: searchHandler.handleSortData(result[1].data.sort, dps, params) |
110 | }); | 110 | }); |
111 | } | 111 | } |
112 | 112 | ||
113 | // 获取商品数据和顶部筛选条件 | 113 | // 获取商品数据和顶部筛选条件 |
114 | if (result[2].code === 200) { | 114 | if (result[2].code === 200) { |
115 | + let filters = Object.assign(searchHandler.handleFilterDataAll(result[2].data, params), | ||
116 | + finalResult.list.leftContent.sort); | ||
117 | + | ||
118 | + filters.checkedConditions.conditions = _.concat(filters.checkedConditions.conditions, | ||
119 | + finalResult.list.leftContent.checked); | ||
120 | + | ||
115 | Object.assign(finalResult.list, { | 121 | Object.assign(finalResult.list, { |
116 | - filters: searchHandler.handleFilterDataAll(result[2].data, params), | 122 | + filters: filters, |
117 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), | 123 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), |
118 | totalCount: result[2].data.total, | 124 | totalCount: result[2].data.total, |
119 | footPager: searchHandler.handlePagerData(result[2].data.total, params), | 125 | footPager: searchHandler.handlePagerData(result[2].data.total, params), |
@@ -184,14 +190,20 @@ const getListNewData = (params, channel) => { | @@ -184,14 +190,20 @@ const getListNewData = (params, channel) => { | ||
184 | if (result[1].code === 200) { | 190 | if (result[1].code === 200) { |
185 | finalResult.list = Object.assign( | 191 | finalResult.list = Object.assign( |
186 | searchHandler.handlePathNavData(result[1].data.sort, params, 'new', channel), { | 192 | searchHandler.handlePathNavData(result[1].data.sort, params, 'new', channel), { |
187 | - leftContent: searchHandler.handleSortData(result[1].data.sort, dps) | 193 | + leftContent: searchHandler.handleSortData(result[1].data.sort, dps, params) |
188 | }); | 194 | }); |
189 | } | 195 | } |
190 | 196 | ||
191 | // 获取商品数据和顶部筛选条件 | 197 | // 获取商品数据和顶部筛选条件 |
192 | if (result[2].code === 200) { | 198 | if (result[2].code === 200) { |
199 | + let filters = Object.assign(searchHandler.handleFilterDataAll(result[2].data, params), | ||
200 | + finalResult.list.leftContent.sort); | ||
201 | + | ||
202 | + filters.checkedConditions.conditions = _.concat(filters.checkedConditions.conditions, | ||
203 | + finalResult.list.leftContent.checked); | ||
204 | + | ||
193 | Object.assign(finalResult.list, { | 205 | Object.assign(finalResult.list, { |
194 | - filters: searchHandler.handleFilterDataAll(result[2].data, params), | 206 | + filters: filters, |
195 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), | 207 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), |
196 | totalCount: result[2].data.total, | 208 | totalCount: result[2].data.total, |
197 | footPager: searchHandler.handlePagerData(result[2].data.total, params), | 209 | footPager: searchHandler.handlePagerData(result[2].data.total, params), |
@@ -295,14 +307,20 @@ const getBrandData = (params, extra, channel) => { | @@ -295,14 +307,20 @@ const getBrandData = (params, extra, channel) => { | ||
295 | }); | 307 | }); |
296 | 308 | ||
297 | Object.assign(finalResult.brand, { | 309 | Object.assign(finalResult.brand, { |
298 | - leftContent: searchHandler.handleSortData(result[1].data.sort, dps) | 310 | + leftContent: searchHandler.handleSortData(result[1].data.sort, dps, params) |
299 | }, searchHandler.handlePathNavData(extra, params, 'brand', channel)); | 311 | }, searchHandler.handlePathNavData(extra, params, 'brand', channel)); |
300 | } | 312 | } |
301 | 313 | ||
302 | // 获取商品数据和顶部筛选条件 | 314 | // 获取商品数据和顶部筛选条件 |
303 | if (result[2].code === 200) { | 315 | if (result[2].code === 200) { |
316 | + let filters = Object.assign(searchHandler.handleFilterDataAll(result[2].data, params), | ||
317 | + finalResult.brand.leftContent.sort); | ||
318 | + | ||
319 | + filters.checkedConditions.conditions = _.concat(filters.checkedConditions.conditions, | ||
320 | + finalResult.brand.leftContent.checked); | ||
321 | + | ||
304 | Object.assign(finalResult.brand, { | 322 | Object.assign(finalResult.brand, { |
305 | - filters: searchHandler.handleFilterDataAll(result[2].data, params), | 323 | + filters: filters, |
306 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), | 324 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), |
307 | totalCount: result[2].data.total, | 325 | totalCount: result[2].data.total, |
308 | footPager: searchHandler.handlePagerData(result[2].data.total, params), | 326 | footPager: searchHandler.handlePagerData(result[2].data.total, params), |
@@ -39,7 +39,7 @@ const handleFilterUrl = (originParam, newParam, delParam) => { | @@ -39,7 +39,7 @@ const handleFilterUrl = (originParam, newParam, delParam) => { | ||
39 | delete tempOriginParam.uid; | 39 | delete tempOriginParam.uid; |
40 | 40 | ||
41 | _.forEach(tempOriginParam, function(value, key) { | 41 | _.forEach(tempOriginParam, function(value, key) { |
42 | - if (!delParam[key]) { | 42 | + if (!delParam[key] && value) { |
43 | dest += `${key}=${value}&`; | 43 | dest += `${key}=${value}&`; |
44 | } | 44 | } |
45 | }); | 45 | }); |
@@ -465,8 +465,12 @@ exports.handleOptsData = (params, total, extra) => { | @@ -465,8 +465,12 @@ exports.handleOptsData = (params, total, extra) => { | ||
465 | * @param extra 可以任意传值用来处理特殊情况 | 465 | * @param extra 可以任意传值用来处理特殊情况 |
466 | * @returns {{}} | 466 | * @returns {{}} |
467 | */ | 467 | */ |
468 | -exports.handleSortData = (origin, params) => { | ||
469 | - let leftContent = {}; | 468 | +exports.handleSortData = (origin, params, originParams) => { |
469 | + let leftContent = { | ||
470 | + sort: {misort: []}, | ||
471 | + checked: [] | ||
472 | + }; | ||
473 | + | ||
470 | let list = [], | 474 | let list = [], |
471 | allCount = 0; | 475 | allCount = 0; |
472 | 476 | ||
@@ -477,8 +481,6 @@ exports.handleSortData = (origin, params) => { | @@ -477,8 +481,6 @@ exports.handleSortData = (origin, params) => { | ||
477 | href: handleFilterUrl(params, {}, {msort: true, misort: true}) | 481 | href: handleFilterUrl(params, {}, {msort: true, misort: true}) |
478 | }]; | 482 | }]; |
479 | 483 | ||
480 | - // | ||
481 | - | ||
482 | _.forEach(origin, value => { | 484 | _.forEach(origin, value => { |
483 | let category = { | 485 | let category = { |
484 | name: value.sort_name, | 486 | name: value.sort_name, |
@@ -511,6 +513,25 @@ exports.handleSortData = (origin, params) => { | @@ -511,6 +513,25 @@ exports.handleSortData = (origin, params) => { | ||
511 | category.active = true; | 513 | category.active = true; |
512 | } | 514 | } |
513 | 515 | ||
516 | + if (subValue.sort_id === params.misort && subValue.sub && subValue.sub.length > 2) { | ||
517 | + _.forEach(subValue.sub, smallSort => { | ||
518 | + | ||
519 | + leftContent.sort.misort.push({ | ||
520 | + id: smallSort.sort_id, | ||
521 | + name: smallSort.sort_name, | ||
522 | + checked: smallSort.sort_id === _.get(originParams, 'sort'), | ||
523 | + href: handleFilterUrl(originParams, {sort: smallSort.sort_id}) | ||
524 | + }); | ||
525 | + | ||
526 | + if (smallSort.sort_id === _.get(originParams, 'sort')) { | ||
527 | + leftContent.checked.push({ | ||
528 | + name: smallSort.sort_name, | ||
529 | + href: handleFilterUrl(originParams, {sort: ''}) | ||
530 | + }); | ||
531 | + } | ||
532 | + | ||
533 | + }); | ||
534 | + } | ||
514 | }); | 535 | }); |
515 | 536 | ||
516 | list.push(category); | 537 | list.push(category); |
@@ -25,7 +25,7 @@ exports.getSearchData = (params, channel) => { | @@ -25,7 +25,7 @@ exports.getSearchData = (params, channel) => { | ||
25 | // 调用接口 | 25 | // 调用接口 |
26 | let apiMethod = [ | 26 | let apiMethod = [ |
27 | headerModel.requestHeaderData(channel), | 27 | headerModel.requestHeaderData(channel), |
28 | - searchApi.getSortList(Object.assign({}, searchParams, {msort: '', misort: ''})), | 28 | + searchApi.getSortList(Object.assign({}, searchParams, {msort: '', misort: '', sort: ''})), |
29 | searchApi.getProductList(searchParams), | 29 | searchApi.getProductList(searchParams), |
30 | searchApi.getShopList(params) | 30 | searchApi.getShopList(params) |
31 | ]; | 31 | ]; |
@@ -54,16 +54,23 @@ exports.getSearchData = (params, channel) => { | @@ -54,16 +54,23 @@ exports.getSearchData = (params, channel) => { | ||
54 | }); | 54 | }); |
55 | 55 | ||
56 | finalResult.search = { | 56 | finalResult.search = { |
57 | - leftContent: searchHandler.handleSortData(result[1].data.sort, dps) | 57 | + leftContent: searchHandler.handleSortData(result[1].data.sort, dps, params) |
58 | }; | 58 | }; |
59 | } | 59 | } |
60 | 60 | ||
61 | // 获取商品数据和顶部筛选条件 | 61 | // 获取商品数据和顶部筛选条件 |
62 | if (result[2].code === 200) { | 62 | if (result[2].code === 200) { |
63 | + | ||
64 | + let filters = Object.assign(searchHandler.handleFilterDataAll(result[2].data, params), | ||
65 | + finalResult.search.leftContent.sort); | ||
66 | + | ||
67 | + filters.checkedConditions.conditions = _.concat(filters.checkedConditions.conditions, | ||
68 | + finalResult.search.leftContent.checked); | ||
69 | + | ||
63 | Object.assign(finalResult.search, | 70 | Object.assign(finalResult.search, |
64 | searchHandler.handlePathNavData({total: result[2].data.total }, params, 'search', channel), | 71 | searchHandler.handlePathNavData({total: result[2].data.total }, params, 'search', channel), |
65 | { | 72 | { |
66 | - filters: searchHandler.handleFilterDataAll(result[2].data, params), | 73 | + filters: filters, |
67 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), | 74 | opts: searchHandler.handleOptsData(params, result[2].data.total, result[2].data.filter), |
68 | totalCount: result[2].data.total, | 75 | totalCount: result[2].data.total, |
69 | footPager: searchHandler.handlePagerData(result[2].data.total, params), | 76 | footPager: searchHandler.handlePagerData(result[2].data.total, params), |
@@ -16,8 +16,8 @@ module.exports = { | @@ -16,8 +16,8 @@ module.exports = { | ||
16 | siteUrl: 'http://www.yohobuy.com', | 16 | siteUrl: 'http://www.yohobuy.com', |
17 | domains: { | 17 | domains: { |
18 | favApi: 'http://192.168.102.31:8092/brower', | 18 | favApi: 'http://192.168.102.31:8092/brower', |
19 | - api: 'http://api-test1.yohops.com:9999/', | ||
20 | - service: 'http://service-test1.yohops.com:9999/', | 19 | + api: 'http://api.yoho.cn/', |
20 | + service: 'http://service.yoho.cn/', | ||
21 | search: 'http://192.168.102.216:8080/yohosearch/' | 21 | search: 'http://192.168.102.216:8080/yohosearch/' |
22 | }, | 22 | }, |
23 | subDomains: { | 23 | subDomains: { |
@@ -50,20 +50,6 @@ | @@ -50,20 +50,6 @@ | ||
50 | </div> | 50 | </div> |
51 | {{/if}} | 51 | {{/if}} |
52 | 52 | ||
53 | - {{#if ageLevel}} | ||
54 | - <div class="channel section"> | ||
55 | - <span class="title">人群:</span> | ||
56 | - | ||
57 | - <div class="attr-content clearfix"> | ||
58 | - {{#each ageLevel}} | ||
59 | - <a class="attr {{#if checked}}checked{{/if}}" href="{{href}}"> | ||
60 | - {{name}} | ||
61 | - </a> | ||
62 | - {{/each}} | ||
63 | - </div> | ||
64 | - </div> | ||
65 | - {{/if}} | ||
66 | - | ||
67 | {{#if sort}} | 53 | {{#if sort}} |
68 | <div class="sort section"> | 54 | <div class="sort section"> |
69 | <span class="title">分类:</span> | 55 | <span class="title">分类:</span> |
@@ -143,6 +129,20 @@ | @@ -143,6 +129,20 @@ | ||
143 | {{> product/filter-brands}} | 129 | {{> product/filter-brands}} |
144 | </script> | 130 | </script> |
145 | 131 | ||
132 | + {{#if ageLevel}} | ||
133 | + <div class="channel section"> | ||
134 | + <span class="title">人群:</span> | ||
135 | + | ||
136 | + <div class="attr-content clearfix"> | ||
137 | + {{#each ageLevel}} | ||
138 | + <a class="attr {{#if checked}}checked{{/if}}" href="{{href}}"> | ||
139 | + {{name}} | ||
140 | + </a> | ||
141 | + {{/each}} | ||
142 | + </div> | ||
143 | + </div> | ||
144 | + {{/if}} | ||
145 | + | ||
146 | {{#if price}} | 146 | {{#if price}} |
147 | <div class="price section"> | 147 | <div class="price section"> |
148 | <span class="title">价格:</span> | 148 | <span class="title">价格:</span> |
-
Please register or login to post a comment