feat: 官网代码全量更新 (2026-04-18)
这个提交包含在:
@@ -0,0 +1,30 @@
|
||||
import { eq } from 'drizzle-orm'
|
||||
import { useDB, schema } from '../../../utils/db.js'
|
||||
import { requireAdmin } from '../../../utils/auth.js'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
requireAdmin(event)
|
||||
|
||||
const id = Number(getRouterParam(event, 'id'))
|
||||
if (!id || isNaN(id)) {
|
||||
throw createError({ statusCode: 400, message: '无效的 id 参数' })
|
||||
}
|
||||
|
||||
const db = useDB()
|
||||
|
||||
const [existing] = db
|
||||
.select()
|
||||
.from(schema.submissions)
|
||||
.where(eq(schema.submissions.id, id))
|
||||
.all()
|
||||
|
||||
if (!existing) {
|
||||
throw createError({ statusCode: 404, message: '记录不存在' })
|
||||
}
|
||||
|
||||
db.delete(schema.submissions)
|
||||
.where(eq(schema.submissions.id, id))
|
||||
.run()
|
||||
|
||||
return { success: true, id }
|
||||
})
|
||||
@@ -10,9 +10,26 @@ export default defineEventHandler(async (event) => {
|
||||
throw createError({ statusCode: 400, message: '无效的 id 参数' })
|
||||
}
|
||||
|
||||
const body = await readBody(event)
|
||||
if (typeof body.read !== 'boolean') {
|
||||
throw createError({ statusCode: 400, message: 'read 字段必须是布尔值' })
|
||||
const body = await readBody(event) || {}
|
||||
const patch = {}
|
||||
|
||||
if (typeof body.read === 'boolean') {
|
||||
patch.read = body.read
|
||||
}
|
||||
|
||||
if (typeof body.replied === 'boolean') {
|
||||
patch.replied = body.replied
|
||||
patch.repliedAt = body.replied ? new Date().toISOString() : null
|
||||
// 标记为已回复时自动视为已读
|
||||
if (body.replied) patch.read = true
|
||||
}
|
||||
|
||||
if (body.data && typeof body.data === 'object' && !Array.isArray(body.data)) {
|
||||
patch.data = JSON.stringify(body.data)
|
||||
}
|
||||
|
||||
if (Object.keys(patch).length === 0) {
|
||||
throw createError({ statusCode: 400, message: '请求体必须包含 read/replied/data 中的至少一个字段' })
|
||||
}
|
||||
|
||||
const db = useDB()
|
||||
@@ -28,7 +45,7 @@ export default defineEventHandler(async (event) => {
|
||||
}
|
||||
|
||||
db.update(schema.submissions)
|
||||
.set({ read: body.read })
|
||||
.set(patch)
|
||||
.where(eq(schema.submissions.id, id))
|
||||
.run()
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户