vip.js 2.2 KB
'use strict';

const Promise = require('bluebird');
const co = Promise.coroutine;
const userData = require('../models/user-data');
const moment = require('moment');
const helpers = global.yoho.helpers;

const index = (req, res, next)=>{
    let uid = '8041246';// req.user.uid;

    co(function*() {
        let vipInfo = yield userData.getVIPInfoByUid(uid);

        let data = vipInfo.data, proportion = '0%';

        if (+data.next_need_cost !== 0) {
            proportion = data.current_year_cost * 100 / data.next_need_cost;
            proportion = proportion > 100 ? 100 : proportion;
            proportion = proportion + '%';
        }

        let remainDays = Math.floor((Date.now() - (+data.vip_end_time) * 1000) / 86400);

        let preferences = [];

        if (data.enjoy_preferential) {
            preferences = data.enjoy_preferential.map(function(item) {
                return {
                    id: item.id,
                    favTxt: item.title,
                    imgType: helpers.https(item.pic),
                    description: item.description
                };
            });
        }
        let isVip = data.current_vip_level > 0 ? true : false;

        let vip = {
            title: data.current_vip_title,
            nextTitle: data.next_vip_title,
            nextLevel: data.next_vip_level,
            yearCost: data.current_year_cost,
            totalCost: (+data.current_total_cost).toFixed(2),
            list: preferences,
            level: data.current_vip_level,
            platinum: data.upgrade_need_cost > 0 ? false : true,
            nextCost: data.next_need_cost,
            balan: data.upgrade_need_cost,
            proportion: proportion,
            vipLevel: data.next_vip_title,
            reach: moment(data.vip_reach_time * 1000).format('YYYY-MM-DD'),
            valid: moment(data.vip_start_time * 1000).format('YYYY-MM-DD'),
            end: moment(data.vip_end_time * 1000).format('YYYY-MM-DD'),
            remainDays: remainDays,
            doubtLevel: isVip,
            commonVip: !isVip,
            morePreferences: helpers.urlFormat('/help', {category_id: 91})
        };

        res.render('vip', vip);

    })().catch(next);
};

module.exports = {
    index
};