diff --git a/src/resume-template/resume-template.controller.ts b/src/resume-template/resume-template.controller.ts index 97781f5..04b8bbd 100644 --- a/src/resume-template/resume-template.controller.ts +++ b/src/resume-template/resume-template.controller.ts @@ -8,6 +8,7 @@ import { Delete, UseGuards, Query, + Request, } from '@nestjs/common'; import { ResumeTemplateService } from './resume-template.service'; import { CreateResumeTemplateDto } from './dto/create-resume-template.dto'; @@ -35,8 +36,14 @@ export class ResumeTemplateController { */ @Post() @UseGuards(AuthGuard) - create(@Body() createResumeTemplateDto: CreateResumeTemplateDto) { - return this.resumeTemplateService.create(createResumeTemplateDto); + create( + @Body() createResumeTemplateDto: CreateResumeTemplateDto, + @Request() req, + ) { + return this.resumeTemplateService.create( + createResumeTemplateDto, + req.user.sub, + ); } /** diff --git a/src/resume-template/resume-template.module.ts b/src/resume-template/resume-template.module.ts index 8289688..87cbe02 100644 --- a/src/resume-template/resume-template.module.ts +++ b/src/resume-template/resume-template.module.ts @@ -3,9 +3,10 @@ import { ResumeTemplateService } from './resume-template.service'; import { ResumeTemplateController } from './resume-template.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ResumeTemplateEntity } from './entities/resume-template.entity'; +import { UserEntity } from '../usercenter/entities/usercenter.entity'; @Module({ - imports: [TypeOrmModule.forFeature([ResumeTemplateEntity])], + imports: [TypeOrmModule.forFeature([ResumeTemplateEntity, UserEntity])], controllers: [ResumeTemplateController], providers: [ResumeTemplateService], exports: [ResumeTemplateService], diff --git a/src/resume-template/resume-template.service.ts b/src/resume-template/resume-template.service.ts index cad3b40..b501485 100644 --- a/src/resume-template/resume-template.service.ts +++ b/src/resume-template/resume-template.service.ts @@ -4,6 +4,7 @@ import { Repository } from 'typeorm'; import { ResumeTemplateEntity } from './entities/resume-template.entity'; import { CreateResumeTemplateDto } from './dto/create-resume-template.dto'; import { UpdateResumeTemplateDto } from './dto/update-resume-template.dto'; +import { UserEntity } from '../usercenter/entities/usercenter.entity'; @Injectable() export class ResumeTemplateService { @@ -14,6 +15,8 @@ export class ResumeTemplateService { constructor( @InjectRepository(ResumeTemplateEntity) private readonly resumeTemplateRepository: Repository, + @InjectRepository(UserEntity) + private readonly userRepository: Repository, ) {} /** @@ -21,7 +24,18 @@ export class ResumeTemplateService { * @param createResumeTemplateDto - 创建简历模板的请求体 * @returns 返回创建的简历模板的信息 */ - async create(createResumeTemplateDto: CreateResumeTemplateDto) { + async create(createResumeTemplateDto: CreateResumeTemplateDto, id: number) { + // 检查用户是否存在 + const user = await this.userRepository.findOne({ + where: { userId: id }, + }); + console.log('user', user); + if (!user) { + throw new NotFoundException(`用户ID ${id} 不存在`); + } + if (user.userAuth !== 2) { + throw new NotFoundException(`用户无权限创建简历模板`); + } const ResumeTemplate = this.resumeTemplateRepository.create({ ...createResumeTemplateDto, }); diff --git a/src/resume/resume.controller.ts b/src/resume/resume.controller.ts index a13388f..dd00d1e 100644 --- a/src/resume/resume.controller.ts +++ b/src/resume/resume.controller.ts @@ -56,8 +56,12 @@ export class ResumeController { */ @Get() @UseGuards(AuthGuard) - findAll(@Query('page') page?: number, @Query('limit') limit?: number) { - return this.resumeService.findAll({ + findAll( + @Request() req, + @Query('page') page?: number, + @Query('limit') limit?: number, + ) { + return this.resumeService.findAll(req.user.sub, { page, limit, }); diff --git a/src/resume/resume.service.ts b/src/resume/resume.service.ts index a54a52f..9490a7f 100644 --- a/src/resume/resume.service.ts +++ b/src/resume/resume.service.ts @@ -48,12 +48,24 @@ export class ResumeService { * @param query - 查询参数,包含分页信息 * @returns 返回所有简历信息和总数 */ - async findAll(query: { page?: number; limit?: number }) { + async findAll( + resumeUserId: number, + query: { page?: number; limit?: number }, + ) { + // 获取用户信息 + const user = await this.userRepository.findOne({ + where: { userId: resumeUserId }, + }); + if (!user) { + throw new NotFoundException('用户不存在'); + } const { page = 1, limit = 10 } = query; const [items, total] = await this.resumeRepository.findAndCount({ + where: { resumeUserId }, skip: (page - 1) * limit, take: limit, }); + console.log('items', items); return { items, total,