...
|
...
|
@@ -8,13 +8,10 @@ |
|
|
|
|
|
const library = '../../../library';
|
|
|
const API = require(`${library}/api`).API;
|
|
|
const sign = require(`${library}/sign`);
|
|
|
const _ = require('lodash');
|
|
|
const helpers = require(`${library}/helpers`);
|
|
|
|
|
|
// const log = require(`${library}/logger`);
|
|
|
|
|
|
var api = new API();
|
|
|
const api = new API();
|
|
|
|
|
|
/**
|
|
|
* 处理品牌关联店铺信息
|
...
|
...
|
@@ -22,12 +19,13 @@ var api = new API(); |
|
|
* @return {array}
|
|
|
*/
|
|
|
const getShopsInfo = (data) => {
|
|
|
var enterStore = {};
|
|
|
let enterStore = {};
|
|
|
|
|
|
_.forEach(data, function(value, key) {
|
|
|
enterStore[key] = {};
|
|
|
enterStore[key].img = value.brand_ico;
|
|
|
enterStore[key].storeName = value.brand_name;
|
|
|
enterStore[key] = {
|
|
|
img: value.brand_ico,
|
|
|
storeName: value.brand_name
|
|
|
};
|
|
|
|
|
|
if (value.shop_id !== null && typeof value.shop_id !== 'undefined') {
|
|
|
let params = {};
|
...
|
...
|
@@ -100,7 +98,7 @@ const procShowStatus = (data, showStatus, isBeginSale) => { |
|
|
* @return {string} 限购商品跳转url
|
|
|
*/
|
|
|
const getLimitCodeUrl = (productCode, skn, ua) => {
|
|
|
var url = 'yohoapp://yoho.app/openwith?limit_product_code=' + productCode +
|
|
|
let url = 'yohoapp://yoho.app/openwith?limit_product_code=' + productCode +
|
|
|
'&product_skn=' + skn;
|
|
|
|
|
|
let isIphone = String(ua).indexOf('iPhone') >= 0;
|
...
|
...
|
@@ -121,7 +119,7 @@ const getLimitCodeUrl = (productCode, skn, ua) => { |
|
|
* @return dest Object 格式化数据
|
|
|
*/
|
|
|
const detailDataPkg = (origin, uid, vipLevel, ua) => {
|
|
|
var dest = {}, // 结果输出
|
|
|
let dest = {}, // 结果输出
|
|
|
colorGroup = {},
|
|
|
thumbImageList = {},
|
|
|
sizeGroup = {},
|
...
|
...
|
@@ -192,14 +190,15 @@ const detailDataPkg = (origin, uid, vipLevel, ua) => { |
|
|
|
|
|
// VIP 商品价格
|
|
|
dest.vipLevel = {};
|
|
|
dest.vipLevel.list = {};
|
|
|
dest.vipLevel.list = [];
|
|
|
|
|
|
if (origin.productPriceBo.vipPrices !== null && typeof origin.productPriceBo.vipPrices !== 'undefined') {
|
|
|
_.forEach(origin.productPriceBo.vipPrices, function(value, key) {
|
|
|
dest.vipLevel.list[key] = {};
|
|
|
dest.vipLevel.list[key].level = value.vipLevel;
|
|
|
dest.vipLevel.list[key].text = value.vipPrice;
|
|
|
dest.vipLevel.list[key].currentLevel = (value.vipLevel === vipLevel) ? true : false;
|
|
|
_.forEach(origin.productPriceBo.vipPrices, function(value) {
|
|
|
dest.vipLevel.list.push({
|
|
|
level: value.vipLevel,
|
|
|
text: value.vipPrice,
|
|
|
currentLevel: (value.vipLevel === vipLevel)
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
...
|
...
|
@@ -224,16 +223,17 @@ const detailDataPkg = (origin, uid, vipLevel, ua) => { |
|
|
|
|
|
// 商品咨询
|
|
|
dest.feedbacks = {};
|
|
|
dest.feedbacks.consults = {};
|
|
|
dest.feedbacks.consults = [];
|
|
|
dest.feedbacks.consultsNum = 0;
|
|
|
|
|
|
if (origin.consultBoWrapper !== null && typeof origin.consultBoWrapper !== 'undefined') {
|
|
|
dest.feedbacks.consultsNum = origin.consultBoWrapper.consultTotal;
|
|
|
_.forEach(origin.consultBoWrapper.consultBoList, function(value, key) {
|
|
|
dest.feedbacks.consults[key] = {};
|
|
|
dest.feedbacks.consults[key].question = value.ask;
|
|
|
dest.feedbacks.consults[key].time = value.askTime;
|
|
|
dest.feedbacks.consults[key].answer = value.answer;
|
|
|
_.forEach(origin.consultBoWrapper.consultBoList, function(value) {
|
|
|
dest.feedbacks.consults.push({
|
|
|
question: value.ask,
|
|
|
time: value.askTime,
|
|
|
answer: value.answer
|
|
|
});
|
|
|
});
|
|
|
|
|
|
let params = {};
|
...
|
...
|
@@ -256,16 +256,15 @@ const detailDataPkg = (origin, uid, vipLevel, ua) => { |
|
|
dest.feedbacks.commentsNum = 0;
|
|
|
if (origin.commentBoWrapper !== null && typeof origin.commentBoWrapper !== 'undefined') {
|
|
|
dest.feedbacks.commentsNum = origin.commentBoWrapper.commentTotal;
|
|
|
dest.feedbacks.comments = {};
|
|
|
|
|
|
_.forEach(origin.commentBoWrapper.commentBoList, function(value, key) {
|
|
|
dest.feedbacks.comments[key] = {};
|
|
|
dest.feedbacks.comments[key].userName = value.nickName;
|
|
|
dest.feedbacks.comments[key].desc = value.colorName +
|
|
|
'/' + value.sizeName;
|
|
|
dest.feedbacks.comments[key].content = (value.content !== null &&
|
|
|
typeof value.content !== 'undefined') ? value.content : '';
|
|
|
dest.feedbacks.comments[key].time = value.createTime;
|
|
|
dest.feedbacks.comments = [];
|
|
|
|
|
|
_.forEach(origin.commentBoWrapper.commentBoList, function(value) {
|
|
|
dest.feedbacks.comments.push({
|
|
|
userName: value.nickName,
|
|
|
desc: value.colorName + '/' + value.sizeName,
|
|
|
content: value.content ? value.content : '',
|
|
|
time: value.createTime
|
|
|
});
|
|
|
});
|
|
|
|
|
|
let params = {};
|
...
|
...
|
@@ -500,23 +499,23 @@ const detailDataPkg = (origin, uid, vipLevel, ua) => { |
|
|
};
|
|
|
|
|
|
module.exports = (data) => {
|
|
|
var finalResult;
|
|
|
var params = {};
|
|
|
|
|
|
params.productId = _.toString(data.id);
|
|
|
params.method = 'h5.product.data';
|
|
|
let finalResult;
|
|
|
let params = {
|
|
|
productId: _.toString(data.id),
|
|
|
method: 'h5.product.data'
|
|
|
};
|
|
|
|
|
|
if (!_.isEmpty(data.uid)) {
|
|
|
params.uid = data.uid;
|
|
|
}
|
|
|
|
|
|
return api.get('', sign.apiSign(params)).then(result => {
|
|
|
return api.get('', params).then(result => {
|
|
|
finalResult = detailDataPkg(result, data.uid, data.vipLevel, data.ua);
|
|
|
|
|
|
return api.get('', sign.apiSign({
|
|
|
return api.get('', {
|
|
|
method: 'app.shop.queryShopsByBrandId',
|
|
|
brand_id: _.toString(result.brandId)
|
|
|
})).then(shops => {
|
|
|
}).then(shops => {
|
|
|
if (shops.code === 200) {
|
|
|
finalResult.enterStore = getShopsInfo(shops.data);
|
|
|
}
|
...
|
...
|
|