Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
FROM openjdk:17-jdk-slim
FROM eclipse-temurin:17-jdk
COPY app.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.onebyone.kindergarten.domain.kindergatens.entity.Kindergarten;
import com.onebyone.kindergarten.domain.user.entity.User;
import com.onebyone.kindergarten.global.common.BaseEntity;
import com.onebyone.kindergarten.global.enums.ReportStatus;
import com.onebyone.kindergarten.global.enums.ReviewStatus;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -32,7 +33,10 @@ public class KindergartenInternshipReview extends BaseEntity {
private Kindergarten kindergarten; // 유치원

@Enumerated(EnumType.STRING)
private ReviewStatus status = ReviewStatus.ACCEPTED;
private ReviewStatus reviewStatus = ReviewStatus.ACCEPTED;

@Enumerated(EnumType.STRING)
private ReportStatus reportStatus = ReportStatus.YET;

@Column(name = "work_type", nullable = false, columnDefinition = "varchar(255) default ''")
private String workType; // 근무 형태
Expand Down Expand Up @@ -88,4 +92,9 @@ public void markAsDeleted() {
this.updatedAt = LocalDateTime.now();
this.deletedAt = LocalDateTime.now();
}

public void updateStatus(ReportStatus status) {
this.updatedAt = LocalDateTime.now();
this.reportStatus = status;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
public interface KindergartenInternshipReviewRepository extends JpaRepository<KindergartenInternshipReview, Long> {
boolean existsByUserAndKindergarten(User user, Kindergarten kindergarten);

List<KindergartenInternshipReview> findByKindergartenAndStatus(Kindergarten kindergarten, ReviewStatus status);
List<KindergartenInternshipReview> findByKindergartenAndReviewStatus(Kindergarten kindergarten, ReviewStatus status);

@Query("SELECT new com.onebyone.kindergarten.domain.kindergartenInternshipReview.dto.InternshipReviewDTO(" +
"r.id, u.id, u.nickname, k.id, k.name, r.oneLineComment, " +
Expand All @@ -30,7 +30,7 @@ public interface KindergartenInternshipReviewRepository extends JpaRepository<Ki
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL")
Page<InternshipReviewDTO> findReviewsWithUserInfo(
@Param("kindergartenId") Long kindergartenId,
Expand All @@ -49,7 +49,7 @@ Page<InternshipReviewDTO> findReviewsWithUserInfo(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.user.id = :userId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL " +
"ORDER BY r.createdAt DESC")
Page<InternshipReviewDTO> findMyReviews(
Expand All @@ -68,7 +68,7 @@ Page<InternshipReviewDTO> findMyReviews(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.workEnvironmentScore = :score " +
"AND r.deletedAt IS NULL")
Page<InternshipReviewDTO> findByWorkEnvironmentScore(
Expand All @@ -88,7 +88,7 @@ Page<InternshipReviewDTO> findByWorkEnvironmentScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.learningSupportScore = :score " +
"AND r.deletedAt IS NULL")
Page<InternshipReviewDTO> findByLearningSupportScore(
Expand All @@ -108,7 +108,7 @@ Page<InternshipReviewDTO> findByLearningSupportScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.instructionTeacherScore = :score " +
"AND r.deletedAt IS NULL")
Page<InternshipReviewDTO> findByInstructionTeacherScore(
Expand All @@ -128,7 +128,7 @@ Page<InternshipReviewDTO> findByInstructionTeacherScore(
"FROM kindergarten_internship_review r " +
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.status = :reviewStatus " +
"WHERE r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL")
Page<InternshipReviewDTO> findAllReviewsWithUserInfo(
@Param("reviewStatus") ReviewStatus reviewStatus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public Kindergarten createInternshipReview(CreateInternshipReviewRequestDTO requ
.learningSupportScore(request.getLearningSupportScore())
.instructionTeacherComment(request.getInstructionTeacherComment())
.instructionTeacherScore(request.getInstructionTeacherScore())
.status(ReviewStatus.ACCEPTED)
.reviewStatus(ReviewStatus.ACCEPTED)
.likeCount(0)
.shareCount(0)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.onebyone.kindergarten.global.common.BaseEntity;
import com.onebyone.kindergarten.domain.kindergatens.entity.Kindergarten;
import com.onebyone.kindergarten.domain.user.entity.User;
import com.onebyone.kindergarten.global.enums.ReportStatus;
import com.onebyone.kindergarten.global.enums.ReviewStatus;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -32,7 +33,10 @@ public class KindergartenWorkReview extends BaseEntity {
private Kindergarten kindergarten; // 유치원

@Enumerated(EnumType.STRING)
private ReviewStatus status = ReviewStatus.ACCEPTED;
private ReviewStatus reviewStatus = ReviewStatus.ACCEPTED;

@Enumerated(EnumType.STRING)
private ReportStatus reportStatus = ReportStatus.YET;

@Column(name = "work_type", nullable = false, columnDefinition = "varchar(255) default ''")
private String workType; // 근무 형태
Expand Down Expand Up @@ -108,4 +112,9 @@ public void markAsDeleted() {
this.updatedAt = LocalDateTime.now();
this.deletedAt = LocalDateTime.now();
}

public void updateStatus(ReportStatus status) {
this.updatedAt = LocalDateTime.now();
this.reportStatus = status;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
public interface KindergartenWorkReviewRepository extends JpaRepository<KindergartenWorkReview, Long> {
boolean existsByUserAndKindergarten(User user, Kindergarten kindergarten);

List<KindergartenWorkReview> findByKindergartenAndStatus(Kindergarten kindergarten, ReviewStatus status);
List<KindergartenWorkReview> findByKindergartenAndReviewStatus(Kindergarten kindergarten, ReviewStatus status);

@Query("SELECT new com.onebyone.kindergarten.domain.kindergartenWorkReview.dto.WorkReviewDTO(" +
"r.id, u.id, u.nickname, k.id, k.name, r.workYear, r.oneLineComment, " +
Expand All @@ -30,7 +30,7 @@ public interface KindergartenWorkReviewRepository extends JpaRepository<Kinderga
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findReviewsWithUserInfo(
@Param("kindergartenId") Long kindergartenId,
Expand All @@ -51,7 +51,7 @@ Page<WorkReviewDTO> findReviewsWithUserInfo(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.user.id = :userId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL " +
"ORDER BY r.createdAt DESC")
Page<WorkReviewDTO> findMyReviews(
Expand All @@ -72,7 +72,7 @@ Page<WorkReviewDTO> findMyReviews(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.benefitAndSalaryScore = :score " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findByBenefitAndSalaryScore(
Expand All @@ -94,7 +94,7 @@ Page<WorkReviewDTO> findByBenefitAndSalaryScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.workLifeBalanceScore = :score " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findByWorkLifeBalanceScore(
Expand All @@ -116,7 +116,7 @@ Page<WorkReviewDTO> findByWorkLifeBalanceScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.workEnvironmentScore = :score " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findByWorkEnvironmentScore(
Expand All @@ -138,7 +138,7 @@ Page<WorkReviewDTO> findByWorkEnvironmentScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.managerScore = :score " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findByManagerScore(
Expand All @@ -160,7 +160,7 @@ Page<WorkReviewDTO> findByManagerScore(
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.kindergarten.id = :kindergartenId " +
"AND r.status = :reviewStatus " +
"AND r.reviewStatus = :reviewStatus " +
"AND r.customerScore = :score " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findByCustomerScore(
Expand All @@ -182,7 +182,7 @@ Page<WorkReviewDTO> findByCustomerScore(
"FROM kindergarten_work_review r " +
"JOIN r.user u " +
"JOIN r.kindergarten k " +
"WHERE r.status = :reviewStatus " +
"WHERE r.reviewStatus = :reviewStatus " +
"AND r.deletedAt IS NULL")
Page<WorkReviewDTO> findAllReviewsWithUserInfo(
@Param("reviewStatus") ReviewStatus reviewStatus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public Kindergarten createWorkReview(CreateWorkReviewRequestDTO request, String
.managerScore(request.getManagerScore())
.customerComment(request.getCustomerComment())
.customerScore(request.getCustomerScore())
.status(ReviewStatus.ACCEPTED)
.reviewStatus(ReviewStatus.ACCEPTED)
.likeCount(0)
.shareCount(0)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class KindergartenInternshipReviewAggregateService {
private final KindergartenInternshipReviewAggregateRepository kindergartenInternshipReviewAggregateRepository;

public void updateOrCreateAggregate(Kindergarten kindergarten) {
List<KindergartenInternshipReview> acceptedReviews = kindergartenInternshipReviewRepository.findByKindergartenAndStatus(kindergarten, ReviewStatus.ACCEPTED);
List<KindergartenInternshipReview> acceptedReviews = kindergartenInternshipReviewRepository.findByKindergartenAndReviewStatus(kindergarten, ReviewStatus.ACCEPTED);

if (acceptedReviews.isEmpty()) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class KindergartenWorkReviewAggregateService {
private final KindergartenWorkReviewAggregateRepository workReviewAggregateRepository;

public void updateOrCreateAggregate(Kindergarten kindergarten) {
List<KindergartenWorkReview> acceptedReviews = workReviewRepository.findByKindergartenAndStatus(kindergarten, ReviewStatus.ACCEPTED);
List<KindergartenWorkReview> acceptedReviews = workReviewRepository.findByKindergartenAndReviewStatus(kindergarten, ReviewStatus.ACCEPTED);

if (acceptedReviews.isEmpty()) {
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package com.onebyone.kindergarten.domain.reports.enums;

public enum ReportTargetType { REVIEW, POST, COMMENT }
public enum ReportTargetType { WORK_REVIEW, INTERNSHIP_REVIEW, POST, COMMENT }
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import com.onebyone.kindergarten.domain.communityComments.repository.CommunityCommentRepository;
import com.onebyone.kindergarten.domain.communityPosts.entity.CommunityPost;
import com.onebyone.kindergarten.domain.communityPosts.repository.CommunityRepository;
import com.onebyone.kindergarten.domain.kindergartenInternshipReview.entity.KindergartenInternshipReview;
import com.onebyone.kindergarten.domain.kindergartenInternshipReview.repository.KindergartenInternshipReviewRepository;
import com.onebyone.kindergarten.domain.kindergartenWorkReview.entity.KindergartenWorkReview;
import com.onebyone.kindergarten.domain.kindergartenWorkReview.repository.KindergartenWorkReviewRepository;
import com.onebyone.kindergarten.domain.reports.enums.ReportTargetType;
import com.onebyone.kindergarten.domain.reports.repository.ReportRepository;
import com.onebyone.kindergarten.domain.reports.dto.request.CreateReportRequestDTO;
Expand All @@ -27,11 +31,12 @@
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class ReportService {

private final ReportRepository reportRepository;
private final UserService userService;
private final CommunityRepository communityRepository;
private final CommunityCommentRepository commentRepository;
private final KindergartenWorkReviewRepository kindergartenWorkReviewRepository;
private final KindergartenInternshipReviewRepository kindergartenInternshipReviewRepository;

/// 신고 생성 (사용자)
@Transactional
Expand All @@ -51,6 +56,7 @@ public ReportResponseDTO createReport(CreateReportRequestDTO dto, String email)
.reason(dto.getReason())
.status(ReportStatus.PENDING)
.build();

reportRepository.save(report);
return ReportResponseDTO.fromEntity(report);
}
Expand Down Expand Up @@ -117,8 +123,15 @@ private void _updateTargetStatus(ReportTargetType targetType, Long targetId, Rep
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_COMMENT_TARGET));
comment.updateStatus(status);
}
case REVIEW -> {
throw new BusinessException(ErrorCodes.REVIEW_REPORT_NOT_IMPLEMENTED);
case WORK_REVIEW -> {
KindergartenWorkReview kindergartenWorkReview = kindergartenWorkReviewRepository.findById(targetId)
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_WORK_REVIEW_TARGET));
kindergartenWorkReview.updateStatus(status);
}
case INTERNSHIP_REVIEW -> {
KindergartenInternshipReview kindergartenInternshipReview = kindergartenInternshipReviewRepository.findById(targetId)
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_INTERNSHIP_REVIEW_TARGET));
kindergartenInternshipReview.updateStatus(status);
}
default -> throw new BusinessException(ErrorCodes.INVALID_REPORT_TARGET_TYPE);
}
Expand All @@ -131,7 +144,10 @@ private void validateReportTarget(ReportTargetType targetType, Long targetId) {
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_POST_TARGET));
case COMMENT -> commentRepository.findById(targetId)
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_COMMENT_TARGET));
case REVIEW -> throw new BusinessException(ErrorCodes.REVIEW_REPORT_NOT_IMPLEMENTED);
case WORK_REVIEW -> kindergartenWorkReviewRepository.findById(targetId)
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_WORK_REVIEW_TARGET));
case INTERNSHIP_REVIEW -> kindergartenInternshipReviewRepository.findById(targetId)
.orElseThrow(() -> new BusinessException(ErrorCodes.INVALID_REPORT_INTERNSHIP_REVIEW_TARGET));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public enum ErrorCodes {
FAILED_EMAIL_CERTIFICATION_EXCEPTION("E0047", "인증되지 않은 이메일입니다."),
FAILED_AUTHORIZATION_EXCEPTION("E0048", "인증되지 않은 요청입니다."),
INCORRECT_KINDERGARTEN_EXCEPTION("E0049", "유치원이 일치하지 않습니다."),
INVALID_REPORT_INTERNSHIP_REVIEW_TARGET("E0013", "존재하지 않는 실습 신고 리뷰입니다."),
INVALID_REPORT_WORK_REVIEW_TARGET("E0013", "존재하지 않는 근무 신고 리뷰입니다."),
INTERNAL_SERVER_ERROR("E9999","알 수 없는 에러 발생");

private final String code;
Expand Down