Authored by 郭成尧

promise方式处理数据

... ... @@ -15,11 +15,11 @@ exports.index = (req, res) => {
var id = req.params.id;
detail({
id: id
}, (data) => {
res.render('detail', {
result: JSON.stringify(data, null, 4),
devEnv: true
});
id:id
}).then((result) => {
res.render('detail', {
result: JSON.stringify(result, null, 4),
devEnv: true
});
});
};
... ...
... ... @@ -16,21 +16,6 @@ var api = new API();
var helpers = new HELPERS();
/**
* 一品多店 获取品牌相关店铺信息
* @param {int} 品牌 ID
* @param {Function}
* @return {[type]}
*/
const getBrandsInfo = (brand_id, cb) => {
api.get('', sign.apiSign({
method:'app.shop.queryShopsByBrandId',
brand_id: brand_id
})).then(result => {
return cb(result);
});
}
/**
* 处理限购商品的有关按钮状态(或取现购买以及底部商品购买按钮)
* @param {array} 需要处理的数据
* @param {int} 限购商品的关联状态
... ... @@ -256,40 +241,12 @@ const detailDataPkg = (origin, uid, vipLevel) => {
// 品牌信息
if (origin.brand !== null && origin.brand !== undefined) {
// dest.enterStore = {};
// dest.enterStore[0] = {};
// dest.enterStore[0].img =
// helpers.getImageUrl(origin.brand.brandIco, 47, 47);
// dest.enterStore[0].storeName = origin.brand.brandName;
// dest.enterStore[0].url = helpers.url('', null, origin.brand.brandDomain);
let tempData = getBrandsInfo(origin.brand.id, (shops) => {
if (shops.code === 200) {
let enterStore = {}
_.forEach(shops.data, function(value, key){
enterStore[key] = {};
enterStore[key].img = helpers.getImageUrl(value.brand_ico, 47, 47);
enterStore[key].storeName = value.brand_name;
if (value.shop_id !== null && value.shop_id !== undefined) {
let params = {};
params.shop_id = value.shop_id;
enterStore[key].url =
helpers.url('/product/index/brand', params);
} else {
enterStore[key].url =
helpers.url('', null, value.brand_domain);
}
});
return enterStore;
}
});
console.log(tempData);
// 为你优选的链接
let params = {};
... ... @@ -502,18 +459,43 @@ const detailDataPkg = (origin, uid, vipLevel) => {
// 底部简介的URL链接
dest.introUrl = helpers.url('/product/intro_' + origin.erpProductId + '/' + origin.cnAlphabet + '.html', null, '');
dest.id = origin.id;
console.log('data:' + JSON.stringify(dest));
return dest;
};
module.exports = (data, cb) => {
console.log('data:' + JSON.stringify(data));
api.get('', sign.apiSign({
module.exports = (data) => {
var finalResult;
return api.get('', sign.apiSign({
productId: data.id,
method: 'h5.product.data'
})).then(result => {
var dJson = JSON.parse(result);
finalResult = detailDataPkg(result, null, 0);
return api.get('', sign.apiSign({
method: 'app.shop.queryShopsByBrandId',
brand_id: result.brand.id
})).then(shops => {
if (shops.code === 200) {
finalResult.enterStore = {};
_.forEach(shops.data, function(value, key) {
finalResult.enterStore[key] = {};
finalResult.enterStore[key].img = helpers.getImageUrl(value.brand_ico, 47, 47);
finalResult.enterStore[key].storeName = value.brand_name;
if (value.shop_id !== null && value.shop_id !== undefined) {
let params = {};
cb(detailDataPkg(dJson, null, 0)); // 待处理 缺少 VIP 等级参数,暂时补充为 0
params.shop_id = value.shop_id;
finalResult.enterStore[key].url =
helpers.url('/product/index/brand', params);
} else {
finalResult.enterStore[key].url =
helpers.url('', null, value.brand_domain);
}
});
}
return finalResult;
});
});
};
... ...
... ... @@ -58,7 +58,8 @@ class API {
let options = {
url: `${ApiUrl}${url}`,
qs: data
qs: data,
json: true
};
let requestPromise = rp(options);
... ...