/**
 * 小程序端  管委会  用户基础功能
 * 主要包括有 孵化器账号的登录 
 * 预留好  重置密码  退出登录 接口  
 */

import { ERRORENUM } from "../../config/errorEnum";
import { findGuanWeiHuiUserInfoByLoginId } from "../../data/guanWeiHui/guanweihui";
import { BizError } from "../../util/bizError";
import { getPwdMd5, getToken } from "../../tools/system";

/**
 * 登录
 * 4.0版本更新：加入孵化器角色登录
 * @param loginId 信用代码
 * @param pwd 密码
 * @returns resultUserInfo:{uscc, name} 登录后的信息
 */
export async function login(loginId:string, pwd:string) {
    let userInfo = await findGuanWeiHuiUserInfoByLoginId(loginId);
    if (!userInfo || !userInfo.loginId) throw new BizError(ERRORENUM.账号不存在, loginId);

    let checkPwd = getPwdMd5(loginId, pwd);
    if (userInfo.pwd != checkPwd) throw new BizError(ERRORENUM.密码错误);

    let mobileToken = getToken(loginId);
    
    userInfo.mobileToken = mobileToken;
    userInfo.mobileTokenMs = new Date().valueOf();

    await userInfo.save();
    
    return {
        uscc: userInfo.loginId,
        name: userInfo.name,
        token: mobileToken,
    };
}
 


/**
 * 退出登录
 * 小程序端
 * @param uscc 信用代码
 * @returns {isSuccess:true/false}
 */
export async function logout(userId:string){
    if (typeof userId != "string") throw new BizError(ERRORENUM.参数错误, userId);
    let userInfo = await findGuanWeiHuiUserInfoByLoginId(userId);

    userInfo.mobileToken = "";
    userInfo.mobileTokenMs = 0;

    await userInfo.save();
    return {isSuccess:true};
}
