coupon.js 3.92 KB
/**
 * 分享页面基础参数
 * @param  {object} sizeInfo [接口原始数据]
 * @return {object}          [description]
 */
const getPageInfo = (pageInfo) => {
    var dest = {};

    if (pageInfo && pageInfo.data) {
        dest.shareTitle = pageInfo.data.shareTitle;
        dest.shareDesc = pageInfo.data.shareContent;
        dest.shareImg = pageInfo.data.shareImgUrl;
        dest.shareLink = pageInfo.data.shareUrl;
        dest.code = pageInfo.code;
        dest.activityID = pageInfo.data.id;
        dest.title = pageInfo.data.h5Title;
        dest.activityDesc = pageInfo.data.activityDesc;
        dest.formatActivityDesc = pageInfo.data.formatActivityDesc;
        dest.couponPic = pageInfo.data.couponPic;
        dest.oldUserCouponPic = pageInfo.data.oldUserCouponPic;
        dest.mobile = pageInfo.data.mobile;
        dest.wechatShare = true;
        dest.secondScreenPic = pageInfo.data.secondScreenPic;
        dest.activityEndPic = pageInfo.data.activityEndPic;
        dest.buttonLink = pageInfo.data.buttonLink;

        if (pageInfo.data.flag === 3 || pageInfo.data.flag === 4 || pageInfo.data.flag === 5) {
            // flag为3 表示活动结束 , 4 表示未开始
            dest.bgImg = pageInfo.data.activityEndPic;
            dest.ended = true;
        } else {
            dest.bgImg = pageInfo.data.activityNormalPic;
        }
        dest.message = pageInfo.data.returnMsg;
    }

    return dest;
};

const getUserStatus = (param) => {
    var dest = {};

    dest.code = param.code;
    dest.coupon = param && param.data && param.data.coupon;
    dest.returnCode = param && param.data && param.data.returnCode;
    dest.mobile = param && param.data && param.data.mobile;
    if (param && param.data) {
        if (param.data.returnCode === 0) {
            dest.geted = true;
        } else if (param.data.returnCode === 1) {
            dest.wrongNumb = true;
        } else if (param.data.returnCode === 2) {
            dest.newUser = true;
        } else if (param.data.returnCode === 8) {
            dest.oldUserAskCouponOnceMore = true;
        } else if (param.data.returnCode === 5) {
            dest.vertifyWrong = true;
        } else {
            dest.ended = true;
        }

        if (param.data.newUser === 1) {
            dest.newUser = true;
        }
        dest.message = param.data.returnMsg;
    }

    // 清空变量,释放内存
    param = {};
    return dest;
};

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

    /**
     * 获取分享页面数据
     */
    getPageInfo(data) {
        let defaultParam = {
            method: 'app.activity.getInfoOfOrderShare'
        };
        let infoData = Object.assign(defaultParam, data); // 处理完成后,发给后端

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

    /**
     * 输入手机号领券,新用户返回验证码
     */
    getCoupon(data) {
        let defaultParam = {
            method: 'wap.order.drawOrderShareCoupon'
        };

        // 处理完成后,发给后端
        let phoneData = Object.assign(defaultParam, data);

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


    /**
     * 验证注册码进行注册并发券
     */
    registerAndSendCoupon(data) {
        let defaultParam = {
            method: 'wap.order.registerAndSendCoupon'
        };

        // 处理完成后,发给后端
        let verifyData = Object.assign(defaultParam, data);

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