Authored by 郭成尧

promise方式处理数据

@@ -15,11 +15,11 @@ exports.index = (req, res) => { @@ -15,11 +15,11 @@ exports.index = (req, res) => {
15 var id = req.params.id; 15 var id = req.params.id;
16 16
17 detail({ 17 detail({
18 - id: id  
19 - }, (data) => {  
20 - res.render('detail', {  
21 - result: JSON.stringify(data, null, 4),  
22 - devEnv: true  
23 - }); 18 + id:id
  19 + }).then((result) => {
  20 + res.render('detail', {
  21 + result: JSON.stringify(result, null, 4),
  22 + devEnv: true
  23 + });
24 }); 24 });
25 }; 25 };
@@ -16,21 +16,6 @@ var api = new API(); @@ -16,21 +16,6 @@ var api = new API();
16 var helpers = new HELPERS(); 16 var helpers = new HELPERS();
17 17
18 /** 18 /**
19 - * 一品多店 获取品牌相关店铺信息  
20 - * @param {int} 品牌 ID  
21 - * @param {Function}  
22 - * @return {[type]}  
23 - */  
24 -const getBrandsInfo = (brand_id, cb) => {  
25 - api.get('', sign.apiSign({  
26 - method:'app.shop.queryShopsByBrandId',  
27 - brand_id: brand_id  
28 - })).then(result => {  
29 - return cb(result);  
30 - });  
31 -}  
32 -  
33 -/**  
34 * 处理限购商品的有关按钮状态(或取现购买以及底部商品购买按钮) 19 * 处理限购商品的有关按钮状态(或取现购买以及底部商品购买按钮)
35 * @param {array} 需要处理的数据 20 * @param {array} 需要处理的数据
36 * @param {int} 限购商品的关联状态 21 * @param {int} 限购商品的关联状态
@@ -256,40 +241,12 @@ const detailDataPkg = (origin, uid, vipLevel) => { @@ -256,40 +241,12 @@ const detailDataPkg = (origin, uid, vipLevel) => {
256 // 品牌信息 241 // 品牌信息
257 if (origin.brand !== null && origin.brand !== undefined) { 242 if (origin.brand !== null && origin.brand !== undefined) {
258 243
259 - // dest.enterStore = {};  
260 -  
261 // dest.enterStore[0] = {}; 244 // dest.enterStore[0] = {};
262 // dest.enterStore[0].img = 245 // dest.enterStore[0].img =
263 // helpers.getImageUrl(origin.brand.brandIco, 47, 47); 246 // helpers.getImageUrl(origin.brand.brandIco, 47, 47);
264 // dest.enterStore[0].storeName = origin.brand.brandName; 247 // dest.enterStore[0].storeName = origin.brand.brandName;
265 // dest.enterStore[0].url = helpers.url('', null, origin.brand.brandDomain); 248 // dest.enterStore[0].url = helpers.url('', null, origin.brand.brandDomain);
266 249
267 - let tempData = getBrandsInfo(origin.brand.id, (shops) => {  
268 - if (shops.code === 200) {  
269 - let enterStore = {}  
270 - _.forEach(shops.data, function(value, key){  
271 - enterStore[key] = {};  
272 - enterStore[key].img = helpers.getImageUrl(value.brand_ico, 47, 47);  
273 - enterStore[key].storeName = value.brand_name;  
274 -  
275 - if (value.shop_id !== null && value.shop_id !== undefined) {  
276 - let params = {};  
277 -  
278 - params.shop_id = value.shop_id;  
279 - enterStore[key].url =  
280 - helpers.url('/product/index/brand', params);  
281 - } else {  
282 - enterStore[key].url =  
283 - helpers.url('', null, value.brand_domain);  
284 - }  
285 - });  
286 -  
287 - return enterStore;  
288 - }  
289 - });  
290 -  
291 - console.log(tempData);  
292 -  
293 // 为你优选的链接 250 // 为你优选的链接
294 let params = {}; 251 let params = {};
295 252
@@ -502,18 +459,43 @@ const detailDataPkg = (origin, uid, vipLevel) => { @@ -502,18 +459,43 @@ const detailDataPkg = (origin, uid, vipLevel) => {
502 // 底部简介的URL链接 459 // 底部简介的URL链接
503 dest.introUrl = helpers.url('/product/intro_' + origin.erpProductId + '/' + origin.cnAlphabet + '.html', null, ''); 460 dest.introUrl = helpers.url('/product/intro_' + origin.erpProductId + '/' + origin.cnAlphabet + '.html', null, '');
504 dest.id = origin.id; 461 dest.id = origin.id;
505 - 462 + console.log('data:' + JSON.stringify(dest));
506 return dest; 463 return dest;
507 }; 464 };
508 465
509 -module.exports = (data, cb) => {  
510 - console.log('data:' + JSON.stringify(data));  
511 - api.get('', sign.apiSign({ 466 +module.exports = (data) => {
  467 + var finalResult;
  468 +
  469 + return api.get('', sign.apiSign({
512 productId: data.id, 470 productId: data.id,
513 method: 'h5.product.data' 471 method: 'h5.product.data'
514 })).then(result => { 472 })).then(result => {
515 - var dJson = JSON.parse(result); 473 + finalResult = detailDataPkg(result, null, 0);
  474 +
  475 + return api.get('', sign.apiSign({
  476 + method: 'app.shop.queryShopsByBrandId',
  477 + brand_id: result.brand.id
  478 + })).then(shops => {
  479 + if (shops.code === 200) {
  480 + finalResult.enterStore = {};
  481 + _.forEach(shops.data, function(value, key) {
  482 + finalResult.enterStore[key] = {};
  483 + finalResult.enterStore[key].img = helpers.getImageUrl(value.brand_ico, 47, 47);
  484 + finalResult.enterStore[key].storeName = value.brand_name;
  485 +
  486 + if (value.shop_id !== null && value.shop_id !== undefined) {
  487 + let params = {};
516 488
517 - cb(detailDataPkg(dJson, null, 0)); // 待处理 缺少 VIP 等级参数,暂时补充为 0 489 + params.shop_id = value.shop_id;
  490 + finalResult.enterStore[key].url =
  491 + helpers.url('/product/index/brand', params);
  492 + } else {
  493 + finalResult.enterStore[key].url =
  494 + helpers.url('', null, value.brand_domain);
  495 + }
  496 + });
  497 + }
  498 + return finalResult;
  499 + });
518 }); 500 });
519 }; 501 };
@@ -58,7 +58,8 @@ class API { @@ -58,7 +58,8 @@ class API {
58 58
59 let options = { 59 let options = {
60 url: `${ApiUrl}${url}`, 60 url: `${ApiUrl}${url}`,
61 - qs: data 61 + qs: data,
  62 + json: true
62 }; 63 };
63 64
64 let requestPromise = rp(options); 65 let requestPromise = rp(options);