LoginModel.ets 9.89 KB
import HashMap from '@ohos.util.HashMap';
import { HttpBizUtil, HttpUrlUtils, HttpUtils, ResponseDTO } from 'wdNetwork';
import { Logger } from 'wdKit';
import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest';
import { LoginBean } from './LoginBean';
import { CheckVerifyBean } from './CheckVerifyBean';
import { UserDetail } from 'wdBean/Index';

const TAG = 'LoginModel'

export class LoginModel {
  //获取验证码
  sendVerifyCode(number: string) {
    let bean: Record<string, string> = {};
    bean['phoneNum'] = number
    return new Promise<object>((success, fail) => {
      HttpRequest.post<ResponseDTO<object>>(HttpUrlUtils.getVerifyCodeUrl(), bean).then((data: ResponseDTO<object>) => {
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error ", error.toString())
      })
    })

  }

  sendVerifyCodeByToken() {
    let bean: Record<string, string> = {};
    // bean['phoneNum'] = number
    return new Promise<object>((success, fail) => {
      HttpBizUtil.post<ResponseDTO<object>>(HttpUrlUtils.getVerifyCodeByTokenUrl(),bean).then((data: ResponseDTO<object>) => {
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error ", error.toString())
      })
    })

  }


  //{"phone":"13625644528","loginType":2,"deviceId":"60da5af6-9c59-3566-8622-8c6c00710994","verificationCode":"644528"}
  appLogin(phone: string, loginType: number, verificationCode: string) {
    let bean: Record<string, Object> = {};
    bean['phone'] = phone
    bean['loginType'] = loginType
    bean['deviceId'] = '60da5af6-9c59-3566-8622-8c6c00710994'
    bean['verificationCode'] = verificationCode
    return new Promise<LoginBean>((success, fail) => {
      HttpRequest.post<ResponseDTO<LoginBean>>(HttpUrlUtils.getAppLoginUrl(), bean).then((data: ResponseDTO<LoginBean>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data) {
          fail("数据为空")
          return
        }
        if (!data.data||data.code != 0) {
          fail(data.message)
          return
        }
        success(data.data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error2 ", error.toString())
      })
    })
  }

  // {"password":"523acd319228efde34e8a30268ee8ca5e4fc421d72affa531676e1765940d22c","phone":"13625644528","loginType":0,"oldPassword":"BA5FD74F827AF9B271FE17CADC489C36","deviceId":"60da5af6-9c59-3566-8622-8c6c00710994"}
  appLoginByPassword(phone: string, loginType: number, password: string, oldPassword: string) {
    let bean: Record<string, string | number> = {};
    if (loginType == 0) {
      bean['phone'] = phone
    } else {
      bean['userName'] = phone
    }
    bean['loginType'] = loginType
    bean['deviceId'] = '60da5af6-9c59-3566-8622-8c6c00710994'
    bean['password'] = password
    bean['oldPassword'] = oldPassword
    return new Promise<LoginBean>((success, fail) => {
      HttpRequest.post<ResponseDTO<LoginBean>>(HttpUrlUtils.getAppLoginUrl(), bean).then((data: ResponseDTO<LoginBean>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data) {
          fail("数据为空")
          return
        }
        if (!data.data||data.code != 0) {
          fail(data.message)
          return
        }
        success(data.data)
      }, (error: Error) => {
        Logger.debug("LoginViewModel:error2 ", error.toString())
        fail(error.message)
      })
    })
  }

  //忘记密码 校验验证码 {"verifyCode":"644528","phone":"13625644528"}  去除头部cookie 可以正常访问
  checkVerifyCode(phone: string, verifyCode: string) {
    let bean: Record<string, Object> = {};
    bean['verifyCode'] = verifyCode
    bean['phone'] = phone
    let headers: HashMap<string, string> = new HashMap<string, string>();
    headers.set('cookie', '');
    return new Promise<CheckVerifyBean>((success, fail) => {
      HttpRequest.post<ResponseDTO<CheckVerifyBean>>(HttpUrlUtils.getCheckVerifyCodeUrl(), bean).then((data: ResponseDTO<CheckVerifyBean>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data || !data.data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data.data)
      }, (error: Error) => {
        Logger.debug("LoginViewModel:error2 ", error.toString())
        fail(error.message)
      })
    })
  }

  checkVerifyCodeByToken(verifyCode: string) {
    let bean: Record<string, Object> = {};
    bean['verifyCode'] = verifyCode
    // bean['phone'] = phone
    return new Promise<CheckVerifyBean>((success, fail) => {
      HttpRequest.post<ResponseDTO<CheckVerifyBean>>(HttpUrlUtils.getCheckVerifyCodeByToken(), bean).then((data: ResponseDTO<CheckVerifyBean>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        if(data.data){
          success(data.data)
        }
      }, (error: Error) => {
        Logger.debug("LoginViewModel:error2 ", error.toString())
        fail(error.message)
      })
    })
  }

  //修改密码  //需要老密码
  resetPassword(password: string, tempToken: string) {
    let bean: Record<string, string> = {};
    // bean['password'] = password;
    // bean['tempToken'] = tempToken;

    return new Promise<string>((success, fail) => {
      HttpRequest.post<ResponseDTO<string>>(HttpUrlUtils.getForgetPasswordUrl(), bean).then((data: ResponseDTO<string>) => {
        if (!data || !data.data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data.data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error ", error.toString())
      })
    })
  }



  //忘记密码 //不需要老密码
  forgotPassword(password: string, tempToken: string) {
    let bean: Record<string, string> = {};
    bean['password'] = password;
    bean['tempToken'] = tempToken;

    return new Promise<object>((success, fail) => {
      HttpRequest.post<ResponseDTO<object>>(HttpUrlUtils.getForgetPasswordUrl(), bean).then((data: ResponseDTO<object>) => {

        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error ", error.toString())
      })
    })
  }

  //退出登录
  logOut() {
    let bean: Record<string, string> = {};
    bean['refreshToken'] = HttpUtils.getRefreshToken();

    return new Promise<string>((success, fail) => {
      HttpBizUtil.post<ResponseDTO<string>>(HttpUrlUtils.getLogoutUrl(), bean).then((data: ResponseDTO<string>)=>{
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success('')
      }).catch((error:Error)=>{
        fail(error.message)
          Logger.debug("LoginViewModel:error ", error.toString())
      })
      // HttpRequest.post<ResponseDTO<string>>(HttpUrlUtils.getLogoutUrl(), bean, headers).then((data: ResponseDTO<string>) => {
      //   if (!data) {
      //     fail("数据为空")
      //     return
      //   }
      //   if (data.code != 0) {
      //     fail(data.message)
      //     return
      //   }
      //   success('')
      // }, (error: Error) => {
      //   fail(error.message)
      //   Logger.debug("LoginViewModel:error ", error.toString())
      // })
    })
  }

//更换绑定手机号
  changeBindPhone(phone: string, verificationCode: string){
    let bean: Record<string, Object> = {};
    bean['phone'] = phone
    bean['verifyCode'] = verificationCode
    return new Promise<object>((success, fail) => {
      HttpRequest.post<ResponseDTO<object>>(HttpUrlUtils.changeBindPhone(), bean).then((data: ResponseDTO<object>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error2 ", error.toString())
      })
    })
  }

  /**获取用户安全页信息*/
  querySecurity(){
    return new Promise<object>((success, fail) => {
      HttpRequest.get<ResponseDTO<object>>(HttpUrlUtils.querySecurity()).then((data: ResponseDTO<object>) => {
        Logger.debug("LoginViewModel:success2 ", data.message)
        if (!data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error2 ", error.toString())
      })
    })
  }

  queryUserDetail() {
    let bean: Record<string, string> = {};
    return new Promise<UserDetail>((success, fail) => {
      HttpBizUtil.get<ResponseDTO<UserDetail>>(HttpUrlUtils.queryUserDetail()).then((data: ResponseDTO<UserDetail>) => {
        if (!data || !data.data) {
          fail("数据为空")
          return
        }
        if (data.code != 0) {
          fail(data.message)
          return
        }
        success(data.data)
      }, (error: Error) => {
        fail(error.message)
        Logger.debug("LoginViewModel:error ", error.toString())
      })
    })
  }

}