/** * 分类页面 model * @author: Bi Kai<kai.bi@yoho.cn> * @date: 2016/07/06 */ 'use strict'; const _ = require('lodash'); // const helpers = global.yoho.helpers; // const utils = require('../../../utils'); const genderMap = { boys: '1,3', girls: '2,3', kids: '1,2,3', lifestyle: '1,2,3' }; module.exports = class extends global.yoho.BaseModel { constructor(ctx) { super(ctx); } _processCateData(list, channel) { let nav = ['boys', 'girls', 'kids', 'lifestyle']; nav = _.map(nav, function(item) { return { name: _.capitalize(item), channel: item, focus: item === channel }; }); _.map(list, function(item, key) { _.set(item, 'focus', key === channel); _.map(item, function(firstItem) { // 如果有二级菜单,二级菜单跳转,否则一级菜单跳转 if (firstItem.sub && firstItem.sub.length) { _.map(firstItem.sub, function(secondItem) { // secondItem.url = helpers.urlFormat('/', utils.mapSort({ // sort: _.get(secondItem, 'relation_parameter.sort'), // sort_name: secondItem.category_name, // gender: genderMap[key] || '' // }), 'list'); secondItem.url = `//m.yohobuy.com/list/gd${genderMap[key] || ''}-ci${_.get(secondItem, 'category_id')}`; }); firstItem.sub.unshift({ category_name: `全部${firstItem.category_name}`, // url: helpers.urlFormat('/', utils.mapSort({ // sort: _.get(firstItem, 'relation_parameter.sort'), // sort_name: firstItem.category_name, // gender: genderMap[key] || '' // }), 'list'), url: `//m.yohobuy.com/list/gd${genderMap[key] || ''}-ci${_.get(firstItem, 'category_id')}?title=${firstItem.category_name}` // eslint-disable-line }); } else { // firstItem.url = helpers.urlFormat('/', utils.mapSort({ // sort: _.get(firstItem, 'relation_parameter.sort'), // sort_name: firstItem.category_name, // gender: genderMap[key] || '' // }), 'list'); firstItem.url = `//m.yohobuy.com/list/gd${genderMap[key] || ''}-ci${_.get(firstItem, 'category_id')}`; } }); }); return { nav, list }; } getCateData(channel) { return this.get({ data: {method: 'app.sort.get'}, param: {cache: true} }).then((result) => { if (!result || !result.code || result.code !== 200 || !result.data) { return []; } // 统一频道名称 result.data.boys = result.data.boy; result.data.girls = result.data.girl; _.unset(result.data, 'boy'); _.unset(result.data, 'girl'); return result.data; }).then((list) => { return this._processCateData(list, channel); }); } };