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
595 changes: 595 additions & 0 deletions docs/code-style/solid-connection-intellij-scheme.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ public record GpaResponse(
double gpaCriteria,
String gpaReportUrl
) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public record GpaScoreResponse(
VerifyStatus verifyStatus,
String rejectedReason
) {

public static GpaScoreResponse from(GpaScore gpaScore) {
return new GpaScoreResponse(
gpaScore.getId(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ public record GpaScoreSearchResponse(
GpaScoreStatusResponse gpaScoreStatusResponse,
SiteUserResponse siteUserResponse
) {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.example.solidconnection.admin.dto;

import com.example.solidconnection.common.VerifyStatus;

import java.time.ZonedDateTime;

public record GpaScoreStatusResponse(
Expand All @@ -12,4 +11,5 @@ public record GpaScoreStatusResponse(
ZonedDateTime createdAt,
ZonedDateTime updatedAt
) {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.example.solidconnection.admin.dto;

import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.application.dto.validation.RejectedReasonRequired;
import com.example.solidconnection.common.VerifyStatus;
import jakarta.validation.constraints.NotNull;

@RejectedReasonRequired
Expand All @@ -18,4 +18,5 @@ public record GpaScoreUpdateRequest(

String rejectedReason
) implements ScoreUpdateRequest {

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ public record LanguageTestResponse(
String languageTestScore,
String languageTestReportUrl
) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public record LanguageTestScoreResponse(
VerifyStatus verifyStatus,
String rejectedReason
) {

public static LanguageTestScoreResponse from(LanguageTestScore languageTestScore) {
return new LanguageTestScoreResponse(
languageTestScore.getId(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ public record LanguageTestScoreSearchResponse(
LanguageTestScoreStatusResponse languageTestScoreStatusResponse,
SiteUserResponse siteUserResponse
) {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.example.solidconnection.admin.dto;

import com.example.solidconnection.common.VerifyStatus;

import java.time.ZonedDateTime;

public record LanguageTestScoreStatusResponse(
Expand All @@ -12,4 +11,5 @@ public record LanguageTestScoreStatusResponse(
ZonedDateTime createdAt,
ZonedDateTime updatedAt
) {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.example.solidconnection.admin.dto;

import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.application.dto.validation.RejectedReasonRequired;
import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.university.domain.LanguageTestType;
import jakarta.validation.constraints.NotNull;

Expand All @@ -19,4 +19,5 @@ public record LanguageTestScoreUpdateRequest(

String rejectedReason
) implements ScoreUpdateRequest {

}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.example.solidconnection.admin.dto;

import com.example.solidconnection.common.VerifyStatus;

import java.time.LocalDate;

public record ScoreSearchCondition(
VerifyStatus verifyStatus,
String nickname,
LocalDate createdAt) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.example.solidconnection.common.VerifyStatus;

public interface ScoreUpdateRequest {

VerifyStatus verifyStatus();

String rejectedReason();
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ public record SiteUserResponse(
String nickname,
String profileImageUrl
) {

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.example.solidconnection.admin.service;

import static com.example.solidconnection.common.exception.ErrorCode.GPA_SCORE_NOT_FOUND;

import com.example.solidconnection.admin.dto.GpaScoreResponse;
import com.example.solidconnection.admin.dto.GpaScoreSearchResponse;
import com.example.solidconnection.admin.dto.GpaScoreUpdateRequest;
Expand All @@ -15,8 +17,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static com.example.solidconnection.common.exception.ErrorCode.GPA_SCORE_NOT_FOUND;

@RequiredArgsConstructor
@Service
public class AdminGpaScoreService {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.example.solidconnection.admin.service;

import static com.example.solidconnection.common.exception.ErrorCode.LANGUAGE_TEST_SCORE_NOT_FOUND;

import com.example.solidconnection.admin.dto.LanguageTestScoreResponse;
import com.example.solidconnection.admin.dto.LanguageTestScoreSearchResponse;
import com.example.solidconnection.admin.dto.LanguageTestScoreUpdateRequest;
Expand All @@ -15,8 +17,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static com.example.solidconnection.common.exception.ErrorCode.LANGUAGE_TEST_SCORE_NOT_FOUND;

@RequiredArgsConstructor
@Service
public class AdminLanguageTestScoreService {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.example.solidconnection.application.domain;

import static com.example.solidconnection.common.VerifyStatus.PENDING;

import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.siteuser.domain.SiteUser;
import jakarta.persistence.Column;
Expand All @@ -18,8 +20,6 @@
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import static com.example.solidconnection.common.VerifyStatus.PENDING;

@Getter
@NoArgsConstructor(access = lombok.AccessLevel.PROTECTED)
@DynamicUpdate
Expand Down Expand Up @@ -48,23 +48,23 @@ public class Application {
private LanguageTest languageTest;

@Setter
@Column(columnDefinition = "varchar(50) not null default 'PENDING'", name="verify_status")
@Column(columnDefinition = "varchar(50) not null default 'PENDING'", name = "verify_status")
@Enumerated(EnumType.STRING)
private VerifyStatus verifyStatus;

@Column(length = 100, name="nickname_for_apply")
@Column(length = 100, name = "nickname_for_apply")
private String nicknameForApply;

@Column(columnDefinition = "int not null default 1", name="update_count")
@Column(columnDefinition = "int not null default 1", name = "update_count")
private Integer updateCount;

@Column(length = 50, nullable = false, name="term")
@Column(length = 50, nullable = false, name = "term")
private String term;

@Column(name="is_delete")
@Column(name = "is_delete")
private boolean isDelete = false;

@Column(nullable = false , name = "first_choice_university_info_for_apply_id")
@Column(nullable = false, name = "first_choice_university_info_for_apply_id")
private long firstChoiceUnivApplyInfoId;

@Column(name = "second_choice_university_info_for_apply_id")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.example.solidconnection.application.domain.Application;
import com.example.solidconnection.siteuser.domain.SiteUser;
import com.example.solidconnection.university.domain.UnivApplyInfo;

import java.util.List;
import java.util.Objects;

Expand All @@ -13,15 +12,16 @@ public record ApplicantsResponse(
String region,
String country,
List<ApplicantResponse> applicants) {

public static ApplicantsResponse of(UnivApplyInfo univApplyInfo, List<Application> applications, SiteUser siteUser) {
return new ApplicantsResponse(
univApplyInfo.getKoreanName(),
univApplyInfo.getStudentCapacity(),
univApplyInfo.getUniversity().getRegion().getKoreanName(),
univApplyInfo.getUniversity().getCountry().getKoreanName(),
applications.stream()
.map(application -> ApplicantResponse.of(application, isUsers(application, siteUser)))
.toList());
.map(application -> ApplicantResponse.of(application, isUsers(application, siteUser)))
.toList());
}

private static boolean isUsers(Application application, SiteUser siteUser) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
public record ApplicationSubmissionResponse(
int applyCount
) {

public static ApplicationSubmissionResponse from(Application application) {
return new ApplicationSubmissionResponse(application.getUpdateCount());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ public record ApplicationsResponse(
List<ApplicantsResponse> firstChoice,
List<ApplicantsResponse> secondChoice,
List<ApplicantsResponse> thirdChoice) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ public record ApplyRequest(
@JsonProperty("universityChoiceRequest")
UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest
) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ public record UnivApplyInfoChoiceRequest(

@JsonProperty("thirdChoiceUniversityId")
Long thirdChoiceUnivApplyInfoId) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
Expand All @@ -14,6 +13,8 @@
public @interface RejectedReasonRequired {

String message() default "거절 사유 입력값이 올바르지 않습니다.";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.example.solidconnection.application.dto.validation;

import static com.example.solidconnection.common.exception.ErrorCode.REJECTED_REASON_REQUIRED;

import com.example.solidconnection.admin.dto.ScoreUpdateRequest;
import com.example.solidconnection.common.VerifyStatus;
import io.micrometer.common.util.StringUtils;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

import static com.example.solidconnection.common.exception.ErrorCode.REJECTED_REASON_REQUIRED;

public class RejectedReasonValidator implements ConstraintValidator<RejectedReasonRequired, ScoreUpdateRequest> {

private static final String REJECTED_REASON = "rejectedReason";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,39 @@
package com.example.solidconnection.application.repository;

import static com.example.solidconnection.common.exception.ErrorCode.APPLICATION_NOT_FOUND;

import com.example.solidconnection.application.domain.Application;
import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.common.exception.CustomException;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

import static com.example.solidconnection.common.exception.ErrorCode.APPLICATION_NOT_FOUND;

public interface ApplicationRepository extends JpaRepository<Application, Long> {

boolean existsByNicknameForApply(String nicknameForApply);

@Query("""
SELECT a
FROM Application a
WHERE (a.firstChoiceUnivApplyInfoId IN :univApplyInfoIds
OR a.secondChoiceUnivApplyInfoId IN :univApplyInfoIds
OR a.thirdChoiceUnivApplyInfoId IN :univApplyInfoIds)
AND a.verifyStatus = :status
AND a.term = :term
AND a.isDelete = false
""")
SELECT a
FROM Application a
WHERE (a.firstChoiceUnivApplyInfoId IN :univApplyInfoIds
OR a.secondChoiceUnivApplyInfoId IN :univApplyInfoIds
OR a.thirdChoiceUnivApplyInfoId IN :univApplyInfoIds)
AND a.verifyStatus = :status
AND a.term = :term
AND a.isDelete = false
""")
List<Application> findAllByUnivApplyInfoIds(@Param("univApplyInfoIds") List<Long> univApplyInfoIds, @Param("status") VerifyStatus status, @Param("term") String term);

@Query("""
SELECT a
FROM Application a
WHERE a.siteUserId = :siteUserId
AND a.term = :term
AND a.isDelete = false
""")
SELECT a
FROM Application a
WHERE a.siteUserId = :siteUserId
AND a.term = :term
AND a.isDelete = false
""")
Optional<Application> findBySiteUserIdAndTerm(@Param("siteUserId") long siteUserId, @Param("term") String term);

default Application getApplicationBySiteUserIdAndTerm(long siteUserId, String term) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
package com.example.solidconnection.application.service;

import static com.example.solidconnection.common.exception.ErrorCode.APPLICATION_NOT_APPROVED;

import com.example.solidconnection.application.domain.Application;
import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.application.dto.ApplicationsResponse;
import com.example.solidconnection.application.dto.ApplicantsResponse;
import com.example.solidconnection.application.dto.ApplicationsResponse;
import com.example.solidconnection.application.repository.ApplicationRepository;
import com.example.solidconnection.common.VerifyStatus;
import com.example.solidconnection.common.exception.CustomException;
import com.example.solidconnection.siteuser.domain.SiteUser;
import com.example.solidconnection.university.domain.UnivApplyInfo;
import com.example.solidconnection.university.repository.UnivApplyInfoRepository;
import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
Expand All @@ -23,8 +20,10 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static com.example.solidconnection.common.exception.ErrorCode.APPLICATION_NOT_APPROVED;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@RequiredArgsConstructor
@Service
Expand Down
Loading
Loading