111 lines
3.5 KiB
TypeScript
111 lines
3.5 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Body,
|
|
Param,
|
|
Delete,
|
|
Patch,
|
|
Query,
|
|
} from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
|
|
import { NoAuthToken } from 'src/common/decorator/no-token.decorator';
|
|
import { TokenData } from 'src/common/decorator/token-data.decorator';
|
|
import { StudentOnlineExamService } from 'src/assessment-evaluation/service/service-exam-manager/student-online-exam.service';
|
|
import { TokenDataEntity } from 'src/common/entities/token-data.entity';
|
|
import { UpdateStudentOnlineExamDto } from 'src/assessment-evaluation/dto/dtos-exam-manager/student-online-exam/update-student-online-exam.dto';
|
|
import { CreateStudentOnlineExamDto } from 'src/assessment-evaluation/dto/dtos-exam-manager/student-online-exam/create-student-online-exam.dto';
|
|
import { PagingStudentOnlineExamDto } from 'src/assessment-evaluation/dto/dtos-exam-manager/student-online-exam/paging-student-online-exam.dto';
|
|
@ApiTags('考试管理 - 学员在线考试')
|
|
@ApiBearerAuth()
|
|
// @NoAuthToken()
|
|
@Controller('assessmentEvaluation/StudentOnlineExam')
|
|
export class StudentOnlineExamController {
|
|
constructor(
|
|
private readonly StudentOnlineExamService: StudentOnlineExamService,
|
|
) {}
|
|
|
|
@Post()
|
|
// @NoAuthToken()
|
|
// 分发考试给学生
|
|
async create(
|
|
@Body() CreateStudentOnlineExamDto: CreateStudentOnlineExamDto,
|
|
@TokenData() token: any,
|
|
) {
|
|
CreateStudentOnlineExamDto.creator = CreateStudentOnlineExamDto.updater =
|
|
token.userId;
|
|
return this.StudentOnlineExamService.create(CreateStudentOnlineExamDto);
|
|
}
|
|
|
|
@Get('paging')
|
|
// @NoAuthToken()
|
|
// 分页查询考试历史
|
|
async paging(
|
|
@Query() pagingInfo: PagingStudentOnlineExamDto,
|
|
@TokenData() token: TokenDataEntity,
|
|
) {
|
|
console.log(token);
|
|
return this.StudentOnlineExamService.paging(pagingInfo, token);
|
|
}
|
|
|
|
@Get('pagingGrade')
|
|
// @NoAuthToken()
|
|
@ApiOperation({ summary: '分页查询人工判卷的考试列表' })
|
|
// 分页查询人工判卷的考试列表
|
|
async pagingGrade(
|
|
@Query() pagingInfo: PagingStudentOnlineExamDto,
|
|
@TokenData() token: TokenDataEntity,
|
|
) {
|
|
console.log(token);
|
|
return this.StudentOnlineExamService.pagingGrade(pagingInfo, token);
|
|
}
|
|
@Get('pagingGradeDetails/:examId')
|
|
@NoAuthToken()
|
|
@ApiOperation({ summary: '分页查询需要人工判卷的学员考试列表' })
|
|
// 分页查询需要人工判卷的学员考试列表
|
|
async pagingGradeDetails(
|
|
@Param('examId') examId: number,
|
|
@Query() pagingInfo: PagingStudentOnlineExamDto,
|
|
) {
|
|
return this.StudentOnlineExamService.pagingGradeDetails(
|
|
+examId,
|
|
pagingInfo,
|
|
);
|
|
}
|
|
@Get('lastExamHistory/:onlineExamId')
|
|
@NoAuthToken()
|
|
// 获取考试最后一次的答卷
|
|
async getLastExamHistory(@Param('onlineExamId') onlineExamId: number) {
|
|
return this.StudentOnlineExamService.findLastExam(onlineExamId);
|
|
}
|
|
|
|
@Patch('item/:id')
|
|
// 更新
|
|
async update(
|
|
@Param('id') id: string,
|
|
@Body() UpdateStudentOnlineExamDto: UpdateStudentOnlineExamDto,
|
|
) {
|
|
return this.StudentOnlineExamService.update(
|
|
+id,
|
|
UpdateStudentOnlineExamDto,
|
|
);
|
|
}
|
|
// 删除
|
|
@Delete('item/:id')
|
|
async remove(@Param('id') id: string) {
|
|
return this.StudentOnlineExamService.remove(+id);
|
|
}
|
|
// 批量删除
|
|
@Delete()
|
|
async removeAll(@Body() ids: number[]) {
|
|
try {
|
|
for (const item of ids) {
|
|
await this.StudentOnlineExamService.remove(+item);
|
|
}
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|