|
@@ -294,6 +294,18 @@ class TaskScheduler {
|
|
|
return decrypted
|
|
return decrypted
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ tryDecryptPassword(encrypted, ctx = {}) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ return { password: this.decryptPassword(encrypted), invalid: false }
|
|
|
|
|
+ } catch (err) {
|
|
|
|
|
+ this.logWarn('decryptPassword', '抢课任务密码解密失败', ctx, {
|
|
|
|
|
+ message: err?.message,
|
|
|
|
|
+ code: err?.code
|
|
|
|
|
+ })
|
|
|
|
|
+ return { password: '', invalid: true }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
normalizeArray(value) {
|
|
normalizeArray(value) {
|
|
|
if (Array.isArray(value)) {
|
|
if (Array.isArray(value)) {
|
|
|
return value.map(item => String(item).trim()).filter(Boolean)
|
|
return value.map(item => String(item).trim()).filter(Boolean)
|
|
@@ -390,7 +402,7 @@ class TaskScheduler {
|
|
|
return rows?.[0]?.id || null
|
|
return rows?.[0]?.id || null
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- serializeTask(row, includeSecret = false) {
|
|
|
|
|
|
|
+ serializeTask(row, includeSecret = false, options = {}) {
|
|
|
const result = { ...row }
|
|
const result = { ...row }
|
|
|
result.enable_ggxxk = Number(result.enable_ggxxk) === 1
|
|
result.enable_ggxxk = Number(result.enable_ggxxk) === 1
|
|
|
result.auto_relogin = Number(result.auto_relogin) === 1
|
|
result.auto_relogin = Number(result.auto_relogin) === 1
|
|
@@ -408,7 +420,15 @@ class TaskScheduler {
|
|
|
}
|
|
}
|
|
|
delete result.batch_jx0502zbid
|
|
delete result.batch_jx0502zbid
|
|
|
if (includeSecret) {
|
|
if (includeSecret) {
|
|
|
- result.password = this.decryptPassword(result.password_enc)
|
|
|
|
|
|
|
+ if (options.tolerateSecretError) {
|
|
|
|
|
+ const decrypted = this.tryDecryptPassword(result.password_enc, { taskId: result.id, uuid: result.create_user })
|
|
|
|
|
+ result.password = decrypted.password
|
|
|
|
|
+ if (decrypted.invalid) {
|
|
|
|
|
+ result.password_invalid = true
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ result.password = this.decryptPassword(result.password_enc)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
delete result.password_enc
|
|
delete result.password_enc
|
|
|
return result
|
|
return result
|
|
@@ -1660,7 +1680,7 @@ class TaskScheduler {
|
|
|
params
|
|
params
|
|
|
)
|
|
)
|
|
|
return {
|
|
return {
|
|
|
- list: (rows || []).map(row => this.serializeTask(row, true)),
|
|
|
|
|
|
|
+ list: (rows || []).map(row => this.serializeTask(row, true, { tolerateSecretError: true })),
|
|
|
total: countRows?.[0]?.total || 0,
|
|
total: countRows?.[0]?.total || 0,
|
|
|
current,
|
|
current,
|
|
|
pagesize
|
|
pagesize
|