From ee9cb2c81d02f740aecca58c9ee721d68cf1abf1 Mon Sep 17 00:00:00 2001 From: luoer <952222@163.com> Date: Thu, 3 Aug 2023 20:03:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E8=A3=85=E9=A5=B0=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/template/模板1.xlsx | Bin 0 -> 8776 bytes src/common/cache/cache.module.ts | 14 +++-- src/common/response/notcaptured.filter.ts | 1 + src/common/response/response.decorator.ts | 22 +++---- src/common/response/response.interceptor.ts | 6 +- .../permission/permission.controller.ts | 4 +- src/modules/post/dto/create-post.dto.ts | 20 +++++- src/modules/post/dto/find-post.dto.ts | 4 ++ src/modules/post/post.controller.ts | 57 ++++++++++++++---- src/modules/post/post.service.ts | 15 +++-- src/modules/role/role.controller.ts | 4 +- src/modules/upload/upload.controller.ts | 4 +- src/modules/user/user.controller.ts | 4 +- 13 files changed, 110 insertions(+), 45 deletions(-) create mode 100644 content/template/模板1.xlsx create mode 100644 src/modules/post/dto/find-post.dto.ts diff --git a/content/template/模板1.xlsx b/content/template/模板1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8b5ce6eaa2acff80902edf3989a0ce54207e0a11 GIT binary patch literal 8776 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 bG5;e%g4HmPy9)r|B0qsh-L7Kz?c4tWA}at= literal 0 HcmV?d00001 diff --git a/src/common/cache/cache.module.ts b/src/common/cache/cache.module.ts index b54184e..8336fae 100644 --- a/src/common/cache/cache.module.ts +++ b/src/common/cache/cache.module.ts @@ -11,12 +11,16 @@ import { redisStore } from 'cache-manager-redis-store'; inject: [ConfigService], useFactory: (config: ConfigService) => { const { host, port } = config.redis; + // TODO + let store: any; + if (store) { + store = () => + redisStore({ + commandsQueueMaxLength: 1000, + socket: { host, port }, + }) as any; + } return { - // store: () => - // redisStore({ - // commandsQueueMaxLength: 1000, - // socket: { host, port }, - // }) as any, db: 0, ttl: 600, }; diff --git a/src/common/response/notcaptured.filter.ts b/src/common/response/notcaptured.filter.ts index 846e106..297c2fc 100644 --- a/src/common/response/notcaptured.filter.ts +++ b/src/common/response/notcaptured.filter.ts @@ -14,6 +14,7 @@ export class AllExecptionFilter implements ExceptionFilter { const response = ctx.getResponse<_Response>(); const message = exception.message; const code = ResponseCode.UNKNOWN_ERROR; + console.trace(exception); this.logger.error(exception, `${request.method} ${request.url}`); response.status(HttpStatus.INTERNAL_SERVER_ERROR).json(Response.create({ code, message, data: null })); } diff --git a/src/common/response/response.decorator.ts b/src/common/response/response.decorator.ts index c636dd4..95bc8a0 100644 --- a/src/common/response/response.decorator.ts +++ b/src/common/response/response.decorator.ts @@ -5,31 +5,29 @@ import { SetMetadata } from '@nestjs/common'; */ export const RESPONSE_KEY = 'APP:RESPONSE'; -type RespondFn = { - (type: 'raw' | 'wrap' | 'pagination'): any; +/** + * 响应结果类型 + */ +export enum RespondType { /** * 原始,返回的数据不会被包装 */ - RAW: 'raw'; + RAW = 'raw', /** * 包装,返回的数据会被包装成统一的格式 */ - WRAP: 'wrap'; + WRAP = 'wrap', /** * 分页,需返回 `[data, total]` 格式的数据 */ - PAGINATION: 'pagination'; -}; + PAGINATION = 'pagination', +} /** * 响应结果装饰器 * @param type 类型 * @returns */ -export const Respond = ((type = 'wrap') => { +export const Respond = (type = RespondType.WRAP) => { return SetMetadata(RESPONSE_KEY, type); -}); - -Respond.RAW = 'raw'; -Respond.WRAP = 'wrap'; -Respond.PAGINATION = 'pagination'; +}; diff --git a/src/common/response/response.interceptor.ts b/src/common/response/response.interceptor.ts index df12ba7..fae79c2 100644 --- a/src/common/response/response.interceptor.ts +++ b/src/common/response/response.interceptor.ts @@ -2,7 +2,7 @@ import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nes import { Reflector } from '@nestjs/core'; import { Observable, map } from 'rxjs'; import { Response } from './response'; -import { RESPONSE_KEY, Respond } from './response.decorator'; +import { RESPONSE_KEY, RespondType } from './response.decorator'; import { Request } from 'express'; import { ConfigService } from '@/config'; @@ -16,10 +16,10 @@ export class ResponseInterceptor implements NestInterceptor { const type = this.reflector.getAllAndOverride(RESPONSE_KEY, [controller, handler]); return next.handle().pipe( map((data: any) => { - if (type === Respond.RAW) { + if (type === RespondType.RAW) { return data; } - if (type === Respond.PAGINATION) { + if (type === RespondType.PAGINATION) { const request = context.switchToHttp().getRequest(); const [list, total] = data; if (request.query.meta) { diff --git a/src/modules/permission/permission.controller.ts b/src/modules/permission/permission.controller.ts index f425636..4ae877b 100644 --- a/src/modules/permission/permission.controller.ts +++ b/src/modules/permission/permission.controller.ts @@ -1,4 +1,4 @@ -import { Respond } from '@/common/response'; +import { Respond, RespondType } from '@/common/response'; import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'; import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreatePermissionDto } from './dto/create-permission.dto'; @@ -17,7 +17,7 @@ export class PermissionController { } @Get() - @Respond(Respond.PAGINATION) + @Respond(RespondType.PAGINATION) @ApiOperation({ description: '批量查询权限', operationId: 'getPermissions' }) findAll() { return this.permissionService.findAll(); diff --git a/src/modules/post/dto/create-post.dto.ts b/src/modules/post/dto/create-post.dto.ts index 1a2b3c5..fbaba55 100644 --- a/src/modules/post/dto/create-post.dto.ts +++ b/src/modules/post/dto/create-post.dto.ts @@ -1 +1,19 @@ -export class CreatePostDto {} +import { IsString } from 'class-validator'; + +export class CreatePostDto { + /** + * 文章标题 + */ + @IsString() + title: string; + /** + * 文章描述 + */ + @IsString() + description: string; + /** + * 文章内容 + */ + @IsString() + content: string; +} diff --git a/src/modules/post/dto/find-post.dto.ts b/src/modules/post/dto/find-post.dto.ts new file mode 100644 index 0000000..642a034 --- /dev/null +++ b/src/modules/post/dto/find-post.dto.ts @@ -0,0 +1,4 @@ +import { PaginationDto } from '@/common/response'; +import { IntersectionType } from '@nestjs/swagger'; + +export class FindPostDto extends IntersectionType(PaginationDto) {} diff --git a/src/modules/post/post.controller.ts b/src/modules/post/post.controller.ts index 0b221b1..8192a84 100644 --- a/src/modules/post/post.controller.ts +++ b/src/modules/post/post.controller.ts @@ -1,13 +1,33 @@ -import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'; +import { + Body, + Controller, + Delete, + Get, + NotFoundException, + Param, + ParseIntPipe, + Patch, + Post, + Query, + Res, +} from '@nestjs/common'; import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreatePostDto } from './dto/create-post.dto'; import { UpdatePostDto } from './dto/update-post.dto'; import { PostService } from './post.service'; +import { join } from 'path'; +import { readFileSync } from 'fs'; +import { Response } from 'express'; +import { BaseController } from '@/common/base'; +import { Respond, RespondType } from '@/common/response'; +import { FindPostDto } from './dto/find-post.dto'; -@Controller('post') @ApiTags('post') -export class PostController { - constructor(private readonly postService: PostService) {} +@Controller('posts') +export class PostController extends BaseController { + constructor(private readonly postService: PostService) { + super(); + } @Post() @ApiOperation({ description: '创建文章', operationId: 'addPost' }) @@ -15,27 +35,42 @@ export class PostController { return this.postService.create(createPostDto); } + @Get('template.xlsx') + @ApiOperation({ description: '获取文章下载模板', operationId: 'getPostTemplate' }) + getTemplate(@Res() res: Response) { + try { + const filePath = join(process.cwd(), './content/template/模板1.xlsx'); + res.type('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + res.attachment('模板1.xlsx'); + // res.sendFile(filePath); + res.send(readFileSync(filePath)); + } catch (e) { + throw new NotFoundException('模板不存在'); + } + } + @Get() + @Respond(RespondType.PAGINATION) @ApiOperation({ description: '批量查询文章', operationId: 'getPosts' }) - findAll() { - return this.postService.findAll(); + findAll(@Query() findPostDto: FindPostDto) { + return this.postService.findAll(findPostDto); } @Get(':id') @ApiOperation({ description: '查询文章', operationId: 'getPost' }) - findOne(@Param('id') id: string) { - return this.postService.findOne(+id); + findOne(@Param('id', ParseIntPipe) id: number) { + return this.postService.findOne(id); } @Patch(':id') @ApiOperation({ description: '更新文章', operationId: 'updatePost' }) - update(@Param('id') id: string, @Body() updatePostDto: UpdatePostDto) { - return this.postService.update(+id, updatePostDto); + update(@Param('id', ParseIntPipe) id: number, @Body() updatePostDto: UpdatePostDto) { + return this.postService.update(id, updatePostDto); } @Delete(':id') @ApiOperation({ description: '删除文章', operationId: 'delPost' }) - remove(@Param('id') id: string) { + remove(@Param('id', ParseIntPipe) id: number) { return this.postService.remove(+id); } } diff --git a/src/modules/post/post.service.ts b/src/modules/post/post.service.ts index 494d484..33d8c8a 100644 --- a/src/modules/post/post.service.ts +++ b/src/modules/post/post.service.ts @@ -4,10 +4,14 @@ import { UpdatePostDto } from './dto/update-post.dto'; import { InjectRepository } from '@nestjs/typeorm'; import { Post } from './entities/post.entity'; import { Repository } from 'typeorm'; +import { BaseService } from '@/common/base'; +import { FindPostDto } from './dto/find-post.dto'; @Injectable() -export class PostService { - constructor(@InjectRepository(Post) private postRepository: Repository) {} +export class PostService extends BaseService { + constructor(@InjectRepository(Post) private postRepository: Repository) { + super(); + } async create(createPostDto: CreatePostDto) { const post = this.postRepository.create(createPostDto); @@ -15,12 +19,13 @@ export class PostService { return post.id; } - findAll() { - return this.postRepository.findAndCount(); + findAll(findPostDto: FindPostDto) { + const { skip, take } = this.formatPagination(findPostDto.page, findPostDto.size); + return this.postRepository.findAndCount({ skip, take }); } findOne(id: number) { - return this.postRepository.findOne({ where: { id } }); + return this.postRepository.findOneOrFail({ where: { id } }); } update(id: number, updatePostDto: UpdatePostDto) { diff --git a/src/modules/role/role.controller.ts b/src/modules/role/role.controller.ts index 682c939..91f0821 100644 --- a/src/modules/role/role.controller.ts +++ b/src/modules/role/role.controller.ts @@ -1,4 +1,4 @@ -import { Respond } from '@/common/response'; +import { Respond, RespondType } from '@/common/response'; import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'; import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreateRoleDto } from './dto/create-role.dto'; @@ -17,7 +17,7 @@ export class RoleController { } @Get() - @Respond(Respond.PAGINATION) + @Respond(RespondType.PAGINATION) @ApiOperation({ description: '批量查询角色', operationId: 'getRoles' }) findAll() { return this.roleService.findAll(); diff --git a/src/modules/upload/upload.controller.ts b/src/modules/upload/upload.controller.ts index 95890bc..977f4c5 100644 --- a/src/modules/upload/upload.controller.ts +++ b/src/modules/upload/upload.controller.ts @@ -1,4 +1,4 @@ -import { Respond } from '@/common/response'; +import { Respond, RespondType } from '@/common/response'; import { Controller, Delete, Get, Ip, Param, Patch, Post, Req, UploadedFile, UseInterceptors } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { ApiBody, ApiConsumes, ApiOperation, ApiTags } from '@nestjs/swagger'; @@ -22,7 +22,7 @@ export class UploadController { } @Get() - @Respond(Respond.PAGINATION) + @Respond(RespondType.PAGINATION) @ApiOperation({ description: '批量查询', operationId: 'getUploads' }) findAll() { return this.uploadService.findAll(); diff --git a/src/modules/user/user.controller.ts b/src/modules/user/user.controller.ts index f1546a0..040423c 100644 --- a/src/modules/user/user.controller.ts +++ b/src/modules/user/user.controller.ts @@ -1,5 +1,5 @@ import { BaseController } from '@/common/base'; -import { Respond } from '@/common/response'; +import { Respond, RespondType } from '@/common/response'; import { Body, Controller, Delete, Get, Param, Patch, Post, Query, Version } from '@nestjs/common'; import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreateUserDto } from './dto/create-user.dto'; @@ -22,7 +22,7 @@ export class UserController extends BaseController { } @Get() - @Respond(Respond.PAGINATION) + @Respond(RespondType.PAGINATION) @ApiOkResponse({ isArray: true, type: User }) @ApiOperation({ description: '批量查询用户', operationId: 'getUsers' }) async findMany(@Query() query: FindUserDto) {