...
|
...
|
@@ -5,31 +5,190 @@ |
|
|
*/
|
|
|
'use strict';
|
|
|
|
|
|
// const _ = require('lodash');
|
|
|
const _ = require('lodash');
|
|
|
|
|
|
const ServiceAPI = require(`${global.library}/api`).ServiceAPI;
|
|
|
const sign = require(`${global.library}/sign`);
|
|
|
|
|
|
const serviceApi = new ServiceAPI();
|
|
|
|
|
|
/**
|
|
|
* 获取公共配置
|
|
|
* @param undefined
|
|
|
* @return {Object} 配置对象
|
|
|
*/
|
|
|
// const commonConfig = () => ({
|
|
|
// title: 'girls'
|
|
|
// });
|
|
|
const headerModel = require('../../../doraemon/models/header');
|
|
|
|
|
|
exports.getContent = () => {
|
|
|
let data = sign.apiSign({
|
|
|
// 创意生活
|
|
|
// const CODE_LIFESTYLE_CHANNEL_1 = '380c38155fd8beee10913a3f5b462da6';
|
|
|
|
|
|
// const CODE_LIFESTYLE_CHANNEL_2 = '665f7c2fb9d037ee820766953ee34bf7';
|
|
|
|
|
|
const channelMap = {
|
|
|
boys: {
|
|
|
code: '79372627eee75d73afe7f9bac91e5ce6',
|
|
|
gender: '1,3'
|
|
|
},
|
|
|
girls: {
|
|
|
code: '75215008957605c05e8cd375eac4f817',
|
|
|
gender: '2,3'
|
|
|
},
|
|
|
kids: {
|
|
|
code: 'd71f4b27f2a7229fbb31a4bc490a6f36',
|
|
|
gender: 'kids'
|
|
|
},
|
|
|
lifestyle: {
|
|
|
code: '8a341ca7eacc069ba80f02dec80eaf34',
|
|
|
gender: 'lifestyle'
|
|
|
}
|
|
|
};
|
|
|
|
|
|
const getBannerList = data => {
|
|
|
let list = [];
|
|
|
|
|
|
_.forEach(data, (bannerData) => {
|
|
|
|
|
|
let obj = {};
|
|
|
|
|
|
obj.href = bannerData.url;
|
|
|
obj.img = bannerData.src;
|
|
|
obj.name = bannerData.title;
|
|
|
|
|
|
list.push(obj);
|
|
|
});
|
|
|
|
|
|
return list;
|
|
|
};
|
|
|
|
|
|
const getNewReportFloorData = data => {
|
|
|
let list = [];
|
|
|
|
|
|
_.forEach(data, (item, index) => {
|
|
|
if (item.data.text === '最新速报') {
|
|
|
let obj = {};
|
|
|
|
|
|
obj.href = data[index + 1].data[0].url;
|
|
|
obj.img = data[index + 1].data[0].src;
|
|
|
|
|
|
list.push(obj);
|
|
|
|
|
|
_.forEach(data[index + 2].data, (floorData) => {
|
|
|
let o = {};
|
|
|
|
|
|
o.href = floorData.url;
|
|
|
o.img = floorData.src;
|
|
|
|
|
|
list.push(o);
|
|
|
});
|
|
|
|
|
|
obj.href = data[index + 3].data[0].url;
|
|
|
obj.img = data[index + 3].data[0].src;
|
|
|
|
|
|
list.push(obj);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return list;
|
|
|
};
|
|
|
|
|
|
// 热门品类
|
|
|
const getHotGoodsFloorData = data => {
|
|
|
let list = [];
|
|
|
|
|
|
_.forEach(data, (item) => {
|
|
|
if (item.template_intro === '热门品类') {
|
|
|
let object = {},
|
|
|
keyword = [],
|
|
|
category = [],
|
|
|
brands = [],
|
|
|
types = [];
|
|
|
|
|
|
// product = [];
|
|
|
// console.log(item.data);
|
|
|
// console.log(item.data.menuNav);
|
|
|
// console.log(item.data.navs);
|
|
|
// return false;
|
|
|
|
|
|
_.forEach(item.data.menuNav.list, (it) => {
|
|
|
let obj = {};
|
|
|
|
|
|
obj.name = it.name;
|
|
|
obj.href = it.url;
|
|
|
category.push(obj);
|
|
|
});
|
|
|
|
|
|
_.forEach(item.data.menuNav.blocks, (it) => {
|
|
|
let obj = {};
|
|
|
|
|
|
/* eslint-disable */
|
|
|
client_type: 'web'
|
|
|
/* eslint-enable */
|
|
|
obj.name = it.title;
|
|
|
obj.href = it.url;
|
|
|
obj.img = it.img;
|
|
|
keyword.push(obj);
|
|
|
});
|
|
|
|
|
|
_.forEach(item.data.imgs, (it, index) => {
|
|
|
let obj = {};
|
|
|
|
|
|
obj.name = it.title;
|
|
|
obj.href = it.url;
|
|
|
obj.img = it.img;
|
|
|
|
|
|
if (index < 2) {
|
|
|
brands.push(obj);
|
|
|
} else {
|
|
|
types.push(obj);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
object.keyword = keyword;
|
|
|
object.category = category;
|
|
|
object.brands = brands;
|
|
|
object.types = types;
|
|
|
list.push(object);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
serviceApi.get('/operations/api/v5/resource/home', data).then(response => {
|
|
|
console.log(response);
|
|
|
return list;
|
|
|
};
|
|
|
|
|
|
const requestContent = (type) => {
|
|
|
let data = sign.apiSign({
|
|
|
/* eslint-disable */
|
|
|
client_type: 'web',
|
|
|
/* eslint-enable */
|
|
|
content_code: channelMap[type || 'boys'].code,
|
|
|
gender: channelMap[type || 'boys'].gender,
|
|
|
page: 1,
|
|
|
limit: 1000
|
|
|
});
|
|
|
|
|
|
return serviceApi.get('/operations/api/v5/resource/home', data);
|
|
|
};
|
|
|
|
|
|
|
|
|
exports.getContent = (type) => {
|
|
|
return Promise.all([headerModel.requestHeaderData(), requestContent(type)]).then(res => {
|
|
|
let headerData = res[0].data,
|
|
|
contentData = res[1].data;
|
|
|
|
|
|
let data = {};
|
|
|
|
|
|
|
|
|
data = headerModel.setHeaderData(headerData, 'boys');
|
|
|
data.module = 'channel';
|
|
|
data.page = 'boys';
|
|
|
data.footerTop = true;
|
|
|
data.channel = true;
|
|
|
|
|
|
data.slide = {
|
|
|
list: getBannerList(contentData.list[0].data.big_image),
|
|
|
pagination: getBannerList(contentData.list[0].data.list)
|
|
|
};
|
|
|
|
|
|
data.newReport = {
|
|
|
name: '最新速报',
|
|
|
list: getNewReportFloorData(contentData.list)
|
|
|
};
|
|
|
|
|
|
data.recommend = {
|
|
|
tplrecommend: getHotGoodsFloorData(contentData.list)
|
|
|
};
|
|
|
console.log(data.newReport);
|
|
|
return data;
|
|
|
});
|
|
|
}; |
...
|
...
|
|