feat: 官网代码全量更新 (2026-04-18)
这个提交包含在:
@@ -8,5 +8,9 @@ export default defineEventHandler(async (event) => {
|
||||
const db = useDB()
|
||||
const item = db.select().from(schema.reviews).where(eq(schema.reviews.id, id)).get()
|
||||
if (!item) throw createError({ statusCode: 404, message: '评价不存在' })
|
||||
return item
|
||||
return {
|
||||
...item,
|
||||
scenes: (() => { try { return JSON.parse(item.scenes || '[]') } catch { return [] } })(),
|
||||
concerns: (() => { try { return JSON.parse(item.concerns || '[]') } catch { return [] } })(),
|
||||
}
|
||||
})
|
||||
|
||||
@@ -15,6 +15,9 @@ export default defineEventHandler(async (event) => {
|
||||
if (body.title !== undefined) updateData.title = body.title
|
||||
if (body.content !== undefined) updateData.content = body.content
|
||||
if (body.date !== undefined) updateData.date = body.date
|
||||
if (body.screenshot !== undefined) updateData.screenshot = body.screenshot
|
||||
if (body.scenes !== undefined) updateData.scenes = Array.isArray(body.scenes) ? JSON.stringify(body.scenes) : body.scenes
|
||||
if (body.concerns !== undefined) updateData.concerns = Array.isArray(body.concerns) ? JSON.stringify(body.concerns) : body.concerns
|
||||
if (body.verified !== undefined) updateData.verified = body.verified ? 1 : 0
|
||||
if (body.published !== undefined) updateData.published = body.published ? 1 : 0
|
||||
if (body.sortOrder !== undefined) updateData.sortOrder = body.sortOrder
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import { inArray } from 'drizzle-orm'
|
||||
import { useDB, schema } from '../../../utils/db.js'
|
||||
import { requireAdmin } from '../../../utils/auth.js'
|
||||
|
||||
/**
|
||||
* 批量操作:{ action: 'publish'|'unpublish'|'delete', ids: number[] }
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
requireAdmin(event)
|
||||
const { action, ids } = await readBody(event)
|
||||
|
||||
if (!Array.isArray(ids) || ids.length === 0) {
|
||||
throw createError({ statusCode: 422, message: 'ids 不能为空' })
|
||||
}
|
||||
const db = useDB()
|
||||
|
||||
switch (action) {
|
||||
case 'publish':
|
||||
db.update(schema.reviews).set({ published: true }).where(inArray(schema.reviews.id, ids)).run()
|
||||
break
|
||||
case 'unpublish':
|
||||
db.update(schema.reviews).set({ published: false }).where(inArray(schema.reviews.id, ids)).run()
|
||||
break
|
||||
case 'delete':
|
||||
db.delete(schema.reviews).where(inArray(schema.reviews.id, ids)).run()
|
||||
break
|
||||
default:
|
||||
throw createError({ statusCode: 422, message: '未知 action' })
|
||||
}
|
||||
return { success: true, affected: ids.length }
|
||||
})
|
||||
在新工单中引用
屏蔽一个用户