Authored by 王水玲

上下文

... ... @@ -52,7 +52,7 @@ const component = {
uid: req.user.uid || 0
};
model.product(params).then(product => {
req.ctx(model).product(params).then(product => {
product = product.data || {};
product.formatPrice = product.format_sales_price !== '0' ? product.format_sales_price : product.format_market_price;//eslint-disable-line
... ... @@ -76,7 +76,7 @@ const component = {
uid: req.user.uid || 0
};
model.product(params).then(product => {
req.ctx(model).product(params).then(product => {
product = product.data || {};
product.formatPrice = product.format_sales_price !== '0' ? product.format_sales_price : product.format_market_price;//eslint-disable-line
... ... @@ -98,8 +98,8 @@ const component = {
product_id: _.toString(pid),
uid: req.user.uid || 0
};
const productPromise = model.product(params);
const vipPromise = req.user.uid ? model.getVipData(params) : Promise.resolve();
const productPromise = req.ctx(model).product(params);
const vipPromise = req.user.uid ? req.ctx(model).getVipData(params) : Promise.resolve();
Promise.all([productPromise, vipPromise]).then((result) => {
let vipPrice = [];
... ... @@ -130,7 +130,7 @@ const component = {
uid: req.user.uid || ''
};
model.intro(params).then(result => {
req.ctx(model).intro(params).then(result => {
res.json(result);
}).catch(next);
},
... ... @@ -151,7 +151,7 @@ const component = {
shopping_key: global.yoho.cookie.getShoppingKey(req)
};
model.addToCart(params).then(result => {
req.ctx(model).addToCart(params).then(result => {
if (result.code === 200) {
// 将 shopping_key 写入Cookie
res.cookie('_SPK', result.data.shopping_key, {
... ... @@ -192,7 +192,7 @@ const component = {
return;
}
model.favorite(params).then(result => {
req.ctx(model).favorite(params).then(result => {
res.json(result);
}).catch(next);
},
... ... @@ -210,7 +210,7 @@ const component = {
uid: req.user.uid
};
model.isFavorite(params).then(result => {
req.ctx(model).isFavorite(params).then(result => {
res.json(result);
}).catch(next);
},
... ... @@ -277,7 +277,7 @@ const component = {
product_skn: req.params.skn
};
model.refundExchange(params).then(result => {
req.ctx(model).refundExchange(params).then(result => {
res.json(result);
}).catch(next);
},
... ... @@ -298,7 +298,7 @@ const component = {
yh_channel: CHANNEL_MAP[channel] || 1
};
return model.mightLike(params).then(result => {
return req.ctx(model).mightLike(params).then(result => {
if (result && result.code === 200) {
res.json({
code: 200,
... ...
... ... @@ -11,13 +11,134 @@ const singleAPI = global.yoho.SingleAPI;
/**
* 商品详情
*/
const model = {
// const model = {
// product(params) {
// return api.get('', Object.assign({
// method: 'app.product.data'
// }, params), {
// code: 200,
// cache: true
// }).then(result => {
// if (result.data) {
// let storage = 0; // result.storage 的 数值 不可靠,循环累加 库存
// const goodsList = result.data.goods_list;
// if (goodsList) {
// for (let good of goodsList) {
// for (let size of good.size_list) {
// storage += size.storage_number;
// }
// }
// }
// result.data.storage = storage;
// }
// return result;
// });
// },
// getVipData(params) {
// return api.get('', {
// method: 'app.passport.vip',
// uid: params.uid
// }, {
// code: 200
// });
// },
// intro(params) {
// return api.get('', Object.assign({
// method: 'h5.product.intro'
// }, params));
// },
// /**
// * 加入购物车接口
// *
// */
// addToCart(params) {
// return api.get('', Object.assign({
// method: 'app.Shopping.add'
// }, params));
// },
// /**
// * 添加收藏/取消收藏
// *
// * @param params
// */
// favorite(params, flag) {
// let method = '';
// if (flag) {
// method = 'app.favorite.add';
// } else {
// method = 'app.favorite.cancel';
// }
// return api.get('', Object.assign({
// method: method
// }, params));
// },
// /**
// * 判断是否收藏
// * @param params
// */
// isFavorite(params) {
// return singleAPI.get('/favorite', Object.assign({
// method: 'app.favorite.isFavoriteNew'
// }, params));
// },
// /**
// * 获取购物车数量
// *
// * @param params
// */
// getCartCount: (params) => {
// return api.get('', Object.assign({
// method: 'app.Shopping.count'
// }, params));
// },
// /**
// * 是否支持退换货
// * @param params
// */
// refundExchange(params) {
// return api.get('', Object.assign({
// method: 'app.product.refundExchange'
// }, params), {
// cache: true
// });
// },
// /**
// * 猜你喜欢
// * @param params
// */
// mightLike(params) {
// return api.get('', Object.assign({
// method: 'app.blk.shopRecommend'
// }, params));
// }
// };
module.exports = class extends global.yoho.BaseModel {
constructor(ctx) {
super(ctx);
}
product(params) {
return api.get('', Object.assign({
method: 'app.product.data'
}, params), {
code: 200,
cache: true
return this.get({
data: Object.assign({
method: 'app.product.data'
}, params),
params: {
code: 200,
cache: true
}
}).then(result => {
if (result.data) {
... ... @@ -37,30 +158,39 @@ const model = {
return result;
});
},
}
getVipData(params) {
return api.get('', {
method: 'app.passport.vip',
uid: params.uid
}, {
code: 200
return this.get({
data: {
method: 'app.passport.vip',
uid: params.uid
},
params: {
code: 200
}
});
},
}
intro(params) {
return api.get('', Object.assign({
method: 'h5.product.intro'
}, params));
},
return this.get({
data: Object.assign({
method: 'h5.product.intro'
}, params)
});
}
/**
* 加入购物车接口
*
*/
addToCart(params) {
return api.get('', Object.assign({
method: 'app.Shopping.add'
}, params));
},
return this.get({
data: Object.assign({
method: 'app.Shopping.add'
}, params)
});
}
/**
* 添加收藏/取消收藏
... ... @@ -76,10 +206,12 @@ const model = {
method = 'app.favorite.cancel';
}
return api.get('', Object.assign({
method: method
}, params));
},
return this.get({
data: Object.assign({
method: method
}, params)
});
}
/**
* 判断是否收藏
... ... @@ -89,40 +221,45 @@ const model = {
return singleAPI.get('/favorite', Object.assign({
method: 'app.favorite.isFavoriteNew'
}, params));
},
}
/**
* 获取购物车数量
*
* @param params
*/
getCartCount: (params) => {
return api.get('', Object.assign({
method: 'app.Shopping.count'
}, params));
},
getCartCount(params) {
return this.get({
data: Object.assign({
method: 'app.Shopping.count'
}, params)
});
}
/**
* 是否支持退换货
* @param params
*/
refundExchange(params) {
return api.get('', Object.assign({
method: 'app.product.refundExchange'
}, params), {
cache: true
return this.get({
data: Object.assign({
method: 'app.product.refundExchange'
}, params),
params: {
cache: true
}
});
},
}
/**
* 猜你喜欢
* @param params
*/
mightLike(params) {
return api.get('', Object.assign({
method: 'app.blk.shopRecommend'
}, params));
return this.get({
data: Object.assign({
method: 'app.blk.shopRecommend'
}, params)
});
}
};
module.exports = model;
}
\ No newline at end of file
... ...
... ... @@ -50,6 +50,9 @@ exports.createApp = async (app) => {
app.use(devtools());
}
// 添加请求上下文
app.use(global.yoho.httpCtx());
app.use(global.yoho.hbs({
extname: '.hbs',
defaultLayout: 'layout',
... ...
This diff could not be displayed because it is too large.