Skip to content

Commit

Permalink
[feat/#26] Fix: cycle reference error
Browse files Browse the repository at this point in the history
  • Loading branch information
mjms0214 committed Aug 1, 2023
1 parent 33c7c3f commit b0455e7
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 48 deletions.
38 changes: 0 additions & 38 deletions src/main/java/sookmyung/moaroom/Service/StepService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sookmyung.moaroom.Dto.requestScoreDto;
import sookmyung.moaroom.Dto.responseStepDto;
import sookmyung.moaroom.Model.*;
Expand Down Expand Up @@ -81,43 +80,6 @@ public void scoring(requestScoreDto data){

}

@Transactional
public void setStartDate(UUID lectureId, UUID assignmentId){
List<Users> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
Users user = userList.get(i);
if(user.getClasses()!=null && user.getClasses().contains(lectureId.toString())){
StepPK stepPK = new StepPK(assignmentId, lectureId, user.getUserId());
if(!stepRepository.findById(stepPK).isEmpty()){
Step existStep = stepRepository.getReferenceById(stepPK);
existStep.setStep(Process.PROCEEDING.getRole());
stepRepository.save(existStep);
} else {
Step newStep = new Step();
newStep.setStep(Process.PROCEEDING.getRole());
newStep.setAssignmentId(assignmentId);
newStep.setUserId(user.getUserId());
newStep.setLectureId(lectureId);

stepRepository.save(newStep);
}
}
}
}
@Transactional
public void setDueDate(UUID lectureId, UUID assignmentId){
List<Users> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
Users user = userList.get(i);
if(user.getClasses()!=null && user.getClasses().contains(lectureId.toString())){
StepPK stepPK = new StepPK(assignmentId, lectureId, user.getUserId());
Step existStep = stepRepository.findById(stepPK).get();
existStep.setStep(Process.GRADING.getRole());
stepRepository.save(existStep);
}
}
}

public List<responseStepDto> findStepList(String assignment_id){
List<Step> stepList = stepRepository.findByAssignmentId(UUID.fromString(assignment_id));
List<responseStepDto> stepDtoList = new ArrayList<>();
Expand Down
66 changes: 56 additions & 10 deletions src/main/java/sookmyung/moaroom/Service/TimerScheduler.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,85 @@
package sookmyung.moaroom.Service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import sookmyung.moaroom.Model.Process;
import sookmyung.moaroom.Model.Step;
import sookmyung.moaroom.Model.StepPK;
import sookmyung.moaroom.Model.Users;
import sookmyung.moaroom.Respository.StepRepository;
import sookmyung.moaroom.Respository.UserRepository;

import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

@Service

@Component
public class TimerScheduler {
@Autowired
TaskScheduler scheduler;

UserRepository userRepository;
@Autowired
StepService stepService;

StepRepository stepRepository;
public void setScheduler(int Case, UUID lectureId, UUID assignmentId, LocalDateTime date) {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
scheduler.setThreadNamePrefix("scheduled-thread-pool-");
scheduler.initialize();
if(Case ==0){

scheduler.schedule(new Runnable() {
@Override
public void run() {
stepService.setStartDate(lectureId, assignmentId);
setStartDate(lectureId, assignmentId);
}
}, Timestamp.valueOf(date));
} else {
scheduler.schedule(new Runnable() {
@Override
public void run() {
stepService.setDueDate(lectureId, assignmentId);
setDueDate(lectureId, assignmentId);
}
}, Timestamp.valueOf(date));
}

}
@Transactional
public void setStartDate(UUID lectureId, UUID assignmentId){
List<Users> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
Users user = userList.get(i);
if(user.getClasses()!=null && user.getClasses().contains(lectureId.toString())){
StepPK stepPK = new StepPK(assignmentId, lectureId, user.getUserId());
if(!stepRepository.findById(stepPK).isEmpty()){
Step existStep = stepRepository.findById(stepPK).get();
existStep.setStep(Process.PROCEEDING.getRole());
stepRepository.save(existStep);
} else {
Step newStep = new Step();
newStep.setStep(Process.PROCEEDING.getRole());
newStep.setAssignmentId(assignmentId);
newStep.setUserId(user.getUserId());
newStep.setLectureId(lectureId);

stepRepository.save(newStep);
}
}
}
}
@Transactional
public void setDueDate(UUID lectureId, UUID assignmentId){
List<Users> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
Users user = userList.get(i);
if(user.getClasses()!=null && user.getClasses().contains(lectureId.toString())){
StepPK stepPK = new StepPK(assignmentId, lectureId, user.getUserId());
Step existStep = stepRepository.findById(stepPK).get();
existStep.setStep(Process.GRADING.getRole());
stepRepository.save(existStep);
}
}
}

}

0 comments on commit b0455e7

Please sign in to comment.