From 695f34bc3da40bc6d4b92cb8477880bb56c9fe47 Mon Sep 17 00:00:00 2001 From: charilezhou Date: Mon, 19 Jan 2026 20:39:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(plop):=20QueryDto=20=E5=A7=8B=E7=BB=88?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=B9=B6=E5=9C=A8=20controller=20=E4=B8=AD?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - dto.hbs: 移除 hasQueryDto 条件,始终生成 QueryDto 类 - controller.hbs: 始终导入使用 QueryDto 而非 PaginationQueryDto - hasQueryDto 现只控制是否提取查询字段,不影响类型声明 便于后续扩展查询参数,无需修改 controller 导入 Co-Authored-By: Claude Opus 4.5 --- plop/templates/api/controller.hbs | 17 ++++------------- plop/templates/api/dto.hbs | 2 -- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/plop/templates/api/controller.hbs b/plop/templates/api/controller.hbs index 140aa2b..538262f 100644 --- a/plop/templates/api/controller.hbs +++ b/plop/templates/api/controller.hbs @@ -28,9 +28,7 @@ import { {{pascalCase name}}DetailResponseDto, {{/if}} Paginated{{pascalCase name}}ResponseDto, -{{#if hasQueryDto}} {{pascalCase name}}QueryDto, -{{/if}} {{#each manyToMany}} Assign{{pascalCase name}}Dto, {{targetModel}}BriefDto, @@ -39,9 +37,6 @@ import { import { {{pascalCase name}}Service } from './{{kebabCase name}}.service'; import { JwtAuthGuard } from '@/auth/guards/jwt-auth.guard'; -{{#unless hasQueryDto}} -import { PaginationQueryDto } from '@/common/crud/dto/pagination.dto'; -{{/unless}} import { RequirePermission } from '@/permission/decorators/require-permission.decorator'; import { PermissionGuard } from '@/permission/guards/permission.guard'; @@ -64,8 +59,8 @@ export class {{pascalCase name}}Controller { @RequirePermission('{{kebabCase name}}:read') @ApiOperation({ summary: '获取所有{{chineseName}}(分页)' }) @ApiOkResponse({ type: Paginated{{pascalCase name}}ResponseDto, description: '{{chineseName}}列表' }) -{{#if hasQueryDto}} findAll(@Query() query: {{pascalCase name}}QueryDto) { +{{#if hasQueryDto}} {{#if (eq serviceType 'CrudService')}} const { {{#each queryFields}}{{name}}, {{/each}}...pagination } = query; const where: Prisma.{{pascalCase name}}WhereInput = {}; @@ -82,24 +77,22 @@ export class {{pascalCase name}}Controller { {{else}} return this.{{camelCase name}}Service.findAllWithRelations(query); {{/if}} - } {{else}} - findAll(@Query() query: PaginationQueryDto) { {{#if (eq serviceType 'CrudService')}} return this.{{camelCase name}}Service.findAll(query); {{else}} return this.{{camelCase name}}Service.findAllWithRelations(query); {{/if}} - } {{/if}} + } {{#if softDelete}} @Get('deleted') @RequirePermission('{{kebabCase name}}:read') @ApiOperation({ summary: '获取已删除的{{chineseName}}列表(分页)' }) @ApiOkResponse({ type: Paginated{{pascalCase name}}ResponseDto, description: '已删除{{chineseName}}列表' }) -{{#if hasQueryDto}} findDeleted(@Query() query: {{pascalCase name}}QueryDto) { +{{#if hasQueryDto}} const { {{#each queryFields}}{{name}}, {{/each}}...pagination } = query; const where: Prisma.{{pascalCase name}}WhereInput = {}; {{#each queryFields}} @@ -112,12 +105,10 @@ export class {{pascalCase name}}Controller { } {{/each}} return this.{{camelCase name}}Service.findDeleted({ ...pagination, where }); - } {{else}} - findDeleted(@Query() query: PaginationQueryDto) { return this.{{camelCase name}}Service.findDeleted(query); - } {{/if}} + } {{/if}} @Get(':id') diff --git a/plop/templates/api/dto.hbs b/plop/templates/api/dto.hbs index 6b580d6..e93df82 100644 --- a/plop/templates/api/dto.hbs +++ b/plop/templates/api/dto.hbs @@ -155,7 +155,6 @@ export class Paginated{{pascalCase name}}ResponseDto extends createPaginatedResp {{pascalCase name}}ResponseDto, ) {} -{{#if hasQueryDto}} /** {{chineseName}}查询 DTO */ export class {{pascalCase name}}QueryDto extends PaginationQueryDto { {{#each queryFields}} @@ -165,4 +164,3 @@ export class {{pascalCase name}}QueryDto extends PaginationQueryDto { {{/each}} } -{{/if}}