feat: 迁移自定义功能至 1.5.9.9 版本

包含音乐源限制、CI 防 OOM 优化、数据库连接池优化、管理端权限及 UI 细节定制等功能
This commit is contained in:
2026-09-12 19:26:42 +08:00
parent 34f0679117
commit 1106aeea6c
161 changed files with 18963 additions and 27900 deletions
+16 -14
View File
@@ -4,8 +4,6 @@ import { users, userStatusLogs } from '~/drizzle/schema'
import { eq } from 'drizzle-orm'
import { getBeijingTime } from '~/utils/timeUtils'
import { getStatusText } from '~~/server/utils/user'
import { createApiError } from '~~/server/utils/apiError'
import { SERVER_ERROR_CODES } from '~~/server/config/constants'
export default defineEventHandler(async (event) => {
try {
@@ -14,7 +12,7 @@ export default defineEventHandler(async (event) => {
if (!user || !['ADMIN', 'SUPER_ADMIN'].includes(user.role)) {
throw createError({
statusCode: 403,
message: '没有权限访问'
statusMessage: '没有权限访问'
})
}
@@ -26,14 +24,14 @@ export default defineEventHandler(async (event) => {
if (!status || !['active', 'withdrawn', 'graduate'].includes(status)) {
throw createError({
statusCode: 400,
message: '状态必须为 active, withdrawn 或 graduate'
statusMessage: '状态必须为 active, withdrawn 或 graduate'
})
}
if (!reason || reason.trim().length === 0) {
throw createError({
statusCode: 400,
message: '变更原因为必填项'
statusMessage: '变更原因为必填项'
})
}
@@ -53,22 +51,17 @@ export default defineEventHandler(async (event) => {
if (existingUser.length === 0) {
throw createError({
statusCode: 404,
message: '用户不存在'
statusMessage: '用户不存在'
})
}
const targetUser = existingUser[0]
// 待审核用户不得通过状态接口直接置为 active(须走注册审核流程)
if (targetUser.status === 'pending' && status === 'active') {
throw createApiError(400, SERVER_ERROR_CODES.USER_NOT_PENDING, '待审核用户需通过注册审核流程处理')
}
// 检查是否为学生用户
if (targetUser.role !== 'USER') {
throw createError({
statusCode: 400,
message: '只能修改学生用户的状态'
statusMessage: '只能修改学生用户的状态'
})
}
@@ -76,7 +69,7 @@ export default defineEventHandler(async (event) => {
if (targetUser.status === status) {
throw createError({
statusCode: 400,
message: '用户状态未发生变化'
statusMessage: '用户状态未发生变化'
})
}
@@ -106,6 +99,15 @@ export default defineEventHandler(async (event) => {
})
})
// 清除相关缓存
try {
const { cache } = await import('~~/server/utils/cache-helpers')
await cache.delete(`auth:user:${parseInt(userId)}`)
console.log('[Cache] 用户认证缓存已清除(状态更新)')
} catch (cacheError) {
console.warn('[Cache] 清除缓存失败:', cacheError)
}
return {
success: true,
message: `用户状态已更新为${getStatusText(status)}`,
@@ -126,7 +128,7 @@ export default defineEventHandler(async (event) => {
throw createError({
statusCode: 500,
message: '更新用户状态失败: ' + error.message
statusMessage: '更新用户状态失败: ' + error.message
})
}
})