feat: make zero download quota block downloads and use -1 for unlimited
This commit is contained in:
@@ -1426,17 +1426,27 @@ function migrateDownloadTrafficFields() {
|
||||
console.log('[数据库迁移] ✓ download_traffic_last_reset_at 字段已添加');
|
||||
}
|
||||
|
||||
// 统一策略:download_traffic_quota <= 0 表示不限流量
|
||||
// 统一策略:download_traffic_quota 为空时回填为 0(0 表示禁止下载,-1 表示不限流量)
|
||||
const quotaBackfillResult = db.prepare(`
|
||||
UPDATE users
|
||||
SET download_traffic_quota = 0
|
||||
WHERE download_traffic_quota IS NULL OR download_traffic_quota < 0
|
||||
WHERE download_traffic_quota IS NULL
|
||||
`).run();
|
||||
|
||||
if (quotaBackfillResult.changes > 0) {
|
||||
console.log(`[数据库迁移] ✓ 下载流量配额默认值已回填: ${quotaBackfillResult.changes} 条记录`);
|
||||
}
|
||||
|
||||
const quotaUnlimitedNormalizeResult = db.prepare(`
|
||||
UPDATE users
|
||||
SET download_traffic_quota = -1
|
||||
WHERE download_traffic_quota < 0
|
||||
`).run();
|
||||
|
||||
if (quotaUnlimitedNormalizeResult.changes > 0) {
|
||||
console.log(`[数据库迁移] ✓ 不限流量配额已标准化为 -1: ${quotaUnlimitedNormalizeResult.changes} 条记录`);
|
||||
}
|
||||
|
||||
const usedBackfillResult = db.prepare(`
|
||||
UPDATE users
|
||||
SET download_traffic_used = 0
|
||||
@@ -1450,7 +1460,7 @@ function migrateDownloadTrafficFields() {
|
||||
const usedCapResult = db.prepare(`
|
||||
UPDATE users
|
||||
SET download_traffic_used = download_traffic_quota
|
||||
WHERE download_traffic_quota > 0 AND download_traffic_used > download_traffic_quota
|
||||
WHERE download_traffic_quota >= 0 AND download_traffic_used > download_traffic_quota
|
||||
`).run();
|
||||
|
||||
if (usedCapResult.changes > 0) {
|
||||
@@ -1468,14 +1478,14 @@ function migrateDownloadTrafficFields() {
|
||||
console.log(`[数据库迁移] ✓ 下载流量重置周期已回填: ${resetCycleBackfillResult.changes} 条记录`);
|
||||
}
|
||||
|
||||
const clearExpiryForUnlimitedResult = db.prepare(`
|
||||
const clearExpiryForNonPositiveQuotaResult = db.prepare(`
|
||||
UPDATE users
|
||||
SET download_traffic_quota_expires_at = NULL
|
||||
WHERE download_traffic_quota <= 0
|
||||
`).run();
|
||||
|
||||
if (clearExpiryForUnlimitedResult.changes > 0) {
|
||||
console.log(`[数据库迁移] ✓ 不限流量用户已清理到期时间: ${clearExpiryForUnlimitedResult.changes} 条记录`);
|
||||
if (clearExpiryForNonPositiveQuotaResult.changes > 0) {
|
||||
console.log(`[数据库迁移] ✓ 非正下载配额用户已清理到期时间: ${clearExpiryForNonPositiveQuotaResult.changes} 条记录`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[数据库迁移] 下载流量字段迁移失败:', error);
|
||||
|
||||
Reference in New Issue
Block a user