Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import Router from '@koa/router'; import { Context } from 'koa'; import { optionalAuth } from '../../middleware/auth'; import { prisma } from '../../models'; const router = new Router(); // 重命名专辑 router.put('/:id/rename', optionalAuth, async (ctx: Context) => { const { id } = ctx.params; const { title } = ctx.request.body as { title: string }; const book = await prisma.book.update({ where: { id: parseInt(id) }, data: { title }, }); ctx.body = { code: 0, message: 'success', data: book }; }); // 重命名章节 router.put('/:bookId/chapters/:chapterId/rename', optionalAuth, async (ctx: Context) => { const { chapterId } = ctx.params; const { title } = ctx.request.body as { title: string }; const chapter = await prisma.bookChapter.update({ where: { id: parseInt(chapterId) }, data: { title }, }); ctx.body = { code: 0, message: 'success', data: chapter }; }); // 移动章节到新位置 router.put('/:bookId/chapters/:chapterId/move', optionalAuth, async (ctx: Context) => { const { bookId, chapterId } = ctx.params; const { newNumber } = ctx.request.body as { newNumber: number }; const chapter = await prisma.bookChapter.findUnique({ where: { id: parseInt(chapterId) }, }); if (!chapter) { ctx.status = 404; ctx.body = { code: 404, message: '章节不存在' }; return; } // 调整其他章节的序号 if (newNumber > chapter.number) { await prisma.bookChapter.updateMany({ where: { bookId: parseInt(bookId), number: { gt: chapter.number, lte: newNumber }, }, data: { number: { decrement: 1 } }, }); } else if (newNumber < chapter.number) { await prisma.bookChapter.updateMany({ where: { bookId: parseInt(bookId), number: { gte: newNumber, lt: chapter.number }, }, data: { number: { increment: 1 } }, }); } const updatedChapter = await prisma.bookChapter.update({ where: { id: parseInt(chapterId) }, data: { number: newNumber }, }); ctx.body = { code: 0, message: 'success', data: updatedChapter }; }); export default router; |