task.js 1.27 KB
const _ = require('lodash')

const spider = require('./libs/spider')
const report = require('./libs/report')
const sknsData = require('./data/skns.json')
const sizeRelation = require('./data/size.json')

const logger = global.logger

module.exports = async () => {
  spider(sknsData.map(p => p.productId))
    .forEach(promise => promise.then(result => {
      if (result.status !== 200 && !_.has(result, 'data.detail')) {
        logger.warn(`爬取失败记录:${JSON.stringify(result)}`)
        return
      }

      const {data: {detail, sizeList}} = result
      const yhProduct = sknsData.find(p => p.productId === detail.productId)

      sizeList.forEach(s => {
        const find = sizeRelation[s.size]

        if (!find) {
          return logger.error(`爬取尺码对应关系未找到: ${JSON.stringify(s)}`)
        }
        if (_.isPlainObject(s.item) && s.item.price > 0) {
          logger.info(JSON.stringify({
            productId: yhProduct.yhId,
            sizeId: find.sizeId,
            price: s.item.price / 100,
            time: Date.now()
          }))
          // report({
          //   productId: yhProduct.yhId,
          //   sizeId: find.sizeId,
          //   price: s.item.price / 100,
          //   time: Date.now()
          // })
        }
      })
    }))
}