Authored by yyq

site map

@@ -5,13 +5,10 @@ const Promise = require('bluebird'); @@ -5,13 +5,10 @@ const Promise = require('bluebird');
5 const _ = require('lodash'); 5 const _ = require('lodash');
6 const sm = require('sitemap'); 6 const sm = require('sitemap');
7 const staticUrls = require('../../../config/staticUrls'); 7 const staticUrls = require('../../../config/staticUrls');
8 -const api = global.yoho.API;  
9 -const Service = global.yoho.ServiceAPI;  
10 const headerModel = require('../../../doraemon/models/header'); 8 const headerModel = require('../../../doraemon/models/header');
11 const siteMapService = require('../models/site-map-service'); 9 const siteMapService = require('../models/site-map-service');
12 const redis = global.yoho.redis; 10 const redis = global.yoho.redis;
13 11
14 -  
15 const getStaticUrls = (currentStatics) => { 12 const getStaticUrls = (currentStatics) => {
16 let urls = []; 13 let urls = [];
17 14
@@ -57,10 +54,10 @@ const keywordsPage = (page) => { @@ -57,10 +54,10 @@ const keywordsPage = (page) => {
57 }; 54 };
58 55
59 // 逛详情 56 // 逛详情
60 -const getArticleUrls = () => { 57 +const getArticleUrls = (req) => {
61 let urls = []; 58 let urls = [];
62 59
63 - return Service.get('/guang/api/v2/article/getLastArticleList', {limit: 1000}, {cache: 86400}).then(res => { 60 + return req.ctx(siteMapService).guangArticles().then(res => {
64 61
65 _.forEach(_.get(res, 'data.artList', ''), val => { 62 _.forEach(_.get(res, 'data.artList', ''), val => {
66 urls.push({ 63 urls.push({
@@ -75,13 +72,13 @@ const getArticleUrls = () => { @@ -75,13 +72,13 @@ const getArticleUrls = () => {
75 }; 72 };
76 73
77 // www 地图数据 74 // www 地图数据
78 -const wwwXmlData = (page) => {// eslint-disable-line 75 +const wwwXmlData = (req, page) => {// eslint-disable-line
79 if (page > 1) { 76 if (page > 1) {
80 return keywordsPage(page); 77 return keywordsPage(page);
81 } else { 78 } else {
82 return Promise.all([keywordsPage(page), 79 return Promise.all([keywordsPage(page),
83 getStaticUrls(_.get(staticUrls, 'www')), 80 getStaticUrls(_.get(staticUrls, 'www')),
84 - getArticleUrls()]).then(result => { 81 + getArticleUrls(req)]).then(result => {
85 return _.concat(result[1], result[0], result[2]); 82 return _.concat(result[1], result[0], result[2]);
86 }); 83 });
87 } 84 }
@@ -113,10 +110,10 @@ const listXmlData = () => {// eslint-disable-line @@ -113,10 +110,10 @@ const listXmlData = () => {// eslint-disable-line
113 }; 110 };
114 111
115 // item 地图数据 112 // item 地图数据
116 -const itemXmlData = () => {// eslint-disable-line 113 +const itemXmlData = (req) => {// eslint-disable-line
117 let urls = []; 114 let urls = [];
118 115
119 - return api.get('', {method: 'web.product.bdPromotion'}, {cache: 86400}).then(res => { 116 + return req.ctx(siteMapService).itemList().then(res => {
120 _.forEach(_.get(res, 'data', ''), val => { 117 _.forEach(_.get(res, 'data', ''), val => {
121 urls.push({ 118 urls.push({
122 url: `https:${helpers.getUrlBySkc(val.erpProductId)}`, 119 url: `https:${helpers.getUrlBySkc(val.erpProductId)}`,
@@ -142,7 +139,7 @@ const siteMap = (req, res, next) => { @@ -142,7 +139,7 @@ const siteMap = (req, res, next) => {
142 139
143 let page = req.params[0] || 1; 140 let page = req.params[0] || 1;
144 141
145 - eval(subdomain + 'XmlData')(page).then(urls => {// eslint-disable-line 142 + eval(subdomain + 'XmlData')(req, page).then(urls => {// eslint-disable-line
146 sm.createSitemap({ 143 sm.createSitemap({
147 hostname: `https://${subdomain}.yohobuy.com`, 144 hostname: `https://${subdomain}.yohobuy.com`,
148 xmlNs: ' ', 145 xmlNs: ' ',
@@ -57,6 +57,30 @@ module.exports = class extends global.yoho.BaseModel { @@ -57,6 +57,30 @@ module.exports = class extends global.yoho.BaseModel {
57 }); 57 });
58 } 58 }
59 59
  60 + guangArticles() {
  61 + return this.get({
  62 + url: '/guang/api/v2/article/getLastArticleList',
  63 + data: {
  64 + limit: 1000
  65 + },
  66 + param: {
  67 + cache: 86400
  68 + },
  69 + api: global.yoho.ServiceAPI
  70 + });
  71 + }
  72 +
  73 + itemList() {
  74 + return this.get({
  75 + data: {
  76 + method: 'web.product.bdPromotion'
  77 + },
  78 + param: {
  79 + cache: 86400
  80 + }
  81 + });
  82 + }
  83 +
60 }; 84 };
61 85
62 86