bind-service.js 4.35 KB
/**
 * 注册数据接口
 *
 * @author JiangFeng<jeff.jiang@yoho.cn>
 * @date 2016/06/21
 */

'use strict';

const FROM = require('../../../config/from');
const PAGE = 'H5';
const aes = require('./aes-pwd');

class BindServiceModel extends global.yoho.BaseModel {
    constructor(ctx) {
        super(ctx);
    }

    bindCheck(mobile, openId, sourceType, area) {
        return this.get({
            data: {
                method: 'app.passport.signCheck',
                area: area,
                mobile: mobile,
                open_id: openId,
                source_type: sourceType
            }
        });
    }

    sendBindMsg(params) {
        return this.get({
            data: {
                method: 'app.passport.smsbind',
                mobile: params.mobile,
                area: params.area,
                udid: params.udid,
                degrees: params.captcha,
                fromPage: PAGE,
                superCapture: params.superCapture
            }
        });
    }

    checkBindCode(area, mobile, code) {
        return this.get({data: {
            method: 'app.register.validRegCode',
            mobile: mobile,
            area: area,
            code: code
        }});
    }

    bindMobile(params) {
        let finalParams = {
            method: 'app.passport.bind',
            mobile: params.phoneNum,
            code: params.code,
            open_id: params.openId,
            source_type: params.sourceType,
            area: params.areaCode,
            business_line: FROM[params.from].business_line
        };

        if (params.password) {
            finalParams.password = params.password;
        }

        if (params.nickname) {
            finalParams.nickname = params.nickname;
        }

        return this.get({ data: finalParams });
    }

    relateMobile(openId, sourceType, mobile, area) {
        return this.get({data: {
            method: 'app.passport.relatedMobile',
            mobile: mobile,
            openId: openId,
            source_type: sourceType,
            area: area
        }});
    }

    changeCheck(mobile, area) {
        return this.get({data: {
            method: 'app.passport.changeCheck',
            mobile: mobile,
            area: area
        }});
    }

    changeMobile(uid, mobile, area, code) {
        return this.get({data: {
            method: 'app.passport.changeMobile',
            mobile: mobile,
            uid: uid,
            code: code,
            area: area
        }});
    }

    // 强制绑定手机↓↓↓↓  -> 邮件登录绑定手机号发送短信
    sendChangeBindMobileCodeOnly(params) {
        return this.get({data: {
            method: 'app.bind.sendChangeBindMobileCodeOnlyImg',
            mobile: params.mobile || '',
            area: params.area || '86',
            degrees: params.captcha || '',
            superCapture: params.superCapture || '',
            fromPage: PAGE
        }});
    }

    // 校验手机号,判断这个手机号是否已经注册,是否下面有第三方
    changeMobileCheck(params) {
        return this.get({
            data: Object.assign({
                method: 'app.bind.changeMobileCheck',
            }, params)
        });
    }

    // 邮箱强制绑定手机号(邮箱强制绑定手机号场景使用)
    bindEmailLoginMobile(params) {
        return this.get({data: {
            method: 'app.bind.bindEmailLoginMobile',
            mobile: params.mobile || '',
            area: params.area || '86',
            code: params.code,
            email: params.email,
            password: aes.aesPwd(params.password || '')
        }});
    }

    // 第三方绑定手机号发送短信
    sendThirdBindMobileCodeOnly(params) {
        return this.get({data: {
            method: 'app.bind.sendThirdBindMobileCodeOnlyImg',
            mobile: params.mobile || '',
            area: params.area || '86',
            superCapture: params.superCapture || '',
            degrees: params.captcha || '',
            fromPage: PAGE
        }});
    }

    // 第三方绑定手机号
    thirdBindMobile(params) {
        return this.get({data: {
            method: 'app.bind.bindMobile',
            mobile: params.mobile || '',
            area: params.area || '86',
            code: params.code,
            open_id: params.open_id,
            source_type: params.source_type
        }});
    }
}

module.exports = BindServiceModel;