Commit f5443341 authored by Muhammad Suleman's avatar Muhammad Suleman

Added Section Service

parent 09f42185
package com.school.project.controller; package com.school.project.controller;
import com.school.project.dto.teacher.AddAssessmentDTO; import com.school.project.dto.teacher.*;
import com.school.project.dto.teacher.AddSectionDTO;
import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.service.teacher.TeacherServiceImpl; import com.school.project.service.teacher.TeacherServiceImpl;
import com.school.project.service.teacher.UploadMarksServiceImpl; import com.school.project.service.teacher.UploadMarksServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -41,4 +38,9 @@ public class TeacherController { ...@@ -41,4 +38,9 @@ public class TeacherController {
public void addSectionInAssessment(@RequestBody AddSectionDTO addSectionDTO) { public void addSectionInAssessment(@RequestBody AddSectionDTO addSectionDTO) {
uploadMarksService.setSection(addSectionDTO); uploadMarksService.setSection(addSectionDTO);
} }
@PostMapping("/upload/marks/section/assessment")
public void setStudentMarks(@RequestBody UploadMarksDTO uploadMarksDTO) {
uploadMarksService.setMarks(uploadMarksDTO);
}
} }
package com.school.project.dto.teacher;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Set;
@Getter
@Setter
public class UploadMarksDTO {
private Long sectionId;
private List<String> studentRollNumbers;
private List<Long> obtainedMarks;
}
package com.school.project.mapper;
import com.school.project.model.Student;
import com.school.project.model.marks.StudentMarks;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class MarksToListOfMarks {
public List<StudentMarks> modelToList(StudentMarks studentMarks) {
List<StudentMarks> list = new ArrayList<>();
list.add(studentMarks);
return list;
}
}
...@@ -14,4 +14,4 @@ public class SectionToListOfSectionMapper { ...@@ -14,4 +14,4 @@ public class SectionToListOfSectionMapper {
sectionList.add(section); sectionList.add(section);
return sectionList; return sectionList;
} }
} }
\ No newline at end of file
...@@ -55,9 +55,9 @@ public class Student { ...@@ -55,9 +55,9 @@ public class Student {
@JsonIgnore @JsonIgnore
private User studentAppUser; private User studentAppUser;
@OneToOne(mappedBy = "student",cascade = CascadeType.ALL,fetch = FetchType.LAZY) @OneToMany(mappedBy = "student",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JsonIgnore @JsonIgnore
private StudentMarks studentMarks; private List<StudentMarks> studentMarks;
} }
...@@ -21,7 +21,7 @@ public class StudentMarks { ...@@ -21,7 +21,7 @@ public class StudentMarks {
@Column(name = "obtained_marks") @Column(name = "obtained_marks")
private Long obtainedMarks; private Long obtainedMarks;
@OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL) @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "student_id") @JoinColumn(name = "student_id")
@NotNull @NotNull
private Student student; private Student student;
......
...@@ -2,8 +2,10 @@ package com.school.project.service.teacher; ...@@ -2,8 +2,10 @@ package com.school.project.service.teacher;
import com.school.project.dto.teacher.AddAssessmentDTO; import com.school.project.dto.teacher.AddAssessmentDTO;
import com.school.project.dto.teacher.AddSectionDTO; import com.school.project.dto.teacher.AddSectionDTO;
import com.school.project.dto.teacher.UploadMarksDTO;
import com.school.project.model.marks.Assessment; import com.school.project.model.marks.Assessment;
import com.school.project.model.marks.Section; import com.school.project.model.marks.Section;
import com.school.project.model.marks.StudentMarks;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
...@@ -11,4 +13,6 @@ public interface UploadMarksService { ...@@ -11,4 +13,6 @@ public interface UploadMarksService {
Assessment setAssessment(AddAssessmentDTO assessmentDTO); Assessment setAssessment(AddAssessmentDTO assessmentDTO);
Section setSection(AddSectionDTO sectionDTO); Section setSection(AddSectionDTO sectionDTO);
void setMarks(UploadMarksDTO marksDTO);
} }
...@@ -2,13 +2,18 @@ package com.school.project.service.teacher; ...@@ -2,13 +2,18 @@ package com.school.project.service.teacher;
import com.school.project.dto.teacher.AddAssessmentDTO; import com.school.project.dto.teacher.AddAssessmentDTO;
import com.school.project.dto.teacher.AddSectionDTO; import com.school.project.dto.teacher.AddSectionDTO;
import com.school.project.dto.teacher.UploadMarksDTO;
import com.school.project.mapper.MarksToListOfMarks;
import com.school.project.mapper.SectionToListOfSectionMapper; import com.school.project.mapper.SectionToListOfSectionMapper;
import com.school.project.model.marks.Assessment; import com.school.project.model.marks.Assessment;
import com.school.project.model.marks.Section; import com.school.project.model.marks.Section;
import com.school.project.model.marks.StudentMarks;
import com.school.project.repository.CourseRepository; import com.school.project.repository.CourseRepository;
import com.school.project.repository.StudentRepository;
import com.school.project.repository.marks.AssessmentRepository; import com.school.project.repository.marks.AssessmentRepository;
import com.school.project.repository.marks.AssessmentTypeRepository; import com.school.project.repository.marks.AssessmentTypeRepository;
import com.school.project.repository.marks.SectionRepository; import com.school.project.repository.marks.SectionRepository;
import com.school.project.repository.marks.StudentMarksRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -30,8 +35,16 @@ public class UploadMarksServiceImpl implements UploadMarksService { ...@@ -30,8 +35,16 @@ public class UploadMarksServiceImpl implements UploadMarksService {
SectionRepository sectionRepository; SectionRepository sectionRepository;
@Autowired @Autowired
SectionToListOfSectionMapper mapper; StudentRepository studentRepository;
@Autowired
SectionToListOfSectionMapper sectionMapper;
@Autowired
MarksToListOfMarks marksMapper;
@Autowired
StudentMarksRepository studentMarksRepository;
@Override @Override
@Transactional @Transactional
public Assessment setAssessment(AddAssessmentDTO assessmentDTO) { public Assessment setAssessment(AddAssessmentDTO assessmentDTO) {
...@@ -59,9 +72,47 @@ public class UploadMarksServiceImpl implements UploadMarksService { ...@@ -59,9 +72,47 @@ public class UploadMarksServiceImpl implements UploadMarksService {
section = sectionRepository.save(section); section = sectionRepository.save(section);
Assessment assessment = assessmentRepository.findByAssessmentId(sectionDTO.getAssessmentId()); Assessment assessment = assessmentRepository.findByAssessmentId(sectionDTO.getAssessmentId());
assessment.setSection(mapper.modelToList(section)); assessment.setSection(sectionMapper.modelToList(section));
return section; return section;
} }
@Override
@Transactional
public void setMarks(UploadMarksDTO marksDTO) {
int marksSize = marksDTO.getObtainedMarks().size();
Section section = sectionRepository.findById(marksDTO.getSectionId()).get();
/* List<Student> studentsSet = new ArrayList<>();
List<Long> studentObtainedMarks = marksDTO.getObtainedMarks();
studentRollNumbers.forEach(studentRollNumber -> studentsSet.add(studentRepository.findByRollNumber(studentRollNumber)));
studentsSet.forEach(student -> {
StudentMarks studentMarks = new StudentMarks();
studentMarks.setStudent(student);
studentMarks.setSection(section);
studentMarks =studentMarksRepository.save(studentMarks);
student.setStudentMarks(studentMarks);
});*/git
for (int i = 0; i<marksDTO.getStudentRollNumbers().size() ;i++) {
StudentMarks studentMarks = new StudentMarks();
studentMarks.setSection(section);
studentMarks.setStudent(studentRepository.findByRollNumber(marksDTO.getStudentRollNumbers().get(i)));
if( i < marksDTO.getObtainedMarks().size() ) {
studentMarks.setObtainedMarks(marksDTO.getObtainedMarks().get(i));
} else {
studentMarks.setObtainedMarks(0l);
}
studentMarksRepository.save(studentMarks);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment