students.js 2.95 KB
/**
 * 学生优惠controller
 * @author: ghw<hongwei.gao@yoho.cn>
 * @date: 2016/8/5
 */

'use strict';

// TODO: ctxk
const mRoot = '../models';
const helpers = global.yoho.helpers;

const studentsModel = require(`${mRoot}/students`); // students  model

/**
 * students 首页
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */

exports.index = (req, res, next) => {
    let channel = req.query.channel || req.cookies._Channel || 'boys';

    req.ctx(studentsModel).getStudentsData(channel, req).then(result => {

        if ('isStudent' in req.user && parseInt(req.user.isStudent, 10) === 1) {
            result.realData.identityObj.verifyRusult = {isStudent: true};
        }

        res.render('students/index', result);

    }).catch(next);
};

/**
 * 学校地区
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.schoolArea = (req, res, next) => {
    req.ctx(studentsModel).getSchoolArea().then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 学校列表
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.schoolList = (req, res, next) => {
    let areaCode = req.query.areaCode || 32;

    req.ctx(studentsModel).getSchoolList(areaCode).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 学历层次
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.eduLevel = (req, res, next) => {
    req.ctx(studentsModel).getEduLevel().then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 身份验证
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.verify = (req, res, next) => {
    if (!req.user.uid) {
        res.send({code: 200, data: helpers.urlFormat('/signin.html')});
    }

    req.ctx(studentsModel).verifyIdentity(req.user.uid, req.query).then(result => {
        res.json(result);
    }).catch(next);

};

/**
 * 获取优惠券领取状态
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.userAcquireStatus = (req, res, next) => {
    let uid;

    if (!req.user.uid) {
        uid = '';
    } else {
        uid = req.user.uid;
    }

    req.ctx(studentsModel).userAcquireStatus(uid, req.query.couponIds).then(result => {
        res.json(result);
    }).catch(next);

};


/**
 * 学生返币专享页面
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.list = (req, res, next) => {
    let resData = {};

    req.ctx(studentsModel).getStudentsList(req.query, req.yoho.channel).then(result => {
        Object.assign(resData, result);
        res.render('list/index', resData);
    }).catch(next);
};