From 611a334b1dcff8d61989fded3f439f289efd9b36 Mon Sep 17 00:00:00 2001
From: Radheshhathwar <radheshhathwar.bh@gmail.com>
Date: Fri, 3 Nov 2023 18:19:19 +0530
Subject: [PATCH] delete api Added examId in result

---
 .../examsAndAdmissions/model/dto/ExamDetailsDTO.java      | 1 +
 .../repository/ExamCycleRepository.java                   | 2 ++
 .../examsAndAdmissions/repository/ExamRepository.java     | 3 +++
 .../repository/StudentResultRepository.java               | 5 ++---
 .../examsAndAdmissions/service/StudentResultService.java  | 8 ++++++--
 .../tarento/upsmf/examsAndAdmissions/util/Constants.java  | 2 +-
 6 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/ExamDetailsDTO.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/ExamDetailsDTO.java
index 11d86f1..2a188a5 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/ExamDetailsDTO.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/ExamDetailsDTO.java
@@ -13,4 +13,5 @@ public class ExamDetailsDTO {
     private String grade;
     private String result;
     private String status;
+    private Long examId;
 }
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamCycleRepository.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamCycleRepository.java
index d41263d..661d686 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamCycleRepository.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamCycleRepository.java
@@ -31,4 +31,6 @@ public interface ExamCycleRepository extends JpaRepository<ExamCycle, Long> {
     List<ExamCycle> searchExamCycleByCourseIdAndStartYearAndEndYear(@Param("courseId") String courseId, @Param("startYear") Integer startYear, @Param("endYear") Integer endYear);
 
     List<ExamCycle> findByCourseInAndEndDateAfter(List<Course> courses, LocalDate currentDate);
+    @Query("select ec.id from ExamCycle ec  where ec.examCycleName =:examCycleName")
+    Long getIdByExamCycleName(String examCycleName);
 }
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamRepository.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamRepository.java
index da91d33..7d3d109 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamRepository.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/ExamRepository.java
@@ -28,4 +28,7 @@ public interface ExamRepository extends JpaRepository<Exam, Long> {
     List<Exam> findRegisteredExamsForStudentInCycle(Long studentId, Long examCycleId);
     @Query("SELECT e.examName FROM Exam e WHERE e.id = :exam")
     String getExamNameById(Long exam);
+
+    @Query("SELECT e.id FROM Exam e WHERE e.examName = :examName and e.examCycleId = :examCycleId")
+    Long getIdByExamName(String examName,Long examCycleId);
 }
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
index 9759b26..ae6c61a 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
@@ -37,9 +37,8 @@ public interface StudentResultRepository extends JpaRepository<StudentResult, Lo
     Optional<StudentResult> findByExamIdAndStudentId(Long examId, Long studentId);
     @Modifying
     @Transactional
-    @Query(value = "UPDATE student_results SET external_marks = null FROM exam, students WHERE student_results.exam_cycle_id = exam.exam_cycle_id AND student_results.student_id = students.id AND exam.exam_cycle_id = :examCycleId AND students.institute_id = :instituteId", nativeQuery = true)
-    int setExternalMarksToNull(@Param("examCycleId") Long examCycleId, @Param("instituteId") Long instituteId);
-
+    @Query("UPDATE StudentResult sr SET sr.externalMarks = null, sr.passingExternalMarks = null, sr.externalMarksObtained = null WHERE sr.examCycle_name = :examCycleName AND sr.instituteId = :instituteId")
+    int setExternalMarksToNull(@Param("examCycleName") String examCycleName, @Param("instituteId") Long instituteId);
     @Query("SELECT sr FROM StudentResult sr WHERE sr.firstName = :firstName AND sr.lastName = :lastName AND sr.enrollmentNumber = :enrollmentNumber")
     StudentResult findByFirstNameAndLastNameAndEnrollmentNumber(
             @Param("firstName") String firstName,
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
index 3f147c5..db43097 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
@@ -407,7 +407,7 @@ public class StudentResultService {
     }
 
     public ResponseDto findByStudentIdAndExamCycleId(Long studentId, Long examCycleId) {
-        ResponseDto response = new ResponseDto(Constants.API_FIND_BY_ENROLLMENT_NUMBER_AND_DOB);
+        ResponseDto response = new ResponseDto(Constants.API_FIND_BY_ENROLLMENT_NUMBER_AND_ExamCycle);
 //        List<StudentResult> studentResultList = studentResultRepository.findByStudent_EnrollmentNumberAndExamCycle_IdAndPublished(enrollmentNumber, examCycleId, true);
 
         String examCycleName = examCycleRepository.getExamCycleNameById(examCycleId);
@@ -463,6 +463,9 @@ public class StudentResultService {
                     examDto.setGrade(studentResult.getGrade());
                     examDto.setResult(studentResult.getResult());
                     examDto.setStatus(studentResult.getStatus().name());
+                    Long examCycleId = examCycleRepository.getIdByExamCycleName(studentResult.getExamCycle_name());
+                    Long examId = examRepository.getIdByExamName(studentResult.getExam_name(),examCycleId);
+                    examDto.setExamId(examId);
                     return examDto;
                 })
                 .collect(Collectors.toList());
@@ -841,8 +844,9 @@ public class StudentResultService {
     public ResponseDto deleteExternalMarks(Long examCycleId, Long instituteId) {
         ResponseDto response = new ResponseDto(Constants.API_DELETE_FINAL_MARKS);
 
+        String examCycleName = examCycleRepository.getExamCycleNameById(examCycleId);
         // Logic to set external marks to null for all students of the given institute for the specified exam cycle
-        int updatedCount = studentResultRepository.setExternalMarksToNull(examCycleId, instituteId);
+        int updatedCount = studentResultRepository.setExternalMarksToNull(examCycleName, instituteId);
 
         if(updatedCount == 0) {
             ResponseDto.setErrorResponse(response, "NO_DATA_FOUND", "No external marks found for the provided criteria.", HttpStatus.NOT_FOUND);
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/util/Constants.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/util/Constants.java
index 2db5e4f..d1605e0 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/util/Constants.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/util/Constants.java
@@ -116,7 +116,7 @@ public class Constants {
     public static final String API_FETCH_COURSE_BY_NAME = "api.studentResult.fetchCourseByName";
     public static final String API_FETCH_EXAM_BY_NAME = "api.studentResult.fetchExamByName";
     public static final String API_PUBLISH_RESULTS_FOR_COURSE_WITHIN_CYCLE = "api.studentResult.publishForCourse";
-    public static final String API_FIND_BY_ENROLLMENT_NUMBER_AND_DOB = "api.studentResult.findByEnrollmentAndDob";
+    public static final String API_FIND_BY_ENROLLMENT_NUMBER_AND_ExamCycle = "api.studentResult.findByEnrollmentAndExamCycle";
     public static final String API_UPDATE_RESULT_AFTER_RETOTALLING = "api.studentResult.updateAfterRetotalling";
     public static final String API_GET_RESULTS_BY_EXAM_CYCLE_AND_EXAM_GROUPED_BY_INSTITUTE = "api.studentResult.getByExamCycleAndGroupedByInstitute";
     public static final String API_BULK_UPLOAD_RESULTS = "api.studentResult.bulkUpload";
-- 
GitLab