Skip to content

Commit 1a7fa89

Browse files
authored
Merge pull request #393 from GSM-MSG/feature/392-repository-duplicate
RedisRepository와 JpaRepository를 확실히 분리합니다
2 parents 67bc93f + eac793a commit 1a7fa89

File tree

15 files changed

+71
-38
lines changed

15 files changed

+71
-38
lines changed

sms-core/src/main/kotlin/team/msg/sms/common/util/FileUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ object FileUtil {
99

1010
fun String.isHWPCorrectExtension() =
1111
when (this.lowercase()) {
12-
"hwp", "hwpx" -> true
12+
"hwp", "hwpx", "pdf" -> true
1313
else -> false
1414
}
1515

sms-core/src/main/kotlin/team/msg/sms/domain/authentication/usecase/QueryStudentAuthenticationFormDetailUseCase.kt

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class QueryStudentAuthenticationFormDetailUseCase(
2020
val markingBoard = markingBoardService.getMarkingBoardById(id = markingBoardId)
2121

2222
// 채점 전 상태인 학생 폼을 조회할시 채점 중으로 상태 변경
23-
if(markingBoard.markingBoardType == MarkingBoardType.PENDING_REVIEW) {
23+
if (markingBoard.markingBoardType == MarkingBoardType.PENDING_REVIEW) {
2424
markingBoardService.save(
2525
markingBoard.copy(
2626
id = markingBoard.id,
@@ -101,18 +101,19 @@ class QueryStudentAuthenticationFormDetailUseCase(
101101
selectorSectionValues: List<SelectorSectionValue>,
102102
studentId: UUID
103103
): List<StudentAuthenticationFormResponseData.FieldSet> {
104-
return authenticationFieldService.getAuthenticationFieldsByGroupId(groupId)
104+
//groupId로 필드 데이터 조회 후 필드 Id와 studentId로 user가 입력한 데이터 조회
105+
val userFormValues = authenticationFieldService.getAuthenticationFieldsByGroupId(groupId)
105106
.flatMap { authenticationField ->
106-
val userFormValues =
107-
userFormValueService.getUserFormValueListByFieldIdAndStudentId(authenticationField.id, studentId)
108-
val setIds = userFormValues.map { it.setId }.distinct()
109-
setIds.map { setId ->
110-
StudentAuthenticationFormResponseData.FieldSet(
111-
setId = setId,
112-
values = buildFields(userFormValues, setId, selectorSectionValues)
113-
)
114-
}
107+
userFormValueService.getUserFormValueListByFieldIdAndStudentId(authenticationField.id, studentId)
115108
}
109+
110+
// setId별로 그룹화하여 FieldSet 생성
111+
return userFormValues.groupBy { it.setId }.map { (setId, values) ->
112+
StudentAuthenticationFormResponseData.FieldSet(
113+
setId = setId,
114+
values = buildFields(values, setId, selectorSectionValues)
115+
)
116+
}
116117
}
117118

118119
private fun buildFields(

sms-core/src/main/kotlin/team/msg/sms/domain/student/usecase/FindAllUseCase.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ class FindAllUseCase(
2020
private val securityService: SecurityService
2121
) {
2222
@Transactional
23-
@Cacheable(
24-
value = ["StudentInfoListResponseData"],
25-
key = "#root.target.generateCacheKey(#page, #size)",
26-
cacheManager = "contentCacheManager",
27-
)
23+
// @Cacheable(
24+
// value = ["StudentInfoListResponseData"],
25+
// key = "#root.target.generateCacheKey(#page, #size)",
26+
// cacheManager = "contentCacheManager",
27+
// )
2828
fun execute(page: Int, size: Int, filtersData: FiltersRequestData): StudentInfoListResponseData {
2929
val students = studentService.getStudents()
3030
val techStacks = techStackService.getAllTechStack()

sms-infrastructure/src/main/resources/application.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ spring:
1818
host: ${REDIS_HOST}
1919
port: ${REDIS_PORT}
2020

21+
data:
22+
jpa:
23+
repositories:
24+
bootstrap-mode: deferred
25+
2126
servlet:
2227
multipart:
2328
max-file-size: 50MB
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package team.msg.sms.global.config
2+
3+
import org.springframework.context.annotation.ComponentScan
4+
import org.springframework.context.annotation.Configuration
5+
import org.springframework.context.annotation.FilterType
6+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories
7+
8+
9+
@Configuration
10+
@EnableJpaRepositories(
11+
basePackages = [
12+
"team.msg.sms.persistence.authentication.repository",
13+
"team.msg.sms.persistence.certificate.repository",
14+
"team.msg.sms.persistence.file.repository",
15+
"team.msg.sms.persistence.image.repository",
16+
"team.msg.sms.persistence.languagecertificate.repository",
17+
"team.msg.sms.persistence.major.repository",
18+
"team.msg.sms.persistence.prize.repository",
19+
"team.msg.sms.persistence.project.repository",
20+
"team.msg.sms.persistence.region.repository",
21+
"team.msg.sms.persistence.student.repository",
22+
"team.msg.sms.persistence.teacher.repository",
23+
"team.msg.sms.persistence.techstack.repository",
24+
"team.msg.sms.persistence.user.repository",
25+
],
26+
excludeFilters = [ComponentScan.Filter(
27+
type = FilterType.ASPECTJ,
28+
pattern = ["team.msg.sms.persistence.auth.repository.RefreshTokenRepository", "team.msg.sms.persistence.student.redisRepository.*"]
29+
)]
30+
)
31+
class JpaConfig

sms-persistence/src/main/kotlin/team/msg/sms/global/config/RedisConfig.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ import org.springframework.data.redis.repository.configuration.EnableRedisReposi
1212
import java.time.Duration
1313

1414
@Configuration
15-
@EnableRedisRepositories(enableKeyspaceEvents = RedisKeyValueAdapter.EnableKeyspaceEvents.ON_STARTUP)
15+
@EnableRedisRepositories(
16+
enableKeyspaceEvents = RedisKeyValueAdapter.EnableKeyspaceEvents.ON_STARTUP,
17+
basePackages = ["team.msg.sms.persistence.auth.repository", "team.msg.sms.persistence.student.redisRepository"]
18+
)
1619
class RedisConfig(
17-
18-
@Value("\${spring.redis.host}")
19-
private val redisHost: String,
20-
21-
@Value("\${spring.redis.port}")
22-
private val redisPort: Int
20+
@Value("\${spring.redis.host}") private val redisHost: String,
21+
@Value("\${spring.redis.port}") private val redisPort: Int
2322
) {
2423

2524
@Bean

sms-persistence/src/main/kotlin/team/msg/sms/persistence/auth/repository/RefreshTokenRepository.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package team.msg.sms.persistence.auth.repository
22

3-
import org.springframework.data.jpa.repository.JpaRepository
43
import org.springframework.data.repository.CrudRepository
54
import org.springframework.stereotype.Repository
65
import team.msg.sms.persistence.auth.entity.RefreshTokenEntity

sms-persistence/src/main/kotlin/team/msg/sms/persistence/authentication/UserFormValuePersistenceAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class UserFormValuePersistenceAdapter(
1616
private val jpaQueryFactory: JPAQueryFactory
1717
) : UserFormValuePort {
1818
override fun queryUserFormValueListByFieldIdAndStudentId(fieldId: UUID, studentId: UUID): List<UserFormValue> {
19-
return userFormValueRepository.findAllByAuthenticationFieldIdAndCreatedBy(fieldId, studentId).map { it.toDomain() }
19+
return userFormValueRepository.findAllByAuthenticationFieldIdAndCreatedByOrderByCreatedAt(fieldId, studentId).map { it.toDomain() }
2020
}
2121
override fun existsUserFormValueBySetIds(setIds: List<UUID>): Boolean {
2222
val qUserFormValue = QUserFormValueJpaEntity.userFormValueJpaEntity

sms-persistence/src/main/kotlin/team/msg/sms/persistence/authentication/repository/UserFormValueRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import java.util.UUID
77

88
@Repository
99
interface UserFormValueRepository : CrudRepository<UserFormValueJpaEntity, UUID> {
10-
fun findAllByAuthenticationFieldIdAndCreatedBy(fieldId: UUID, createdBy: UUID): List<UserFormValueJpaEntity>
10+
fun findAllByAuthenticationFieldIdAndCreatedByOrderByCreatedAt(fieldId: UUID, createdBy: UUID): List<UserFormValueJpaEntity>
1111
}

sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/FilePersistenceAdapter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import org.springframework.stereotype.Component
44
import team.msg.sms.domain.file.model.File
55
import team.msg.sms.domain.file.model.FileType
66
import team.msg.sms.domain.file.spi.FilePort
7-
import team.msg.sms.persistence.file.Repository.FileRepository
8-
import team.msg.sms.persistence.file.Repository.FileRepositoryCustom
7+
import team.msg.sms.persistence.file.repository.FileRepository
8+
import team.msg.sms.persistence.file.repository.FileRepositoryCustom
99
import team.msg.sms.persistence.file.mapper.toDomain
1010
import team.msg.sms.persistence.file.mapper.toEntity
1111
import java.util.*

sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/Repository/FileRepository.kt renamed to sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/repository/FileRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package team.msg.sms.persistence.file.Repository
1+
package team.msg.sms.persistence.file.repository
22

33
import org.springframework.data.repository.CrudRepository
44
import org.springframework.stereotype.Repository

sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/Repository/FileRepositoryCustom.kt renamed to sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/repository/FileRepositoryCustom.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package team.msg.sms.persistence.file.Repository
1+
package team.msg.sms.persistence.file.repository
22

3-
import org.springframework.data.repository.query.Param
43
import team.msg.sms.persistence.file.entity.FileJpaEntity
54
import java.util.*
65

sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/Repository/FileRepositoryImpl.kt renamed to sms-persistence/src/main/kotlin/team/msg/sms/persistence/file/repository/FileRepositoryImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package team.msg.sms.persistence.file.Repository
1+
package team.msg.sms.persistence.file.repository
22

33
import com.querydsl.jpa.impl.JPAQueryFactory
44
import org.springframework.stereotype.Repository

sms-persistence/src/main/kotlin/team/msg/sms/persistence/student/StudentLinkPersistenceAdapter.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import team.msg.sms.domain.student.model.StudentLink
55
import team.msg.sms.domain.student.spi.StudentLinkPort
66
import team.msg.sms.persistence.student.mapper.toDomain
77
import team.msg.sms.persistence.student.mapper.toEntity
8-
import team.msg.sms.persistence.student.repository.StudentJpaRepository
9-
import team.msg.sms.persistence.student.repository.StudentLinkRepository
8+
import team.msg.sms.persistence.student.redisRepository.StudentLinkRepository
109
import java.util.*
1110

1211
@Component
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package team.msg.sms.persistence.student.repository
1+
package team.msg.sms.persistence.student.redisRepository
22

33
import org.springframework.data.repository.CrudRepository
44
import org.springframework.stereotype.Repository
55
import team.msg.sms.persistence.student.entity.StudentLinkEntity
66

77
@Repository
88
interface StudentLinkRepository : CrudRepository<StudentLinkEntity, Long> {
9-
fun existsByToken(token: String): Boolean
10-
fun findByToken(token: String): StudentLinkEntity?
9+
fun existsByToken(token: String): Boolean
10+
fun findByToken(token: String): StudentLinkEntity?
1111
}

0 commit comments

Comments
 (0)