zhengyiming
5 天以前 b80dfac43870bb6991228fc01d32b3d5e428283d
apps/bMiniApp/src/stores/modules/user.ts
@@ -8,12 +8,7 @@
  setUserDetail,
  getUserDetail,
  removeUserDetail,
  removeMatchMakingIdentity,
  getMatchMakingIdentity,
  setMatchMakingIdentity,
} from '@/utils/storage/auth';
import * as accountServices from '@12333/services/api/Account';
import * as userServices from '@12333/services/api/User';
import Taro, { useRouter } from '@tarojs/taro';
import { ButtonProps } from '@tarojs/components';
import { debounce } from 'lodash';
@@ -24,14 +19,16 @@
  setOSSLink,
  getUserCertificationFrontStatusAdapter,
  LocationUtils,
  md5Encrypt,
} from '@12333/utils';
import DefaultAvatar from '@/assets/components/icon-default-avatar.png';
import { WxMiniAppEnum } from '@12333/constants';
import { myClient } from '@/constants/query';
import { globalEventEmitter } from '@12333/hooks';
import * as authServices from '@12333/services/apiV2/auth';
import { AppLocalConfig } from '@/constants';
interface UserState {
  userInfo?: Nullable<API.IdentityModelTokenCacheItem>;
  userInfo?: Nullable<API.LoginCommandCallback>;
  token?: Nullable<string>;
  refreshToken?: Nullable<string>;
  userDetail?: Nullable<API.UserInfoV2>;
@@ -80,15 +77,6 @@
    };
  },
  getters: {
    cacheToken: (state) => {
      if (!state.token) {
        const storageToken = getCacheToken() as API.IdentityModelTokenCacheItem;
        state.token = storageToken.accessToken;
      }
      return state.token || null;
    },
    cacheRefreshToken: (state) => {
      return state.refreshToken;
    },
@@ -105,19 +93,17 @@
    // 手机号授权Code登录
    async getTokenByPhone(
      detail: ButtonProps.onGetPhoneNumberEventDetail,
      wxMiniAppUserLoginRes: any
      wxMiniAppUserLoginRes: API.LoginCommandCallback
    ) {
      try {
        let res: API.IdentityModelTokenCacheItem;
        if (!wxMiniAppUserLoginRes.accessToken) {
          let params: API.WxMiniAppPhoneLoginInput = {
            openId: wxMiniAppUserLoginRes.openId,
            sessionKey: wxMiniAppUserLoginRes.sessionKey,
        let res: API.LoginCommandCallback = wxMiniAppUserLoginRes;
        if (!wxMiniAppUserLoginRes?.isBindPhoneNumber) {
          let bindRes = await authServices.bindWxmpUserInfo({
            encryptedData: detail.encryptedData,
            iv: detail.iv,
            wxMiniApp: WxMiniAppEnum.人单合一,
          };
          res = await accountServices.wxMiniAppPhoneAuthLogin(params);
            sessionKey: wxMiniAppUserLoginRes.sessionKey,
          });
          res.accessToken = bindRes.accessToken;
          this.loginSuccess(res);
        }
        return res;
@@ -127,11 +113,13 @@
    },
    // 用户手机验证码登入
    async loginByUsername(data: API.PhoneMesssageCodeLoginInput) {
      let res = await accountServices.phoneMesssageCodeLogin(
    async loginByUsername(data: API.SmsLoginCommand) {
      let res = await authServices.smsLogin(
        {
          phoneNumber: data.phoneNumber,
          code: data.code,
          verifyCode: data.verifyCode,
          type: AppLocalConfig.userType,
          clientType: AppLocalConfig.clientType,
        },
        { showLoading: false }
      );
@@ -143,11 +131,13 @@
    },
    // 用户账号密码登入
    async loginByPassword(data: API.AccessRequestDto) {
      let res = await accountServices.passwordLogin(
    async loginByPassword(params: API.PasswordLoginCommand) {
      let res = await authServices.passwordLogin(
        {
          loginName: data.userName,
          password: data.userPassword,
          userName: params.userName,
          password: md5Encrypt(params.password),
          type: AppLocalConfig.userType,
          clientType: AppLocalConfig.clientType,
        },
        { showLoading: false }
      );
@@ -161,20 +151,20 @@
      try {
        this.setUserInfoAction(res);
        this.setTokenAction(res);
        await this.getCurrentUserInfo();
        // await this.getCurrentUserInfo();
      } catch (error) {}
    },
    async wxMiniAppUserLoginFromScan(wxIndentityRes: API.WxMiniAppIndentityInfo, uuid: string) {
      try {
        let res = await accountServices.wxMiniAppUserLoginFromScan({
          uId: uuid,
          userName: wxIndentityRes.userName,
          openId: wxIndentityRes.openId,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppUserLoginFromScan({
      //     uId: uuid,
      //     userName: wxIndentityRes.userName,
      //     openId: wxIndentityRes.openId,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    async wxMiniAppPhoneAuthLoginFromScan(
@@ -182,35 +172,35 @@
      wxIndentityRes: API.WxMiniAppIndentityInfo,
      uuid: string
    ) {
      try {
        let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
          uId: uuid,
          openId: wxIndentityRes.openId,
          sessionKey: wxIndentityRes.sessionKey,
          encryptedData: detail.encryptedData,
          iv: detail.iv,
          wxMiniApp: WxMiniAppEnum.人单合一,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
      //     uId: uuid,
      //     openId: wxIndentityRes.openId,
      //     sessionKey: wxIndentityRes.sessionKey,
      //     encryptedData: detail.encryptedData,
      //     iv: detail.iv,
      //     wxMiniApp: WxMiniAppEnum.C端小程序,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    async getCurrentUserInfo() {
      try {
        let res = await userServices.getUserInfo({ showLoading: false });
        if (res) {
          res.frontStatus = getUserCertificationFrontStatusAdapter(
            res.userCertificationStatus,
            res.userCertificationAuditStatus
          );
          res.originalAvatarUrl = res.avatarUrl;
          res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
          this.setUserDetail(res);
          this.firstGetUserDetail = false;
        }
      } catch (error) {}
    },
    // async getCurrentUserInfo() {
    //   try {
    //     let res = await userServices.getUserInfo({ showLoading: false });
    //     if (res) {
    //       res.frontStatus = getUserCertificationFrontStatusAdapter(
    //         res.userCertificationStatus,
    //         res.userCertificationAuditStatus
    //       );
    //       res.originalAvatarUrl = res.avatarUrl;
    //       res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
    //       this.setUserDetail(res);
    //       this.firstGetUserDetail = false;
    //     }
    //   } catch (error) {}
    // },
    setTokenAction(tokenInfo: API.IdentityModelTokenCacheItem) {
      this.token = tokenInfo?.accessToken;
@@ -234,7 +224,6 @@
      this.userDetail = null;
      removeUserInfo();
      removeUserDetail();
      removeMatchMakingIdentity();
    },
    /**
@@ -268,23 +257,6 @@
        Taro.redirectTo({
          url: `/packageLogin/authLogin/index`,
        });
      }
    },
    async getTokenByRefreshToken(params: API.AccessRefreshToken) {
      try {
        const res = await accountServices.getTokenByRefreshToken(params, {
          showLoading: false,
        });
        if (res) {
          this.setTokenAction(res);
          this.setUserInfoAction(res);
          return res;
        } else {
          throw new Error('刷新token失败');
        }
      } catch (error) {
        throw new Error('error');
      }
    },