zhengyiming
5 天以前 b80dfac43870bb6991228fc01d32b3d5e428283d
apps/cMiniApp/src/stores/modules/user.ts
@@ -9,8 +9,6 @@
  getUserDetail,
  removeUserDetail,
} 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 +22,13 @@
  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.PasswordLoginCommandCallback>;
  userInfo?: Nullable<API.LoginCommandCallback>;
  token?: Nullable<string>;
  refreshToken?: Nullable<string>;
  userDetail?: Nullable<API.UserInfoV2>;
@@ -87,24 +84,26 @@
    accountInfo(): Partial<AccountInfo> {
      return getAccountInfoFromAccessToken(this.userInfo?.accessToken);
    },
    userId: (state) => {
      return state.userInfo?.id ?? '';
    },
  },
  actions: {
    // 手机号授权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.C端小程序,
          };
          res = await accountServices.wxMiniAppPhoneAuthLogin(params);
            sessionKey: wxMiniAppUserLoginRes.sessionKey,
          });
          res.accessToken = bindRes.accessToken;
          this.loginSuccess(res);
        }
        return res;
@@ -114,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 }
      );
@@ -146,7 +147,7 @@
      return res;
    },
    async loginSuccess(res: API.PasswordLoginCommandCallback) {
    async loginSuccess(res: API.LoginCommandCallback) {
      try {
        this.setUserInfoAction(res);
        this.setTokenAction(res);
@@ -155,15 +156,15 @@
    },
    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(
@@ -171,44 +172,47 @@
      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.C端小程序,
        });
        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) {}
      // 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.PasswordLoginCommandCallback) {
    setTokenAction(tokenInfo: API.LoginCommandCallback) {
      this.token = tokenInfo?.accessToken;
      this.refreshToken = tokenInfo.refreshToken ?? '';
    },
    setUserInfoAction(info: API.PasswordLoginCommandCallback) {
      this.userInfo = info;
      setUserInfo(info);
    setUserInfoAction(info: API.LoginCommandCallback) {
      this.userInfo = {
        ...this.userInfo,
        ...info,
      };
      setUserInfo(this.userInfo);
    },
    setUserDetail(detail: API.UserInfoV2) {