feat: apply UI/storage/share optimizations and quota improvements

This commit is contained in:
2026-02-12 18:02:57 +08:00
parent 1fcc60b9aa
commit 12859cbb20
13 changed files with 4476 additions and 828 deletions

View File

@@ -53,21 +53,20 @@ class StorageUsageCache {
*/
static async updateUsage(userId, deltaSize) {
try {
// 使用 SQL 原子操作,避免并发问题
const result = UserDB.update(userId, {
// 使用原始 SQL因为 update 方法不支持表达式
// 注意:这里需要在数据库层执行 UPDATE ... SET storage_used = storage_used + ?
});
const numericDelta = Number(deltaSize);
if (!Number.isFinite(numericDelta)) {
throw new Error('deltaSize 必须是有效数字');
}
// 直接执行 SQL 更新
// 直接执行 SQL 原子更新,并保证不小于 0
const { db } = require('../database');
db.prepare(`
UPDATE users
SET storage_used = storage_used + ?
SET storage_used = MAX(COALESCE(storage_used, 0) + ?, 0)
WHERE id = ?
`).run(deltaSize, userId);
`).run(numericDelta, userId);
console.log(`[存储缓存] 用户 ${userId} 存储变化: ${deltaSize > 0 ? '+' : ''}${deltaSize} 字节`);
console.log(`[存储缓存] 用户 ${userId} 存储变化: ${numericDelta > 0 ? '+' : ''}${numericDelta} 字节`);
return true;
} catch (error) {
console.error('[存储缓存] 更新失败:', error);