import mongoose from 'mongoose'; import { Errcode } from '../Config/_error_'; import { MongoBaseService } from '../Database/Mongo/MongoBaseService'; import { EAccountFrom, EAccountState } from './ini'; import { IMongoUserModel, MongoUserService } from './MongoUserService'; import { IMongoBaseModel } from '../Database/Mongo/MongoManager'; export interface IMongoAccountModel extends IMongoBaseModel { phone: string; email: string; name: string; password: string; unionid: string; openid: string; create_time: Date; create_ip: string; login_time: Date; login_ip: string; from: EAccountFrom; state: EAccountState; } export declare class MongoAccountService extends MongoBaseService { get userService(): MongoUserService; constructor(extaccountdef: mongoose.SchemaDefinition); /** * 注册新账号 * @param unionid * @param openid * @param ip * @param from */ add(key: string, pass: string, ip: string, from: EAccountFrom): Promise; /** * 通过第三方信息获取账号 * @param unionid * @param openid */ getByThird(unionid: string, openid: string): Promise; /** * 通过第三方信息获取账号 * @param unionid */ getByUnionid(unionid: string): Promise; getByPhone(phone: string): Promise; /** * 登陆接口 * @param unionid 用户名、邮箱、手机号或者第三方的unionid * @param openid 密码或者第三方的openid * @param ip 登录ip * @param from 登录来源 * @param access_token qq、wechat使用 */ login(unionid: string, openid: string, ip: string, from: EAccountFrom, force_user?: boolean, access_token?: string): Promise<{ errcode: Errcode | null; account: T | null; is_new: boolean; }>; protected _login(key: string, pass: string, from: EAccountFrom): Promise<{ errcode: Errcode | null; account: T | null; }>; }