Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2aef41d
build: QueryDsl 설정 적용
starwook Dec 19, 2024
341fe24
build: QueryDsl Qclass에 checkStyle이 적용되지 않도록 수정
starwook Dec 19, 2024
5fe9331
build: Qclass 생성 경로 수정
starwook Dec 19, 2024
0ef5098
build: compileQueryDsl 을 수행하는 플러그인 제거
starwook Dec 19, 2024
a149af4
build: QueryDsl 사용을 위한 JpaQueryFactory를 빈으로 등록
starwook Dec 20, 2024
9a2e04b
refactor: 문제의 댓글을 가져오는 쿼리 메소드를 QueryDsl로 수정
starwook Dec 20, 2024
bc54855
refactor: QuestionRepository을 제네릭 기반으로 설정하여 재사용성 향상
starwook Dec 20, 2024
c863dd1
style: View - 면접식 문제 페이지 변수 수정
starwook Dec 20, 2024
82599c1
refactor: MajorDescriptiveQuestion의 findAllSortedByIfApproved()메소드를 q…
starwook Dec 22, 2024
3c946f8
refactor: Levels, Category, Approved에 따른 BooleanBuilder 만드는 로직을 인터페이스…
starwook Dec 22, 2024
642664d
refactor: MajorMultipleChoiceQuestionJpaRepository에서 쓰이지 않는 쿼리 메소드 제거
starwook Dec 22, 2024
3fd246c
refactor: MajorMultipleChoiceDbService 삭제
starwook Dec 22, 2024
f6b0dd3
refactor: MajorMultipleChoiceQuestionJpaRepository의 모든 커스텀 메소드를 Major…
starwook Dec 22, 2024
5b6f557
refactor: QuestionQueryDslMaker가 Question에 국한되지 않도록 제네릭의 범위를 수정
starwook Dec 22, 2024
51f5945
refactor: LicenseMultipleChoiceQuestionJpaRepository를 제거
starwook Dec 22, 2024
9474828
style: 패키지 구조 수정
starwook Dec 22, 2024
7b08e18
refactor: QuestionRepository가 제네릭 기반으로 수행되지 않도록 수정
starwook Dec 22, 2024
a02c432
refactor: QuestionRepositoryService, QuestionRepository이 제네릭이 아닌 Ques…
starwook Dec 23, 2024
68fc0ae
build: Core 모듈이 JPA에 의존하도록 수정
starwook Dec 23, 2024
5e818e7
build: JPA가 모든 모듈에 적용되도록 수정
starwook Dec 23, 2024
974404d
refactor: QuesitonRepostoryService를 삭제하고 코어모듈이 JpaRepository의 기본 메소드를…
starwook Dec 23, 2024
633f1c5
refactor: Core모듈이 Comment,Member의 JpaRepository를 사용하도록 수정
starwook Dec 23, 2024
483dabe
style: Dsl을 사용하는 Repository가 클래스에 Dsl 키워드를 포함하도록 수정
starwook Dec 23, 2024
0a9a2d4
style: 코드 컨벤션 적용
starwook Dec 23, 2024
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,6 @@ out/

### VS Code ###
.vscode/

### QClass
**/build/generated/sources/annotationProcessor/**
2 changes: 1 addition & 1 deletion application/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ dependencies {
implementation(project(":persistence"))
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

}

test {
Expand Down
13 changes: 0 additions & 13 deletions application/src/main/java/com/comssa/api/config/JpaConfig.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public class AdminLicenseQuestionController {
public ResponseEntity<List<ResponseMultipleChoiceQuestionDto>> makeLicenseQuestionOfSession(
@RequestBody RequestMakeLicenseMultipleChoiceQuestionDto requestMakeLicenseMultipleChoiceQuestionDto) {
return ResponseEntity.ok(
adminLicenseQuestionMakeService.makeLicenseNormalQuestion(requestMakeLicenseMultipleChoiceQuestionDto));
adminLicenseQuestionMakeService
.makeLicenseMultipleChoiceQuestion(requestMakeLicenseMultipleChoiceQuestionDto));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import com.comssa.persistence.question.domain.common.QuestionLevel;
import com.comssa.persistence.question.domain.license.LicenseCategory;
import com.comssa.persistence.question.domain.license.LicenseSession;
import com.comssa.persistence.question.repository.LicenseMultipleChoiceQuestionRepository;
import com.comssa.persistence.question.repository.LicenseSessionRepository;
import com.comssa.persistence.question.repository.MajorMultipleChoiceQuestionRepository;
import com.comssa.persistence.question.repository.jpa.LicenseSessionRepository;
import com.comssa.persistence.question.repository.querydsl.LicenseMultipleChoiceQuestionDslRepository;
import com.comssa.persistence.question.repository.querydsl.MajorMultipleChoiceQuestionDslRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

Expand All @@ -22,8 +22,8 @@
@RequiredArgsConstructor
public class BasicQuestionSelectorService implements QuestionSelectorService {
private final LicenseSessionRepository licenseSessionRepository;
private final MajorMultipleChoiceQuestionRepository majorMultipleChoiceQuestionRepository;
private final LicenseMultipleChoiceQuestionRepository licenseMultipleChoiceQuestionRepository;
private final MajorMultipleChoiceQuestionDslRepository majorMultipleChoiceQuestionDslRepository;
private final LicenseMultipleChoiceQuestionDslRepository licenseMultipleChoiceQuestionDslRepository;

@Override
public List<String> getCategories() {
Expand Down Expand Up @@ -56,10 +56,11 @@ public List<LicenseSession> getLicenseSessions(LicenseCategory licenseCategory)
public List<? extends Question> getAllQuestions(List<QuestionCategory> questionCategories, boolean multipleChoice) {
List<Question> questions = new ArrayList<>();
if (multipleChoice) {
questions.addAll(licenseMultipleChoiceQuestionRepository.findAllByQuestionCategoriesFetchChoices(
questionCategories));
questions.addAll(majorMultipleChoiceQuestionRepository.findAllByQuestionCategoriesFetchChoices(
questions.addAll(licenseMultipleChoiceQuestionDslRepository.findAllWhereQuestionCategories(
questionCategories));
questions.addAll(majorMultipleChoiceQuestionDslRepository
.findAllWhereQuestionCategories(
questionCategories));
}
return questions;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.comssa.api.question.service.rest.common.implement;

import com.comssa.persistence.question.domain.common.QuestionChoice;
import com.comssa.persistence.question.repository.QuestionChoiceRepository;
import com.comssa.persistence.question.repository.jpa.QuestionChoiceRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
import com.comssa.persistence.question.domain.major.MajorMultipleChoiceQuestion;
import com.comssa.persistence.question.domain.major.MajorQuestionChoice;
import com.comssa.persistence.question.dto.common.request.RequestMakeMultipleChoiceQuestionDto;
import com.comssa.persistence.question.repository.LicenseQuestionChoiceRepository;
import com.comssa.persistence.question.repository.MajorQuestionChoiceRepository;
import com.comssa.persistence.question.repository.jpa.QuestionChoiceRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -18,13 +17,12 @@
@RequiredArgsConstructor
@Transactional
public class QuestionChoiceService {
private final MajorQuestionChoiceRepository majorQuestionChoiceRepository;
private final LicenseQuestionChoiceRepository licenseQuestionChoiceRepository;
private final QuestionChoiceRepository questionChoiceRepository;

public void saveWith(
RequestMakeMultipleChoiceQuestionDto dto,
LicenseMultipleChoiceQuestion licenseMultipleChoiceQuestion) {
licenseQuestionChoiceRepository.saveAll(dto.getQuestionChoices()
questionChoiceRepository.saveAll(dto.getQuestionChoices()
.stream()
.map(qc -> LicenseQuestionChoice.from(qc, licenseMultipleChoiceQuestion))
.collect(Collectors.toList()));
Expand All @@ -33,7 +31,7 @@ public void saveWith(
public void saveWith(
RequestMakeMultipleChoiceQuestionDto dto,
MajorMultipleChoiceQuestion majorMultipleChoiceQuestion) {
majorQuestionChoiceRepository.saveAll(dto.getQuestionChoices()
questionChoiceRepository.saveAll(dto.getQuestionChoices()
.stream()
.map(qc -> MajorQuestionChoice.fromMajorQuestion(qc, majorMultipleChoiceQuestion))
.collect(Collectors.toList()));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.comssa.api.question.service.rest.common.implement;

import com.comssa.persistence.question.domain.common.QuestionChoice;
import com.comssa.persistence.question.repository.QuestionChoiceRepository;
import com.comssa.persistence.question.repository.jpa.QuestionChoiceRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.comssa.api.question.service.rest.common.FileUploadService;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.service.QuestionRepositoryService;
import com.comssa.persistence.question.repository.jpa.QuestionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -13,7 +13,7 @@
@RequiredArgsConstructor
public class QuestionUpdateService
implements com.comssa.api.question.service.rest.common.QuestionUpdateService<Question> {
private final QuestionRepositoryService questionRepositoryService;
private final QuestionRepository questionRepository;
private final FileUploadService fileUploadService;

@Override
Expand All @@ -32,11 +32,11 @@ public String updateImage(Long questionId, MultipartFile image) {

@Override
public void deleteQuestion(Long questionId) {
questionRepositoryService.delete(questionId);
questionRepository.deleteById(questionId);
}

@Override
public Question findById(Long questionId) {
return questionRepositoryService.findById(questionId);
return questionRepository.findById(questionId).get();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.domain.license.LicenseMultipleChoiceQuestion;
import com.comssa.persistence.question.repository.LicenseMultipleChoiceQuestionRepository;
import com.comssa.persistence.question.repository.querydsl.LicenseMultipleChoiceQuestionDslRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -18,7 +18,8 @@
@Transactional
@RequiredArgsConstructor
public class AdminLicenseQuestionGetService implements LicenseQuestionGetService {
private final LicenseMultipleChoiceQuestionRepository licenseMultipleChoiceQuestionRepository;

private final LicenseMultipleChoiceQuestionDslRepository licenseMultipleChoiceQuestionDslRepository;
private final QuestionClassifyByCategoryService questionClassifyByCategoryService;

/**
Expand All @@ -29,8 +30,8 @@ public class AdminLicenseQuestionGetService implements LicenseQuestionGetService
@Override
public Map<QuestionCategory, List<Question>> getClassifiedLicenseMultipleChoiceQuestion(
Long sessionId) {
List<LicenseMultipleChoiceQuestion> licenseMultipleChoiceQuestions = licenseMultipleChoiceQuestionRepository
.findAllByLicenseSessionIdFetchChoicesOrderByApproved(sessionId);
List<LicenseMultipleChoiceQuestion> licenseMultipleChoiceQuestions = licenseMultipleChoiceQuestionDslRepository
.findAllWhereLicenseSessionId(sessionId);
return questionClassifyByCategoryService.classifyQuestionByCategoryOrdered(licenseMultipleChoiceQuestions);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import com.comssa.persistence.question.dto.common.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.common.response.ResponseQuestionDto;
import com.comssa.persistence.question.dto.license.request.RequestMakeLicenseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.repository.LicenseMultipleChoiceQuestionRepository;
import com.comssa.persistence.question.repository.jpa.QuestionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -22,10 +22,10 @@
@RequiredArgsConstructor
public class AdminLicenseQuestionMakeService {
private final LicenseSessionService licenseSessionService;
private final LicenseMultipleChoiceQuestionRepository licenseMultipleChoiceQuestionRepository;
private final QuestionRepository questionRepository;
private final QuestionChoiceService questionChoiceService;

public List<ResponseMultipleChoiceQuestionDto> makeLicenseNormalQuestion(
public List<ResponseMultipleChoiceQuestionDto> makeLicenseMultipleChoiceQuestion(
RequestMakeLicenseMultipleChoiceQuestionDto requestMakeLicenseMultipleChoiceQuestionDto) {
LicenseSession licenseSession = licenseSessionService.getLicenseSession(
requestMakeLicenseMultipleChoiceQuestionDto.getLicenseSession(),
Expand All @@ -34,18 +34,18 @@ public List<ResponseMultipleChoiceQuestionDto> makeLicenseNormalQuestion(
.getQuestions();
return questions
.stream()
.map(q -> saveNormalLicenseQuestion(q, licenseSession,
.map(q -> saveLicenseMultipleChoiceQuestion(q, licenseSession,
requestMakeLicenseMultipleChoiceQuestionDto.getLicenseCategory()))
.collect(Collectors.toList());
}

private ResponseMultipleChoiceQuestionDto saveNormalLicenseQuestion(
private ResponseMultipleChoiceQuestionDto saveLicenseMultipleChoiceQuestion(
RequestMakeMultipleChoiceQuestionDto requestMakeMultipleChoiceQuestionDto,
LicenseSession licenseSession,
LicenseCategory licenseCategory) {
LicenseMultipleChoiceQuestion licenseMultipleChoiceQuestion = LicenseMultipleChoiceQuestion.makeWithDto(
requestMakeMultipleChoiceQuestionDto, licenseSession, licenseCategory);
licenseMultipleChoiceQuestionRepository.save(licenseMultipleChoiceQuestion);
questionRepository.save(licenseMultipleChoiceQuestion);
questionChoiceService.saveWith(requestMakeMultipleChoiceQuestionDto, licenseMultipleChoiceQuestion);
return ResponseQuestionDto.from(licenseMultipleChoiceQuestion);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import com.comssa.persistence.question.domain.license.LicenseCategory;
import com.comssa.persistence.question.domain.license.LicenseSession;
import com.comssa.persistence.question.repository.LicenseSessionRepository;
import com.comssa.persistence.question.repository.jpa.LicenseSessionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -14,20 +14,20 @@
@RequiredArgsConstructor
@Transactional
public class LicenseSessionService {
private final LicenseSessionRepository licenseSessionRepository;
private final LicenseSessionRepository licenseSessionRepository;

public LicenseSession getLicenseSession(String session, LicenseCategory licenseCategory) {
Optional<LicenseSession> licenseSession = licenseSessionRepository.findLicenseSessionByContent(session,
licenseCategory);
if (licenseSession.isPresent()) {
return licenseSession.get();
}
LicenseSession newLicenseSession = LicenseSession.from(session, licenseCategory);
licenseSessionRepository.save(newLicenseSession);
return newLicenseSession;
}
public LicenseSession getLicenseSession(String session, LicenseCategory licenseCategory) {
Optional<LicenseSession> licenseSession = licenseSessionRepository.findLicenseSessionByContent(session,
licenseCategory);
if (licenseSession.isPresent()) {
return licenseSession.get();
}
LicenseSession newLicenseSession = LicenseSession.from(session, licenseCategory);
licenseSessionRepository.save(newLicenseSession);
return newLicenseSession;
}

public LicenseSession getLicenseSessionById(Long licenseSessionId) {
return licenseSessionRepository.findById(licenseSessionId).orElse(null);
}
public LicenseSession getLicenseSessionById(Long licenseSessionId) {
return licenseSessionRepository.findById(licenseSessionId).orElse(null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.domain.license.LicenseMultipleChoiceQuestion;
import com.comssa.persistence.question.repository.LicenseMultipleChoiceQuestionRepository;
import com.comssa.persistence.question.repository.querydsl.LicenseMultipleChoiceQuestionDslRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -19,14 +19,14 @@
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class UserLicenseQuestionGetService implements LicenseQuestionGetService {
private final LicenseMultipleChoiceQuestionRepository licenseMultipleChoiceQuestionRepository;
private final LicenseMultipleChoiceQuestionDslRepository licenseMultipleChoiceQuestionDslRepository;
private final QuestionClassifyByCategoryService questionClassifyByCategoryService;

public Map<QuestionCategory, List<Question>> getClassifiedLicenseMultipleChoiceQuestion(
Long sessionId) {
List<LicenseMultipleChoiceQuestion> licenseMultipleChoiceQuestions = licenseMultipleChoiceQuestionRepository
.findAllByLicenseSessionIdFetchChoicesAndIfApproved(
sessionId);
List<LicenseMultipleChoiceQuestion> licenseMultipleChoiceQuestions = licenseMultipleChoiceQuestionDslRepository
.findAllWhereLicenseSessionIdAndIfApproved(
sessionId, true);
for (LicenseMultipleChoiceQuestion licenseMultipleChoiceQuestion : licenseMultipleChoiceQuestions) {
Collections.shuffle(licenseMultipleChoiceQuestion.getQuestionChoices());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
package com.comssa.api.question.service.rest.major.implement;

import com.comssa.persistence.question.domain.major.MajorMultipleChoiceQuestion;
import com.comssa.persistence.question.repository.jpa.MajorMultipleChoiceQuestionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.NoSuchElementException;

@Service
@RequiredArgsConstructor
@Transactional
public class AdminMajorMultipleChoiceQuestionUpdateService {
private final MajorMultipleChoiceQuestionDbService majorMultipleChoiceQuestionDBService;
private final MajorMultipleChoiceQuestionRepository majorMultipleChoiceQuestionRepository;

public MajorMultipleChoiceQuestion toggleCanBeShortAnswered(Long questionId) {
MajorMultipleChoiceQuestion majorMultipleChoiceQuestion = majorMultipleChoiceQuestionDBService
.findById(
questionId);
MajorMultipleChoiceQuestion majorMultipleChoiceQuestion = majorMultipleChoiceQuestionRepository
.findById(questionId)
.orElseThrow(NoSuchElementException::new);
majorMultipleChoiceQuestion.toggleCanBeShortAnswered();
return majorMultipleChoiceQuestion;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.domain.major.MajorDescriptiveQuestion;
import com.comssa.persistence.question.domain.major.MajorMultipleChoiceQuestion;
import com.comssa.persistence.question.repository.MajorDescriptiveQuestionRepository;
import com.comssa.persistence.question.repository.querydsl.MajorDescriptiveDslRepository;
import com.comssa.persistence.question.repository.querydsl.MajorMultipleChoiceQuestionDslRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -19,9 +20,9 @@
@RequiredArgsConstructor
@Transactional
public class BasicAdminMajorQuestionClassifiedGetService implements AdminMajorQuestionClassifiedGetService {
private final MajorMultipleChoiceQuestionDbService majorMultipleChoiceQuestionDbService;
private final MajorDescriptiveQuestionRepository majorDescriptiveQuestionRepository;
private final QuestionClassifyByCategoryService questionClassifyByCategoryService;
private final MajorDescriptiveDslRepository majorDescriptiveQuestionChooseRepository;
private final MajorMultipleChoiceQuestionDslRepository majorMultipleChoiceQuestionDslRepository;

/**
* 관리자가 조회시 Approve됐는지 기준으로 정렬되며(false인 것부터),
Expand All @@ -31,15 +32,15 @@ public class BasicAdminMajorQuestionClassifiedGetService implements AdminMajorQu
*/
@Override
public Map<QuestionCategory, List<Question>> getClassifiedAllMajorMultipleChoiceQuestions() {
List<MajorMultipleChoiceQuestion> majorMultipleChoiceQuestions = majorMultipleChoiceQuestionDbService
.findAllFetchChoicesSortedByApproveAndShortAnswered();
List<MajorMultipleChoiceQuestion> majorMultipleChoiceQuestions = majorMultipleChoiceQuestionDslRepository
.findAllOrderByIfApprovedAsc();
return questionClassifyByCategoryService.classifyQuestionByCategoryOrdered(majorMultipleChoiceQuestions);
}

@Override
public Map<QuestionCategory, List<Question>> getClassifiedAllMajorDescriptiveQuestions() {
List<MajorDescriptiveQuestion> majorDescriptiveQuestions =
majorDescriptiveQuestionRepository.findAllSortedByIfApproved();
majorDescriptiveQuestionChooseRepository.findAllOrderByIfApprovedAsc();
return questionClassifyByCategoryService.classifyQuestionByCategoryOrdered(majorDescriptiveQuestions);
}
}
Loading
Loading