@@ -19,6 +19,7 @@ import type { UsageInfo, MachineInfo } from '@/api/types'
1919import type { HistoryAccount } from '@/types/history'
2020import { useHistoryStore } from './history'
2121import { open } from '@tauri-apps/plugin-dialog'
22+ import Logger from '../utils/logger'
2223
2324export const useCursorStore = defineStore ( 'cursor' , ( ) => {
2425 // 状态
@@ -148,20 +149,21 @@ export const useCursorStore = defineStore('cursor', () => {
148149 /**
149150 * 重置机器码
150151 */
151- async function resetMachine ( params : { forceKill ?: boolean , machineId ?: string } = { } ) {
152+ async function resetMachine ( { forceKill = false , machineId } : { forceKill ?: boolean ; machineId ?: string } = { } ) {
152153 try {
153154 machineCodeLoading . value = true
154- isLoading . value = true
155+ await Logger . info ( '开始重置机器码' )
155156
156157 // 检查 Cursor 是否在运行
157- if ( ! params . forceKill ) {
158+ if ( ! forceKill ) {
158159 const isRunning = await checkCursorRunning ( )
159160 if ( isRunning ) {
160161 throw new Error ( 'Cursor进程正在运行, 请先关闭Cursor' )
161162 }
162163 }
163164
164- await resetMachineId ( params )
165+ await resetMachineId ( { forceKill, machineId } )
166+ await Logger . info ( '机器码重置成功' )
165167
166168 // 添加历史记录
167169 await saveHistoryRecord ( {
@@ -177,7 +179,7 @@ export const useCursorStore = defineStore('cursor', () => {
177179 await fetchCursorUsage ( )
178180 return true
179181 } catch ( error ) {
180- console . error ( ' 重置机器码失败:' , error )
182+ await Logger . error ( ` 重置机器码失败: ${ error } ` )
181183 throw error
182184 } finally {
183185 isLoading . value = false
@@ -191,7 +193,7 @@ export const useCursorStore = defineStore('cursor', () => {
191193 async function switchCursorAccount ( email ?: string , token ?: string , forceKill : boolean = false ) {
192194 try {
193195 accountSwitchLoading . value = true
194- isLoading . value = true
196+ await Logger . info ( '开始切换账户操作' )
195197
196198 // 检查 Cursor 是否在运行
197199 if ( ! forceKill ) {
@@ -203,15 +205,27 @@ export const useCursorStore = defineStore('cursor', () => {
203205
204206 // 如果未提供邮箱和token,则自动获取
205207 if ( ! email || ! token ) {
206- const accountInfo = await getAccount ( undefined , '1' )
207- if ( ! accountInfo . account_info . account || ! accountInfo . account_info . token ) {
208- throw new Error ( '无法获取账户信息' )
208+ try {
209+ const accountInfo = await getAccount ( undefined , '1' )
210+ if ( ! accountInfo . account_info . account || ! accountInfo . account_info . token ) {
211+ await Logger . error ( '获取账户信息失败,无法进行切换' )
212+ throw new Error ( '获取账户信息失败' )
213+ }
214+ email = accountInfo . account_info . account
215+ token = accountInfo . account_info . token
216+ } catch ( error ) {
217+ await Logger . error ( '获取新账户失败' )
218+ throw error
209219 }
210- email = accountInfo . account_info . account
211- token = accountInfo . account_info . token
212220 }
213221
214- await switchAccount ( email , token , forceKill )
222+ try {
223+ await switchAccount ( email , token , forceKill )
224+ await Logger . info ( `账户切换成功: ${ email } ` )
225+ } catch ( error ) {
226+ await Logger . error ( `账户切换失败: ${ error } ` )
227+ throw error
228+ }
215229
216230 // 添加历史记录
217231 await saveHistoryRecord ( {
@@ -227,7 +241,6 @@ export const useCursorStore = defineStore('cursor', () => {
227241 await fetchCursorUsage ( )
228242 return true
229243 } catch ( error ) {
230- console . error ( '切换账户失败:' , error )
231244 throw error
232245 } finally {
233246 isLoading . value = false
@@ -241,7 +254,7 @@ export const useCursorStore = defineStore('cursor', () => {
241254 async function quickChange ( email ?: string , token ?: string , forceKill : boolean = false ) {
242255 try {
243256 quickChangeLoading . value = true
244- isLoading . value = true
257+ await Logger . info ( '开始一键换号操作' )
245258
246259 // 检查 Cursor 是否在运行
247260 if ( ! forceKill ) {
@@ -251,27 +264,22 @@ export const useCursorStore = defineStore('cursor', () => {
251264 }
252265 }
253266
254- // 如果未提供邮箱和token,则自动获取
255- if ( ! email || ! token ) {
256- const accountInfo = await getAccount ( undefined , '1' )
257- if ( ! accountInfo . account_info . account || ! accountInfo . account_info . token ) {
258- throw new Error ( '无法获取账户信息' )
259- }
260- email = accountInfo . account_info . account
261- token = accountInfo . account_info . token
262- }
263-
264267 // 先重置机器码
265268 try {
266- await resetMachineId ( { forceKill } )
269+ await resetMachine ( { forceKill } )
267270 } catch ( error ) {
268- console . error ( '重置机器码失败:' , error )
269- // 确保在机器码重置失败时立即终止,不执行账户切换
270- throw new Error ( `重置机器码失败,已终止账户切换操作: ${ error instanceof Error ? error . message : String ( error ) } ` )
271+ await Logger . error ( '一键换号时重置机器码失败' )
272+ throw error
271273 }
272274
273- // 只有在机器码重置成功后才执行账户切换
274- await switchAccount ( email , token , forceKill )
275+ // 再切换账户
276+ try {
277+ await switchCursorAccount ( email , token , forceKill )
278+ await Logger . info ( '一键换号完成' )
279+ } catch ( error ) {
280+ await Logger . error ( '一键换号时切换账户失败' )
281+ throw error
282+ }
275283
276284 // 添加历史记录
277285 await saveHistoryRecord ( {
@@ -288,7 +296,6 @@ export const useCursorStore = defineStore('cursor', () => {
288296
289297 return true
290298 } catch ( error ) {
291- console . error ( '一键更换失败:' , error )
292299 throw error
293300 } finally {
294301 isLoading . value = false
@@ -330,6 +337,7 @@ export const useCursorStore = defineStore('cursor', () => {
330337 */
331338 async function applyHookToClient ( forceKill : boolean = false ) {
332339 try {
340+ await Logger . info ( '开始注入Hook' )
333341 operationLoading . value = true
334342 isLoading . value = true
335343
@@ -342,9 +350,11 @@ export const useCursorStore = defineStore('cursor', () => {
342350 // 触发检查以确保状态已更新
343351 await checkHook ( )
344352
353+ await Logger . info ( 'Hook注入成功' )
345354 return true
346355 } catch ( error ) {
347- console . error ( '应用 Hook 失败:' , error )
356+ await Logger . error ( `Hook注入失败: ${ error } ` )
357+ hookStatus . value = false
348358 throw error
349359 } finally {
350360 isLoading . value = false
@@ -357,6 +367,7 @@ export const useCursorStore = defineStore('cursor', () => {
357367 */
358368 async function restoreHookFromClient ( forceKill : boolean = false ) {
359369 try {
370+ await Logger . info ( '开始恢复Hook' )
360371 operationLoading . value = true
361372 isLoading . value = true
362373
@@ -369,9 +380,10 @@ export const useCursorStore = defineStore('cursor', () => {
369380 // 触发检查以确保状态已更新
370381 await checkHook ( )
371382
383+ await Logger . info ( 'Hook恢复成功' )
372384 return true
373385 } catch ( error ) {
374- console . error ( '恢复 Hook 失败:' , error )
386+ await Logger . error ( `Hook恢复失败: ${ error } ` )
375387 throw error
376388 } finally {
377389 isLoading . value = false
0 commit comments