From aec541454c03dfed5e5372f1b0a5039523ffb324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=84=9D?= Date: Fri, 17 May 2024 14:18:33 +0900 Subject: [PATCH] =?UTF-8?q?qa=20=EB=B0=98=EC=98=81=20(#135)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 지도 관계 수정 API에서 기존 배정 인원 확인하여 error를 보내는 로직 삭제 * [HOTFIX] 심사의견 양식 수정 / 최종판정 심사의견 확인 가능하도록 수정 (#125) * fix: 심사보고서 양식 수정 * fix: /reviews/me otherReviews Dto 수정 * fix: 심사현황 조회 심사가 끝난 정보 남기도록 수정 (#131) * fix: 학생 엑셀 등록 timeout 40초로 수정 (#124) * fix: 심사논문 관련 추가 수정 (#129) * fix: 논문 제출이 안된 학생의 심사를 진행할 수 없도록 수정 * fix: 심사위원장이 전원 심사완료가 아닐시 심사할수 없도록 수정 * 추가수정 * fix: filter 조건 수정 * fix: 누락된 query 조건 추가 * fix(be): query typo 수정 * [FIX] 특정 학과 학생 논문 정보 업데이트 오류 수정 (#130) * fix: 학생이 본심 논문 수정 시 수정지시사항 반영 학과 체크 * fix: 관리자가 본심 논문 수정 시 수정지시사항 반영 학과 체크 * fix: 논문 정보 업데이트 API 다시 수정 * fix: 학생 엑셀 업로드로 논문 제목 수정시 생길 수 있는 오류 수정 * fix: 논문 정보 업데이트 api 파일 업데이트 부분 수정 --------- Co-authored-by: yesjuhee Co-authored-by: chanyeong <60565169+jcy0308@users.noreply.github.com> --- src/modules/students/students.service.ts | 75 ++++++++++++++---------- src/modules/theses/theses.service.ts | 75 ++++++++++++++---------- 2 files changed, 90 insertions(+), 60 deletions(-) diff --git a/src/modules/students/students.service.ts b/src/modules/students/students.service.ts index 94b5757..496aa00 100644 --- a/src/modules/students/students.service.ts +++ b/src/modules/students/students.service.ts @@ -1537,22 +1537,27 @@ export class StudentsService { (thesisFile) => thesisFile.type === ThesisFileType.PRESENTATION )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: preThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (presentationFileUUID) { + fileUpdateData.push({ + where: { id: prePPTFile.id }, + data: { fileId: presentationFileUUID }, + }); + } + return await this.prismaService.thesisInfo.update({ where: { id: preThesisInfo.id }, data: { title, abstract, thesisFiles: { - update: [ - { - where: { id: preThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: prePPTFile.id }, - data: { fileId: presentationFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: { @@ -1574,6 +1579,20 @@ export class StudentsService { (thesisFile) => thesisFile.type === ThesisFileType.PRESENTATION )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: mainThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (presentationFileUUID) { + fileUpdateData.push({ + where: { id: mainPPTFile.id }, + data: { fileId: presentationFileUUID }, + }); + } + const thesisInfo = await this.prismaService.$transaction(async (tx) => { // 본심 논문 정보 업데이트 const thesisData = await tx.thesisInfo.update({ @@ -1582,16 +1601,7 @@ export class StudentsService { title, abstract, thesisFiles: { - update: [ - { - where: { id: mainThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: mainPPTFile.id }, - data: { fileId: presentationFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: { @@ -1628,20 +1638,25 @@ export class StudentsService { (thesisFile) => thesisFile.type === ThesisFileType.REVISION_REPORT )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: revisionThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (revisionReportFileUUID) { + fileUpdateData.push({ + where: { id: revisionReportFile.id }, + data: { fileId: revisionReportFileUUID }, + }); + } + return await this.prismaService.thesisInfo.update({ where: { id: revisionThesisInfo.id }, data: { thesisFiles: { - update: [ - { - where: { id: revisionThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: revisionReportFile.id }, - data: { fileId: revisionReportFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: { diff --git a/src/modules/theses/theses.service.ts b/src/modules/theses/theses.service.ts index 7bb9472..9dde233 100644 --- a/src/modules/theses/theses.service.ts +++ b/src/modules/theses/theses.service.ts @@ -36,22 +36,27 @@ export class ThesesService { (thesisFile) => thesisFile.type === ThesisFileType.PRESENTATION )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: preThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (presentationFileUUID) { + fileUpdateData.push({ + where: { id: prePPTFile.id }, + data: { fileId: presentationFileUUID }, + }); + } + return await this.prismaService.thesisInfo.update({ where: { id }, data: { title, abstract, thesisFiles: { - update: [ - { - where: { id: preThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: prePPTFile.id }, - data: { fileId: presentationFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: { @@ -78,6 +83,20 @@ export class ThesesService { (thesisInfo) => thesisInfo.stage === Stage.REVISION )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: mainThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (presentationFileUUID) { + fileUpdateData.push({ + where: { id: mainPPTFile.id }, + data: { fileId: presentationFileUUID }, + }); + } + const thesisInfo = await this.prismaService.$transaction(async (tx) => { // 본심 논문 정보 업데이트 const thesisData = tx.thesisInfo.update({ @@ -86,16 +105,7 @@ export class ThesesService { title, abstract, thesisFiles: { - update: [ - { - where: { id: mainThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: mainPPTFile.id }, - data: { fileId: presentationFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: { @@ -139,6 +149,20 @@ export class ThesesService { (thesisInfo) => thesisInfo.stage === Stage.MAIN )[0]; + const fileUpdateData = []; + if (thesisFileUUID) { + fileUpdateData.push({ + where: { id: revisionThesisFile.id }, + data: { fileId: thesisFileUUID }, + }); + } + if (revisionReportFileUUID) { + fileUpdateData.push({ + where: { id: revisionReportFile.id }, + data: { fileId: presentationFileUUID }, + }); + } + const [thesisInfo] = await this.prismaService.$transaction([ // 수정지시사항 논문 정보 업데이트 this.prismaService.thesisInfo.update({ @@ -147,16 +171,7 @@ export class ThesesService { title, abstract, thesisFiles: { - update: [ - { - where: { id: revisionThesisFile.id }, - data: { fileId: thesisFileUUID }, - }, - { - where: { id: revisionReportFile.id }, - data: { fileId: revisionReportFileUUID }, - }, - ], + update: fileUpdateData, }, }, include: {