From 5fc0fd2a95f454eacd0670c316205514036943e2 Mon Sep 17 00:00:00 2001 From: Roe-xin Date: Mon, 2 Mar 2026 14:02:19 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BC=81=E4=B8=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=BC=B9=E7=AA=97=E9=80=BB=E8=BE=91=20-=20=E9=80=9A?= =?UTF-8?q?=E8=BF=87getuserinfo=E8=8E=B7=E5=8F=96=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E6=98=AF?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/userService.ts | 28 +++++++++++++++------------- src/types/api.ts | 5 +++++ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/services/userService.ts b/src/services/userService.ts index 7b37292..9bd8167 100644 --- a/src/services/userService.ts +++ b/src/services/userService.ts @@ -9,8 +9,6 @@ import * as vscode from 'vscode'; import { getStrangeLoopApiUrl, getConfig } from '../config/settings'; import type { UserInfoResponse, MembershipResponse, MultiMembershipVO, MembershipItemVO } from '../types/api'; import { fetchBalanceWithToken, getCachedBalance } from './creditsService'; -import { getIsPluginTrialFromToken } from '../utils/jwtUtils'; -// 移除 WelcomePanel 导入,改用消息通知方式 /** * HTTP 请求选项 @@ -145,7 +143,7 @@ export async function getUserInfo(token: string): Promise { // 处理响应数据 - 检查 code 是否为 200 if (response.code === 200 && response.user) { const user = response.user; - return { + const userInfo: UserInfo = { userId: String(user.userId), username: user.userName, nickname: user.nickName, @@ -157,6 +155,20 @@ export async function getUserInfo(token: string): Promise { createTime: user.createTime, loginDate: user.loginDate }; + + // 从接口响应中获取企业试用标识 + if (response.isPluginTrial === true) { + userInfo.isPluginTrial = true; + console.log('[UserService] 从 getInfo 接口获取到 isPluginTrial: true'); + } + + // 获取试用到期时间 + if (response.enterpriseTrialExpires) { + userInfo.pluginTrialExpiresAt = response.enterpriseTrialExpires; + console.log('[UserService] 试用到期时间:', new Date(response.enterpriseTrialExpires).toLocaleString()); + } + + return userInfo; } console.error('[UserService] 获取用户信息失败:', response); @@ -232,10 +244,6 @@ export async function onTokenReceived(token: string): Promise { try { console.log('[UserService] Token 已获取,正在获取用户信息、会员信息和余额...'); - // 从 token 中提取 ispluginTrial 标识 - const isPluginTrial = getIsPluginTrialFromToken(token); - console.log('[UserService] 从 token 中提取 ispluginTrial:', isPluginTrial); - // 并行获取用户信息、会员信息和余额 const [userInfo, membershipInfo, credits] = await Promise.all([ getUserInfo(token), @@ -248,12 +256,6 @@ export async function onTokenReceived(token: string): Promise { return null; } - // 将 token 中的 ispluginTrial 标识添加到用户信息 - if (isPluginTrial !== null) { - userInfo.isPluginTrial = isPluginTrial; - console.log('[UserService] 已将 ispluginTrial 添加到用户信息:', isPluginTrial); - } - // 添加 Credits 余额到用户信息 console.log('[UserService] 获取到的 Credits 余额:', credits); if (credits !== null) { diff --git a/src/types/api.ts b/src/types/api.ts index 2ad72f1..ecb2adc 100644 --- a/src/types/api.ts +++ b/src/types/api.ts @@ -407,6 +407,10 @@ export interface UserInfoResponse { isDefaultModifyPwd: boolean; /** 密码是否过期 */ isPasswordExpired: boolean; + /** 是否为插件试用用户 */ + isPluginTrial?: boolean; + /** 企业试用到期时间(毫秒时间戳) */ + enterpriseTrialExpires?: number; /** 用户信息 */ user: { userId: number; @@ -419,6 +423,7 @@ export interface UserInfoResponse { status?: string; createTime?: string; loginDate?: string; + remark?: string; [key: string]: any; }; }