Merge branch 'feature/optimRear' into 'master'
优化服务端代码 后端相关逻辑简化。 See merge request !220
Showing
7 changed files
with
62 additions
and
49 deletions
@@ -10,25 +10,43 @@ const utils = '../../../utils'; | @@ -10,25 +10,43 @@ const utils = '../../../utils'; | ||
10 | const headerModel = require('../../../doraemon/models/header'); | 10 | const headerModel = require('../../../doraemon/models/header'); |
11 | const searchProcess = require(`${utils}/search-process`); | 11 | const searchProcess = require(`${utils}/search-process`); |
12 | const newModel = require(`${mRoot}/new`); | 12 | const newModel = require(`${mRoot}/new`); |
13 | +const searchModel = require(`${mRoot}/search`); | ||
13 | const _ = require('lodash'); | 14 | const _ = require('lodash'); |
14 | const helpers = global.yoho.helpers; | 15 | const helpers = global.yoho.helpers; |
15 | 16 | ||
16 | // 新品到着(blk) | 17 | // 新品到着(blk) |
17 | -const blkNewGoods = (req, res) => { | 18 | +const blkNewGoods = (req, res, next) => { |
18 | let params = Object.assign({ | 19 | let params = Object.assign({ |
19 | isblknew: true | 20 | isblknew: true |
20 | }, req.query); | 21 | }, req.query); |
21 | 22 | ||
22 | - res.render('search/goods-list', { | ||
23 | - module: 'product', | ||
24 | - page: 'search-list', | ||
25 | - pageHeader: headerModel.setNav({ | ||
26 | - navTitle: req.query.title || req.query.sort_name || '新品抢先看' | ||
27 | - }), | ||
28 | - goodList: params, | ||
29 | - showDownloadApp: true, | ||
30 | - pageFooter: true | ||
31 | - }); | 23 | + // 获取第一页数据做服务端渲染 |
24 | + let uid = req.user.uid || 0; | ||
25 | + let initialData = _.assign({ | ||
26 | + gender: req.query.gender || '1,3', | ||
27 | + type: 'default', | ||
28 | + order: '0', | ||
29 | + page: 1, | ||
30 | + limit: 12 | ||
31 | + }, params); | ||
32 | + | ||
33 | + if (uid) { | ||
34 | + initialData.uid = uid; | ||
35 | + } | ||
36 | + | ||
37 | + searchModel.getSearchData(initialData).then(firstScreenGoodsList => { | ||
38 | + res.render('search/goods-list', { | ||
39 | + module: 'product', | ||
40 | + page: 'search-list', | ||
41 | + pageHeader: headerModel.setNav({ | ||
42 | + navTitle: req.query.title || req.query.sort_name || '新品抢先看' | ||
43 | + }), | ||
44 | + goodList: params, | ||
45 | + firstPageGoodsList: firstScreenGoodsList.list, | ||
46 | + showDownloadApp: true, | ||
47 | + pageFooter: true | ||
48 | + }); | ||
49 | + }).catch(next); | ||
32 | }; | 50 | }; |
33 | 51 | ||
34 | // 新品到着 | 52 | // 新品到着 |
@@ -20,7 +20,7 @@ const getCommonConsult = () => { | @@ -20,7 +20,7 @@ const getCommonConsult = () => { | ||
20 | 20 | ||
21 | return api.get('', params, { | 21 | return api.get('', params, { |
22 | code: 200 | 22 | code: 200 |
23 | - }).then(result => { | 23 | + }, {cache: true}).then(result => { |
24 | let data = {}; | 24 | let data = {}; |
25 | 25 | ||
26 | if (result.data) { | 26 | if (result.data) { |
@@ -37,24 +37,20 @@ const getCommonConsult = () => { | @@ -37,24 +37,20 @@ const getCommonConsult = () => { | ||
37 | * @return {[object]} | 37 | * @return {[object]} |
38 | */ | 38 | */ |
39 | const _formatConsultsList = (data) => { | 39 | const _formatConsultsList = (data) => { |
40 | - let list = []; | ||
41 | - | ||
42 | - if (data.length) { | ||
43 | - _.forEach(data, (value) => { | ||
44 | - list.push({ | ||
45 | - question: value.ask, | ||
46 | - time: value.ask_time, | ||
47 | - answer: value.answer, | ||
48 | - id: value.id, | ||
49 | - isLike: value.is_like === 'Y', | ||
50 | - like: _.toNumber(value.like), | ||
51 | - isUseful: value.is_useful === 'Y', | ||
52 | - useful: _.toNumber(value.useful) | ||
53 | - }); | ||
54 | - }); | ||
55 | - } | ||
56 | - | ||
57 | - return list; | 40 | + data = data || []; |
41 | + | ||
42 | + return data.map(function(value) { | ||
43 | + return { | ||
44 | + question: value.ask, | ||
45 | + time: value.ask_time, | ||
46 | + answer: value.answer, | ||
47 | + id: value.id, | ||
48 | + isLike: value.is_like === 'Y', | ||
49 | + like: _.toNumber(value.like), | ||
50 | + isUseful: value.is_useful === 'Y', | ||
51 | + useful: _.toNumber(value.useful) | ||
52 | + }; | ||
53 | + }); | ||
58 | }; | 54 | }; |
59 | 55 | ||
60 | /** | 56 | /** |
@@ -75,7 +71,7 @@ const getConsults = (id, page, limit, uid) => { | @@ -75,7 +71,7 @@ const getConsults = (id, page, limit, uid) => { | ||
75 | 71 | ||
76 | return api.get('', params, { | 72 | return api.get('', params, { |
77 | code: 200 | 73 | code: 200 |
78 | - }).then(result => { | 74 | + }, {cache: true}).then(result => { |
79 | let data = {}; | 75 | let data = {}; |
80 | 76 | ||
81 | if (result && result.data && result.data.list) { | 77 | if (result && result.data && result.data.list) { |
@@ -32,23 +32,24 @@ const _processBrandNames = (list) => { | @@ -32,23 +32,24 @@ const _processBrandNames = (list) => { | ||
32 | const formatData = []; | 32 | const formatData = []; |
33 | const brandDomainMap = {}, brandNameMap = {}; | 33 | const brandDomainMap = {}, brandNameMap = {}; |
34 | const ttl = 60000; // 默认缓存一分钟 | 34 | const ttl = 60000; // 默认缓存一分钟 |
35 | + let brandDomain = ''; | ||
36 | + let brandName = ''; | ||
35 | 37 | ||
36 | list = list || []; | 38 | list = list || []; |
37 | - list = camelCase(list); | ||
38 | 39 | ||
39 | _.forEach(list, (item) => { | 40 | _.forEach(list, (item) => { |
40 | _.forEach(item, (obj) => { | 41 | _.forEach(item, (obj) => { |
41 | - formatData.push({ | ||
42 | - brandDomain: obj.brandDomain && obj.brandDomain.toLowerCase(), | ||
43 | - brandName: obj.brandDomain && obj.brandName.toLowerCase() | ||
44 | - }); | 42 | + brandDomain = obj.brand_domain && obj.brand_domain.toLowerCase(); |
43 | + brandName = obj.brand_name && obj.brand_name.toLowerCase(); | ||
45 | 44 | ||
46 | - if (obj && obj.brandDomain) { | ||
47 | - brandDomainMap[obj.brandDomain.toLowerCase()] = obj.brandDomain.toLowerCase(); | ||
48 | - } | 45 | + if (brandDomain && brandName) { |
46 | + formatData.push({ | ||
47 | + brandDomain: brandDomain, | ||
48 | + brandName: brandName | ||
49 | + }); | ||
49 | 50 | ||
50 | - if (obj && obj.brandName && obj.brandDomain) { | ||
51 | - brandNameMap[obj.brandName.toLowerCase()] = obj.brandDomain.toLowerCase(); | 51 | + brandDomainMap[brandDomain] = brandDomain; |
52 | + brandNameMap[brandName] = brandDomain; | ||
52 | } | 53 | } |
53 | }); | 54 | }); |
54 | }); | 55 | }); |
@@ -71,15 +72,14 @@ const _processClassNames = (list) => { | @@ -71,15 +72,14 @@ const _processClassNames = (list) => { | ||
71 | }; | 72 | }; |
72 | 73 | ||
73 | list = list || []; | 74 | list = list || []; |
74 | - list = camelCase(list); | ||
75 | 75 | ||
76 | _.forEach(list, (item) => { | 76 | _.forEach(list, (item) => { |
77 | _.forEach(item, (obj) => { | 77 | _.forEach(item, (obj) => { |
78 | - formatData.first[obj.categoryId] = obj.categoryName; | 78 | + formatData.first[obj.category_id] = obj.category_name; |
79 | 79 | ||
80 | if (obj.sub) { | 80 | if (obj.sub) { |
81 | _.forEach(obj.sub, (sub) => { | 81 | _.forEach(obj.sub, (sub) => { |
82 | - formatData.second[sub.categoryId] = sub.categoryName; | 82 | + formatData.second[sub.category_id] = sub.category_name; |
83 | }); | 83 | }); |
84 | } | 84 | } |
85 | 85 |
@@ -76,7 +76,7 @@ module.exports = { | @@ -76,7 +76,7 @@ module.exports = { | ||
76 | port: '4444' // influxdb port | 76 | port: '4444' // influxdb port |
77 | }, | 77 | }, |
78 | console: { | 78 | console: { |
79 | - level: 'debug', | 79 | + level: 'info', |
80 | colorize: 'all', | 80 | colorize: 'all', |
81 | prettyPrint: true | 81 | prettyPrint: true |
82 | } | 82 | } |
@@ -45,7 +45,7 @@ function initSwiper(data) { | @@ -45,7 +45,7 @@ function initSwiper(data) { | ||
45 | idStrReg = /container-(\d+)['"]{1}/gi, | 45 | idStrReg = /container-(\d+)['"]{1}/gi, |
46 | idReg = /\d+/, | 46 | idReg = /\d+/, |
47 | idArr = data.match(idStrReg), | 47 | idArr = data.match(idStrReg), |
48 | - idArrLen = idArr.length, | 48 | + idArrLen = idArr && idArr.length || 0, |
49 | containerId; | 49 | containerId; |
50 | 50 | ||
51 | // $swiperList = $('.swiper-container'); | 51 | // $swiperList = $('.swiper-container'); |
@@ -95,7 +95,7 @@ function loadData($parent, url, page) { | @@ -95,7 +95,7 @@ function loadData($parent, url, page) { | ||
95 | if (data.total === 0) { | 95 | if (data.total === 0) { |
96 | 96 | ||
97 | $loadingMask.addClass('hide'); | 97 | $loadingMask.addClass('hide'); |
98 | - $parent.closest('.fav-type').find('.fav-null-box').removeClass('hide'); | 98 | + $parent.closest('.fav-type').find('.fav-null-box').removeClass('hide').addClass('show'); |
99 | window.rePosFooter(); | 99 | window.rePosFooter(); |
100 | } else if (data.more === true) { | 100 | } else if (data.more === true) { |
101 | 101 |
-
Please register or login to post a comment