vip.js 2.12 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={};
        // enjoyPreferences=data.enjoy_preferential;

        if (data.enjoy_preferential) {
            data.enjoy_preferential = data.enjoy_preferential.map(function(item, inex) {
                return {
                    id: item.id,
                    favTxt: item.title,
                    imgType: helpers.https(item.pic),
                    description: item.description
                };
            });
        }

        let vip = {
            title: data.current_vip_title,
            level: data.current_vip_level,
            totalCost: (+data.current_total_cost).toFixed(2),
            nextTitle: data.next_vip_title,
            nextLevel: data.next_vip_level,
            nextCost: data.next_need_cost,
            enjoyPreferences: data.enjoy_preferential,
            yearCost: data.current_year_cost,
            upgradeCost: data.upgrade_need_cost,
            proportion: proportion,
            reach: moment(data.vip_reach_time * 1000).format('YYYY-MM-DD'),
            start: moment(data.vip_start_time * 1000).format('YYYY-MM-DD'),
            end: moment(data.vip_end_time * 1000).format('YYYY-MM-DD'),
            remainDays: remainDays,
            platinum: data.upgrade_need_cost > 0 ? false : true,
            isVip: data.current_vip_level > 0 ? true : false
        };
        res.render('vip', vip);

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

module.exports = {
    index
};