recommend-for-you.js 2.49 KB
'use strict';

const helpers = global.yoho.helpers;
const _ = require('lodash');

/**
 * 分享页面基础参数
 * @return {object}          [description]
 * @param data
 */
const getPreferenceData = (data) => {
    let dest = {
        goods: []
    };

    let list = data.data || {};

    _.forEach(list && list.product_list, value => {

        if (!value || !value.product_skn) {
            return;
        }

        let goods = {
            product_skn: value.product_skn,
            product_name: value.product_name,
            default_images: value.default_images,
            is_soon_sold_out: value.is_soon_sold_out === 'Y',
            url: helpers.urlFormat(`/product/${value.product_skn}.html`), // 商品url改版
            market_price: value.market_price === value.sales_price ? false : value.market_price,
            sales_price: value.sales_price
        };

        // if (_.get(value, 'tags[0]', null)) {
        //     goods.tags = [];
        //     if (goods.is_new === 'Y') {
        //         goods.tags.push({is_new: true});
        //     } else if (goods.is_advance === 'Y') {
        //         goods.tags.push({isAdvance: true});
        //     } else if (goods.is_discount === 'Y') {
        //         goods.tags.push({isDiscount: true});
        //     } else if (goods.is_yohoood === 'Y') {
        //         goods.tags.push({isYohoood: true});
        //     } else if (goods.is_limited === 'Y') {
        //         goods.tags.push({isLimited: true});
        //     }
        // }

        let tags = {};

        _.forEach(value.tags, tag => {
            tags[tag] = true;
        });

        // tags.is_solded = true;

        goods.tags = tags;
        goods.similar = true;

        if (tags.is_solded === true) {
            goods.is_solded = true;
        }

        dest.goods.push(goods);
    });



    dest.code = data.code;
    dest.rec_id = list.rec_id;
    dest.message = list.message;

    return dest;
};

module.exports = class extends global.yoho.BaseModel {
    constructor(ctx) {
        super(ctx);
    }

    /**
     * 获取为你优选数据
     */
    getPreference(data) {
        var defaultParam = {
                method: 'app.home.newPreference'
            },
            infoData = Object.assign(defaultParam, data); // 处理完成后,发给后端

        return this.get({
            data: infoData
        }).then(result => {
            return getPreferenceData(result);
        }); // 所有数据返回一个 Promise,方便 Promise.all 调用
    }
};