diff --git a/week03/dbendpagination/.gitignore b/week03/yonghyun/dbendpagination/.gitignore similarity index 100% rename from week03/dbendpagination/.gitignore rename to week03/yonghyun/dbendpagination/.gitignore diff --git a/week03/dbendpagination/build.gradle b/week03/yonghyun/dbendpagination/build.gradle similarity index 100% rename from week03/dbendpagination/build.gradle rename to week03/yonghyun/dbendpagination/build.gradle diff --git a/week03/dbendpagination/gradle/wrapper/gradle-wrapper.jar b/week03/yonghyun/dbendpagination/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from week03/dbendpagination/gradle/wrapper/gradle-wrapper.jar rename to week03/yonghyun/dbendpagination/gradle/wrapper/gradle-wrapper.jar diff --git a/week03/dbendpagination/gradle/wrapper/gradle-wrapper.properties b/week03/yonghyun/dbendpagination/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from week03/dbendpagination/gradle/wrapper/gradle-wrapper.properties rename to week03/yonghyun/dbendpagination/gradle/wrapper/gradle-wrapper.properties diff --git a/week03/dbendpagination/gradlew b/week03/yonghyun/dbendpagination/gradlew similarity index 100% rename from week03/dbendpagination/gradlew rename to week03/yonghyun/dbendpagination/gradlew diff --git a/week03/dbendpagination/gradlew.bat b/week03/yonghyun/dbendpagination/gradlew.bat similarity index 100% rename from week03/dbendpagination/gradlew.bat rename to week03/yonghyun/dbendpagination/gradlew.bat diff --git a/week03/dbendpagination/settings.gradle b/week03/yonghyun/dbendpagination/settings.gradle similarity index 100% rename from week03/dbendpagination/settings.gradle rename to week03/yonghyun/dbendpagination/settings.gradle diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/DbendpaginationApplication.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/DbendpaginationApplication.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/DbendpaginationApplication.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/DbendpaginationApplication.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/PageInfoDto.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/PageInfoDto.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/PageInfoDto.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/PageInfoDto.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/RspTemplate.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/RspTemplate.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/RspTemplate.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/common/RspTemplate.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/controller/StudentController.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/controller/StudentController.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/controller/StudentController.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/controller/StudentController.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/dto/StudentListRspDto.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/dto/StudentListRspDto.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/dto/StudentListRspDto.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/student/dto/StudentListRspDto.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/controller/StudentInLectureController.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/controller/StudentInLectureController.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/controller/StudentInLectureController.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/controller/StudentInLectureController.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/dto/PenaltyReqDto.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/dto/PenaltyReqDto.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/dto/PenaltyReqDto.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/api/studentinlecture/dto/PenaltyReqDto.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/Lecture.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/Lecture.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/Lecture.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/Lecture.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureRepository.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureRepository.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureRepository.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureRepository.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureService.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureService.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureService.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/lecture/LectureService.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java similarity index 63% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java index 21d2444..e9f8a89 100644 --- a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java +++ b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/Student.java @@ -1,11 +1,13 @@ package com.codingbottle.dbendpagination.domain.student; +import com.codingbottle.dbendpagination.domain.studentinlecture.Penalty; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; +import javax.persistence.criteria.CriteriaBuilder; @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -18,9 +20,17 @@ public class Student { @Column(nullable = false) private String name; + @Column(nullable = false) + private Integer totalPenalty; + @Builder private Student(String name) { this.name = name; + totalPenalty = 0; + } + + public void updateTotalPenalty(Integer penalty){ + totalPenalty += penalty; } diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentRepository.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentRepository.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentRepository.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentRepository.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentService.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentService.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentService.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/student/StudentService.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/Penalty.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/Penalty.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/Penalty.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/Penalty.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLecture.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLecture.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLecture.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLecture.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureRepository.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureRepository.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureRepository.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureRepository.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java similarity index 69% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java index 19ce376..444408b 100644 --- a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java +++ b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/domain/studentinlecture/StudentInLectureService.java @@ -44,9 +44,18 @@ public long updatePenalty(Long studentInLectureId, Penalty penalty) { // 2. studentInLectureId 라는 경로 변수로 StudentInLecture 객체를 찾아온다. StudentInLecture studentInLecture = getById(studentInLectureId); - // 3. studentInLecture 객체의 벌점을 변경한다. - studentInLecture.setPenalty(penalty); + if(studentInLecture.getPenalty() != penalty.getValue()) {// 원래 벌점과 변경된 벌점이 들어왔을 때만 + // 3. student 객체의 벌점 총합을 업데이트한다. + // 원래 있던 벌점과 수정된 벌점을 비교한 뒤 적절하게 벌점 총합을 업데이트한다. + if(studentInLecture.getPenalty() == 10 && penalty.getValue() == 2)studentInLecture.getStudent().updateTotalPenalty(-8); + else if(studentInLecture.getPenalty() == 10 && penalty.getValue() == 0)studentInLecture.getStudent().updateTotalPenalty(-10); + else if(studentInLecture.getPenalty() == 2 && penalty.getValue() == 10)studentInLecture.getStudent().updateTotalPenalty(8); + else if(studentInLecture.getPenalty() == 2 && penalty.getValue() == 0)studentInLecture.getStudent().updateTotalPenalty(-2); + else studentInLecture.getStudent().updateTotalPenalty(penalty.getValue()); + // 4. studentInLecture 객체의 벌점을 변경한다. + studentInLecture.setPenalty(penalty); + } return studentInLecture.getId(); // 1차 저장소의 정보가 DB로 flush 되고, 트랜잭션이 commit 된다. } diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/InitDB.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/InitDB.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/InitDB.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/InitDB.java diff --git a/week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/PageableUtil.java b/week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/PageableUtil.java similarity index 100% rename from week03/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/PageableUtil.java rename to week03/yonghyun/dbendpagination/src/main/java/com/codingbottle/dbendpagination/global/util/PageableUtil.java diff --git a/week03/dbendpagination/src/main/resources/application.properties b/week03/yonghyun/dbendpagination/src/main/resources/application.properties similarity index 100% rename from week03/dbendpagination/src/main/resources/application.properties rename to week03/yonghyun/dbendpagination/src/main/resources/application.properties diff --git a/week03/dbendpagination/src/main/resources/db.md b/week03/yonghyun/dbendpagination/src/main/resources/db.md similarity index 100% rename from week03/dbendpagination/src/main/resources/db.md rename to week03/yonghyun/dbendpagination/src/main/resources/db.md diff --git a/week03/dbendpagination/src/test/java/com/codingbottle/dbendpagination/DbendpaginationApplicationTests.java b/week03/yonghyun/dbendpagination/src/test/java/com/codingbottle/dbendpagination/DbendpaginationApplicationTests.java similarity index 100% rename from week03/dbendpagination/src/test/java/com/codingbottle/dbendpagination/DbendpaginationApplicationTests.java rename to week03/yonghyun/dbendpagination/src/test/java/com/codingbottle/dbendpagination/DbendpaginationApplicationTests.java