Skip to content

Commit 74f102d

Browse files
authored
Merge pull request #20 from codepaintstudio/dev-wl
feat(resume): 增加用户权限验证和关联查询
2 parents a3f703f + 2af34a1 commit 74f102d

5 files changed

Lines changed: 45 additions & 7 deletions

File tree

src/resume-template/resume-template.controller.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
Delete,
99
UseGuards,
1010
Query,
11+
Request,
1112
} from '@nestjs/common';
1213
import { ResumeTemplateService } from './resume-template.service';
1314
import { CreateResumeTemplateDto } from './dto/create-resume-template.dto';
@@ -35,8 +36,14 @@ export class ResumeTemplateController {
3536
*/
3637
@Post()
3738
@UseGuards(AuthGuard)
38-
create(@Body() createResumeTemplateDto: CreateResumeTemplateDto) {
39-
return this.resumeTemplateService.create(createResumeTemplateDto);
39+
create(
40+
@Body() createResumeTemplateDto: CreateResumeTemplateDto,
41+
@Request() req,
42+
) {
43+
return this.resumeTemplateService.create(
44+
createResumeTemplateDto,
45+
req.user.sub,
46+
);
4047
}
4148

4249
/**

src/resume-template/resume-template.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import { ResumeTemplateService } from './resume-template.service';
33
import { ResumeTemplateController } from './resume-template.controller';
44
import { TypeOrmModule } from '@nestjs/typeorm';
55
import { ResumeTemplateEntity } from './entities/resume-template.entity';
6+
import { UserEntity } from '../usercenter/entities/usercenter.entity';
67

78
@Module({
8-
imports: [TypeOrmModule.forFeature([ResumeTemplateEntity])],
9+
imports: [TypeOrmModule.forFeature([ResumeTemplateEntity, UserEntity])],
910
controllers: [ResumeTemplateController],
1011
providers: [ResumeTemplateService],
1112
exports: [ResumeTemplateService],

src/resume-template/resume-template.service.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Repository } from 'typeorm';
44
import { ResumeTemplateEntity } from './entities/resume-template.entity';
55
import { CreateResumeTemplateDto } from './dto/create-resume-template.dto';
66
import { UpdateResumeTemplateDto } from './dto/update-resume-template.dto';
7+
import { UserEntity } from '../usercenter/entities/usercenter.entity';
78

89
@Injectable()
910
export class ResumeTemplateService {
@@ -14,14 +15,27 @@ export class ResumeTemplateService {
1415
constructor(
1516
@InjectRepository(ResumeTemplateEntity)
1617
private readonly resumeTemplateRepository: Repository<ResumeTemplateEntity>,
18+
@InjectRepository(UserEntity)
19+
private readonly userRepository: Repository<UserEntity>,
1720
) {}
1821

1922
/**
2023
* 创建新的简历模板
2124
* @param createResumeTemplateDto - 创建简历模板的请求体
2225
* @returns 返回创建的简历模板的信息
2326
*/
24-
async create(createResumeTemplateDto: CreateResumeTemplateDto) {
27+
async create(createResumeTemplateDto: CreateResumeTemplateDto, id: number) {
28+
// 检查用户是否存在
29+
const user = await this.userRepository.findOne({
30+
where: { userId: id },
31+
});
32+
console.log('user', user);
33+
if (!user) {
34+
throw new NotFoundException(`用户ID ${id} 不存在`);
35+
}
36+
if (user.userAuth !== 2) {
37+
throw new NotFoundException(`用户无权限创建简历模板`);
38+
}
2539
const ResumeTemplate = this.resumeTemplateRepository.create({
2640
...createResumeTemplateDto,
2741
});

src/resume/resume.controller.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,12 @@ export class ResumeController {
5656
*/
5757
@Get()
5858
@UseGuards(AuthGuard)
59-
findAll(@Query('page') page?: number, @Query('limit') limit?: number) {
60-
return this.resumeService.findAll({
59+
findAll(
60+
@Request() req,
61+
@Query('page') page?: number,
62+
@Query('limit') limit?: number,
63+
) {
64+
return this.resumeService.findAll(req.user.sub, {
6165
page,
6266
limit,
6367
});

src/resume/resume.service.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,24 @@ export class ResumeService {
4848
* @param query - 查询参数,包含分页信息
4949
* @returns 返回所有简历信息和总数
5050
*/
51-
async findAll(query: { page?: number; limit?: number }) {
51+
async findAll(
52+
resumeUserId: number,
53+
query: { page?: number; limit?: number },
54+
) {
55+
// 获取用户信息
56+
const user = await this.userRepository.findOne({
57+
where: { userId: resumeUserId },
58+
});
59+
if (!user) {
60+
throw new NotFoundException('用户不存在');
61+
}
5262
const { page = 1, limit = 10 } = query;
5363
const [items, total] = await this.resumeRepository.findAndCount({
64+
where: { resumeUserId },
5465
skip: (page - 1) * limit,
5566
take: limit,
5667
});
68+
console.log('items', items);
5769
return {
5870
items,
5971
total,

0 commit comments

Comments
 (0)