From 042e2b8c2217203e67a21f46896ee0a2912327dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=ED=95=B4=EC=B0=AC=5BVertical=20Service=20Dev1=5D?= Date: Sun, 26 Nov 2023 00:57:28 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Fix=20:=20QR=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B0=8F=20=EC=B6=9C=EC=84=9D=20=EC=B2=B4=ED=81=AC=20=ED=98=84?= =?UTF-8?q?=ED=99=A9=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AdminAttendanceController.kt | 17 +++- .../controller/AttendanceController.kt | 2 +- .../convertor/AttendanceConvertor.kt | 84 ++++++++++++------- .../cmc_be/attendance/dto/AttendanceReq.kt | 2 - .../cmc_be/attendance/dto/AttendanceRes.kt | 21 ++++- .../attendance/service/AttendanceService.kt | 16 ++-- .../attendance/service/QrCodeService.kt | 8 +- .../domain/attendance/entity/Attendance.kt | 6 +- .../attendance/entity/AttendanceCode.kt | 8 +- ...endanceStatus.kt => AttendanceCategory.kt} | 2 +- .../generation/entity/GenerationWeeksInfo.kt | 5 +- .../GenerationWeeksInfoRepository.kt | 2 + .../convertor/GenerationConvertor.kt | 5 +- .../cmc_be/generation/dto/GenerationReq.kt | 5 +- .../generation/service/GenerationService.kt | 2 +- 15 files changed, 122 insertions(+), 63 deletions(-) rename src/main/kotlin/com/example/cmc_be/domain/attendance/enums/{AttendanceStatus.kt => AttendanceCategory.kt} (87%) diff --git a/src/main/kotlin/com/example/cmc_be/attendance/controller/AdminAttendanceController.kt b/src/main/kotlin/com/example/cmc_be/attendance/controller/AdminAttendanceController.kt index 71125b1..dec44c9 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/controller/AdminAttendanceController.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/controller/AdminAttendanceController.kt @@ -4,7 +4,10 @@ import com.example.cmc_be.attendance.dto.AttendanceReq import com.example.cmc_be.attendance.dto.AttendanceRes import com.example.cmc_be.attendance.service.AttendanceService import com.example.cmc_be.attendance.service.QrCodeService +import com.example.cmc_be.common.exeption.BadRequestException import com.example.cmc_be.common.response.CommonResponse +import com.example.cmc_be.domain.attendance.exception.AttendanceErrorCode +import com.example.cmc_be.domain.generation.repository.GenerationWeeksInfoRepository import com.example.cmc_be.domain.user.entity.User import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.Parameter @@ -17,7 +20,8 @@ import org.springframework.web.bind.annotation.* @Tag(name = "ADMIN-03 Attendance 출석 관련 API") class AdminAttendanceController( private val qrCodeService: QrCodeService, - private val attendanceService: AttendanceService + private val attendanceService: AttendanceService, + private val generationWeeksInfoRepository: GenerationWeeksInfoRepository ) { @PostMapping("/code") @Operation(summary = "03-01 출석용 코드 생성(중복 생성 가능)") @@ -25,7 +29,16 @@ class AdminAttendanceController( @AuthenticationPrincipal user: User, @RequestBody gernerateCode: AttendanceReq.GenerateCode ): CommonResponse { - return CommonResponse.onSuccess(qrCodeService.generateCode(gernerateCode)) + val generationWeeksInfo = generationWeeksInfoRepository.findFirstByGenerationAndWeek( + generation = gernerateCode.generation, week = gernerateCode.week + ) ?: throw BadRequestException(AttendanceErrorCode.CANNOT_ACCESS_ATEENDANCE) + + return CommonResponse.onSuccess( + qrCodeService.generateCode( + generationReq = gernerateCode, + generationWeeksInfo = generationWeeksInfo + ) + ) } @GetMapping("/code") diff --git a/src/main/kotlin/com/example/cmc_be/attendance/controller/AttendanceController.kt b/src/main/kotlin/com/example/cmc_be/attendance/controller/AttendanceController.kt index f4172f7..c0e9ec8 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/controller/AttendanceController.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/controller/AttendanceController.kt @@ -18,7 +18,7 @@ class AttendanceController( ) { @GetMapping("") @Operation(summary = "03-01 출석 현황 조회") - fun getAttendanceList(@AuthenticationPrincipal user: User): CommonResponse> { + fun getAttendanceList(@AuthenticationPrincipal user: User): CommonResponse { return CommonResponse.onSuccess(attendanceService.getAttendanceList(user)) } diff --git a/src/main/kotlin/com/example/cmc_be/attendance/convertor/AttendanceConvertor.kt b/src/main/kotlin/com/example/cmc_be/attendance/convertor/AttendanceConvertor.kt index 81c9af0..48bbd64 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/convertor/AttendanceConvertor.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/convertor/AttendanceConvertor.kt @@ -4,10 +4,12 @@ import com.example.cmc_be.attendance.dto.AttendanceRes import com.example.cmc_be.common.annotation.Convertor import com.example.cmc_be.domain.attendance.entity.Attendance import com.example.cmc_be.domain.attendance.entity.AttendanceCode +import com.example.cmc_be.domain.attendance.enums.AttendanceCategory import com.example.cmc_be.domain.attendance.enums.AttendanceHour -import com.example.cmc_be.domain.attendance.enums.AttendanceStatus import com.example.cmc_be.domain.generation.entity.GenerationWeeksInfo import com.example.cmc_be.domain.user.entity.User +import java.time.ZoneId +import java.time.ZonedDateTime @Convertor class AttendanceConverter { @@ -15,18 +17,34 @@ class AttendanceConverter { fun getAttendanceList( allGenerationWeeksInfo: List, userAllAttendanceData: Map> - ) = allGenerationWeeksInfo.map { - val week = it.week - val firstHour = - (userAllAttendanceData[week]?.find { it.attendanceHour == AttendanceHour.FIRST_HOUR })?.attendanceStatus - ?: AttendanceStatus.ABSENT - val secondHour = - (userAllAttendanceData[week]?.find { it.attendanceHour == AttendanceHour.SECOND_HOUR })?.attendanceStatus - ?: AttendanceStatus.ABSENT - AttendanceRes.AttendanceInfoDto( - week = week, - firstHour = firstHour, - secondHour = secondHour, + ): AttendanceRes.GetAttendances { + val attendances = allGenerationWeeksInfo.map { generationWeekInfo -> + val week = generationWeekInfo.week + val firstHour = + (userAllAttendanceData[week]?.find { it.attendanceHour == AttendanceHour.FIRST_HOUR })?.attendanceCategory + ?: AttendanceCategory.ABSENT + val secondHour = + (userAllAttendanceData[week]?.find { it.attendanceHour == AttendanceHour.SECOND_HOUR })?.attendanceCategory + ?: AttendanceCategory.ABSENT + val currentDateTime = ZonedDateTime.now(ZoneId.systemDefault()) + val currentDate = currentDateTime.toLocalDate() + + AttendanceRes.AttendanceInfoDto( + week = week, + firstHour = firstHour, + secondHour = secondHour, + isOffline = generationWeekInfo.isOffline, + enable = currentDate.isAfter(generationWeekInfo.date.minusDays(1L)) + ) + } + val enableAttendances = attendances.filter { it.enable } + return AttendanceRes.GetAttendances( + attendanceStatus = AttendanceRes.AttendanceStatus( + attendanceCount = enableAttendances.count { it.firstHour == AttendanceCategory.ATTENDANCE } + enableAttendances.count { it.secondHour == AttendanceCategory.ATTENDANCE }, + lateCount = enableAttendances.count { it.firstHour == AttendanceCategory.LATE } + enableAttendances.count { it.secondHour == AttendanceCategory.LATE }, + absentCount = enableAttendances.count { it.firstHour == AttendanceCategory.ABSENT } + enableAttendances.count { it.secondHour == AttendanceCategory.ABSENT }, + ), + attandances = attendances ) } @@ -36,31 +54,39 @@ class AttendanceConverter { allGeneration: List ) = allUsers.map { user -> val userAttandances = allAttendances.filter { it.user.id == user.id } + val attendances = allGeneration.map { generationInfo -> + val userAllAttendanceData = + userAttandances.filter { it.generationWeeksInfo.week == generationInfo.week } + val firstHour = + (userAllAttendanceData.find { it.attendanceHour == AttendanceHour.FIRST_HOUR })?.attendanceCategory + ?: AttendanceCategory.ABSENT + val secondHour = + (userAllAttendanceData.find { it.attendanceHour == AttendanceHour.SECOND_HOUR })?.attendanceCategory + ?: AttendanceCategory.ABSENT + AttendanceRes.AttendanceInfoDto( + week = generationInfo.week, + firstHour = firstHour, + secondHour = secondHour, + isOffline = generationInfo.isOffline, + enable = true + ) + } AttendanceRes.AllAttendanceInfoDto( name = user.name, role = user.role, nickname = user.nickname, - attandances = allGeneration.map { generationInfo -> - val userAllAttendanceData = - userAttandances.filter { it.generationWeeksInfo.week == generationInfo.week } - val firstHour = - (userAllAttendanceData.find { it.attendanceHour == AttendanceHour.FIRST_HOUR })?.attendanceStatus - ?: AttendanceStatus.ABSENT - val secondHour = - (userAllAttendanceData.find { it.attendanceHour == AttendanceHour.SECOND_HOUR })?.attendanceStatus - ?: AttendanceStatus.ABSENT - AttendanceRes.AttendanceInfoDto( - week = generationInfo.week, - firstHour = firstHour, - secondHour = secondHour - ) - } + attendanceStatus = AttendanceRes.AttendanceStatus( + attendanceCount = attendances.count { it.firstHour == AttendanceCategory.ATTENDANCE } + attendances.count { it.secondHour == AttendanceCategory.ATTENDANCE }, + lateCount = attendances.count { it.firstHour == AttendanceCategory.LATE } + attendances.count { it.secondHour == AttendanceCategory.LATE }, + absentCount = attendances.count { it.firstHour == AttendanceCategory.ABSENT } + attendances.count { it.secondHour == AttendanceCategory.ABSENT }, + ), + attandances = attendances ) } fun getCodeInfo(codeInfo: AttendanceCode): AttendanceRes.AttendanceCodeDto { return AttendanceRes.AttendanceCodeDto( - availableDate = codeInfo.availableDate, + availableDate = codeInfo.generationWeeksInfo.date, startTime = codeInfo.startTime, endTime = codeInfo.endTime, lateMinute = codeInfo.lateMinute diff --git a/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceReq.kt b/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceReq.kt index 7af68cd..a5db33e 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceReq.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceReq.kt @@ -1,7 +1,6 @@ package com.example.cmc_be.attendance.dto import io.swagger.v3.oas.annotations.media.Schema -import java.time.LocalDate import java.time.LocalTime class AttendanceReq { @@ -17,7 +16,6 @@ class AttendanceReq { val week: Int, @Schema(example = "1") val hour: Int, - val availableDate: LocalDate, val startTime: HourAndMinute, val endTime: HourAndMinute, @Schema(example = "15") diff --git a/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceRes.kt b/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceRes.kt index 59a65b1..062db25 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceRes.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/dto/AttendanceRes.kt @@ -1,15 +1,16 @@ package com.example.cmc_be.attendance.dto -import com.example.cmc_be.domain.attendance.enums.AttendanceStatus -import com.example.cmc_be.domain.user.enums.UserRole +import com.example.cmc_be.domain.attendance.enums.AttendanceCategory import java.time.LocalDate import java.time.LocalTime class AttendanceRes { data class AttendanceInfoDto( val week: Int, - val firstHour: AttendanceStatus, - val secondHour: AttendanceStatus + val firstHour: AttendanceCategory, + val secondHour: AttendanceCategory, + val isOffline: Boolean, + val enable: Boolean, ) data class AttendanceCodeDto( @@ -23,6 +24,18 @@ class AttendanceRes { val name: String, val role: String, val nickname: String, + val attendanceStatus: AttendanceStatus, val attandances: List ) + + data class GetAttendances( + val attendanceStatus: AttendanceStatus, + val attandances: List + ) + + data class AttendanceStatus( + val attendanceCount: Int, + val lateCount: Int, + val absentCount: Int + ) } \ No newline at end of file diff --git a/src/main/kotlin/com/example/cmc_be/attendance/service/AttendanceService.kt b/src/main/kotlin/com/example/cmc_be/attendance/service/AttendanceService.kt index d4b74e1..e6357ff 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/service/AttendanceService.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/service/AttendanceService.kt @@ -5,7 +5,7 @@ import com.example.cmc_be.attendance.dto.AttendanceReq import com.example.cmc_be.attendance.dto.AttendanceRes import com.example.cmc_be.common.exeption.NotFoundException import com.example.cmc_be.domain.attendance.entity.Attendance -import com.example.cmc_be.domain.attendance.enums.AttendanceStatus +import com.example.cmc_be.domain.attendance.enums.AttendanceCategory import com.example.cmc_be.domain.attendance.repository.AttendanceRepository import com.example.cmc_be.domain.generation.repository.GenerationWeeksInfoRepository import com.example.cmc_be.domain.notification.exception.NotificationExceptionErrorCode @@ -21,18 +21,22 @@ class AttendanceService( private val attendanceConverter: AttendanceConverter, private val qrCodeService: QrCodeService ) { - fun getAttendanceList(user: User): List { + fun getAttendanceList(user: User): AttendanceRes.GetAttendances { val allGenerationWeeksInfo = generationWeeksInfoRepository.findAllByGeneration(user.nowGeneration).sortedBy { it.week } val userAllAttendanceData = attendanceRepository.findAllByUserId(user.id).groupBy { it.generationWeeksInfo.week } - return attendanceConverter.getAttendanceList(allGenerationWeeksInfo, userAllAttendanceData) + + return attendanceConverter.getAttendanceList( + allGenerationWeeksInfo = allGenerationWeeksInfo, + userAllAttendanceData = userAllAttendanceData + ) } fun setAttendance(user: User, code: AttendanceReq.AttendanceCode): String { val attendanceCode = qrCodeService.getCode(code.code) qrCodeService.validateCode(user, attendanceCode) - val attendanceStatus = if (attendanceCode.isLate()) AttendanceStatus.LATE else AttendanceStatus.ATTENDANCE + val attendanceCategory = if (attendanceCode.isLate()) AttendanceCategory.LATE else AttendanceCategory.ATTENDANCE attendanceRepository.save( Attendance( @@ -41,11 +45,11 @@ class AttendanceService( user.nowGeneration, attendanceCode.week ) ?: throw NotFoundException(NotificationExceptionErrorCode.NOT_FOUND_LATEST_NOTIFICATION), - attendanceStatus = attendanceStatus, + attendanceCategory = attendanceCategory, attendanceHour = attendanceCode.hour ) ) - return "${attendanceStatus.status}하였습니다." + return "${attendanceCategory.status}하였습니다." } fun getParticipantsAttendance(generation: Int): List { diff --git a/src/main/kotlin/com/example/cmc_be/attendance/service/QrCodeService.kt b/src/main/kotlin/com/example/cmc_be/attendance/service/QrCodeService.kt index 19addc4..7b73d0a 100644 --- a/src/main/kotlin/com/example/cmc_be/attendance/service/QrCodeService.kt +++ b/src/main/kotlin/com/example/cmc_be/attendance/service/QrCodeService.kt @@ -9,6 +9,7 @@ import com.example.cmc_be.domain.attendance.entity.AttendanceCode import com.example.cmc_be.domain.attendance.enums.AttendanceHour import com.example.cmc_be.domain.attendance.exception.AttendanceErrorCode import com.example.cmc_be.domain.attendance.repository.AttendanceCodeRepository +import com.example.cmc_be.domain.generation.entity.GenerationWeeksInfo import com.example.cmc_be.domain.user.entity.User import org.springframework.data.repository.findByIdOrNull import org.springframework.scheduling.annotation.Scheduled @@ -22,7 +23,10 @@ class QrCodeService( private val attendanceCodeConverter: AttendanceConverter ) { - fun generateCode(generationReq: AttendanceReq.GenerateCode): String { + fun generateCode( + generationReq: AttendanceReq.GenerateCode, + generationWeeksInfo: GenerationWeeksInfo + ): String { return generateUniqueRandomCode().also { randomCode -> attendanceCodeRepository.save( AttendanceCode( @@ -31,8 +35,8 @@ class QrCodeService( week = generationReq.week, hour = AttendanceHour.of(generationReq.hour), startTime = generationReq.startTime.toLocalTime(), - availableDate = generationReq.availableDate, endTime = generationReq.endTime.toLocalTime(), + generationWeeksInfo = generationWeeksInfo, lateMinute = generationReq.lateMinute ) ) diff --git a/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/Attendance.kt b/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/Attendance.kt index 675b18a..fa22883 100644 --- a/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/Attendance.kt +++ b/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/Attendance.kt @@ -1,8 +1,8 @@ package com.example.cmc_be.domain.attendance.entity import com.example.cmc_be.common.dto.BaseEntity +import com.example.cmc_be.domain.attendance.enums.AttendanceCategory import com.example.cmc_be.domain.attendance.enums.AttendanceHour -import com.example.cmc_be.domain.attendance.enums.AttendanceStatus import com.example.cmc_be.domain.generation.entity.GenerationWeeksInfo import com.example.cmc_be.domain.user.entity.User import jakarta.persistence.* @@ -23,10 +23,10 @@ class Attendance( @JoinColumn(name = "userId", nullable = false, updatable = false) val user: User, @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "weekId", nullable = false, updatable = false) + @JoinColumn(name = "generationWeeksInfoId", nullable = false, updatable = false) val generationWeeksInfo: GenerationWeeksInfo, @Enumerated(EnumType.STRING) - val attendanceStatus: AttendanceStatus, + val attendanceCategory: AttendanceCategory, @Enumerated(EnumType.STRING) val attendanceHour: AttendanceHour ) : BaseEntity() { diff --git a/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/AttendanceCode.kt b/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/AttendanceCode.kt index 784749a..608b17f 100644 --- a/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/AttendanceCode.kt +++ b/src/main/kotlin/com/example/cmc_be/domain/attendance/entity/AttendanceCode.kt @@ -3,11 +3,11 @@ package com.example.cmc_be.domain.attendance.entity import com.example.cmc_be.common.exeption.BadRequestException import com.example.cmc_be.domain.attendance.enums.AttendanceHour import com.example.cmc_be.domain.attendance.exception.AttendanceErrorCode +import com.example.cmc_be.domain.generation.entity.GenerationWeeksInfo import jakarta.persistence.* import org.hibernate.annotations.BatchSize import org.hibernate.annotations.DynamicInsert import org.hibernate.annotations.DynamicUpdate -import java.time.LocalDate import java.time.LocalTime import java.time.ZoneId import java.time.ZonedDateTime @@ -24,7 +24,9 @@ data class AttendanceCode( val generation: Int, val week: Int, @Enumerated(EnumType.STRING) val hour: AttendanceHour, - val availableDate: LocalDate, + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "generationWeeksInfoId", nullable = false, updatable = false) + val generationWeeksInfo: GenerationWeeksInfo, val startTime: LocalTime, val endTime: LocalTime, val lateMinute: Long, @@ -34,7 +36,7 @@ data class AttendanceCode( val currentDate = currentDateTime.toLocalDate() val currentTime = currentDateTime.toLocalTime() - if (!currentDate.isEqual(availableDate)) { + if (!currentDate.isEqual(generationWeeksInfo.date)) { return BadRequestException(AttendanceErrorCode.INVALID_CODE) } if (currentTime.isBefore(startTime) || currentTime.isAfter(endTime.plusMinutes(lateMinute))) { diff --git a/src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceStatus.kt b/src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceCategory.kt similarity index 87% rename from src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceStatus.kt rename to src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceCategory.kt index a0ba9fe..0082918 100644 --- a/src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceStatus.kt +++ b/src/main/kotlin/com/example/cmc_be/domain/attendance/enums/AttendanceCategory.kt @@ -1,6 +1,6 @@ package com.example.cmc_be.domain.attendance.enums -enum class AttendanceStatus( +enum class AttendanceCategory( val value: String, val status: String ) { diff --git a/src/main/kotlin/com/example/cmc_be/domain/generation/entity/GenerationWeeksInfo.kt b/src/main/kotlin/com/example/cmc_be/domain/generation/entity/GenerationWeeksInfo.kt index 55a4d9a..863a968 100644 --- a/src/main/kotlin/com/example/cmc_be/domain/generation/entity/GenerationWeeksInfo.kt +++ b/src/main/kotlin/com/example/cmc_be/domain/generation/entity/GenerationWeeksInfo.kt @@ -18,7 +18,6 @@ class GenerationWeeksInfo( val id: Long = 0L, val generation: Int, val week: Int, - val weekStart: LocalDate, - val weekEnd: LocalDate, - val attendanceDate: LocalDate + val date: LocalDate, + val isOffline: Boolean ) : BaseEntity() \ No newline at end of file diff --git a/src/main/kotlin/com/example/cmc_be/domain/generation/repository/GenerationWeeksInfoRepository.kt b/src/main/kotlin/com/example/cmc_be/domain/generation/repository/GenerationWeeksInfoRepository.kt index 6aadc2d..0b57642 100644 --- a/src/main/kotlin/com/example/cmc_be/domain/generation/repository/GenerationWeeksInfoRepository.kt +++ b/src/main/kotlin/com/example/cmc_be/domain/generation/repository/GenerationWeeksInfoRepository.kt @@ -8,4 +8,6 @@ interface GenerationWeeksInfoRepository : JpaRepository fun findByGenerationAndWeek(generation: Int, week: Int): GenerationWeeksInfo? + + fun findFirstByGenerationAndWeek(generation: Int, week: Int): GenerationWeeksInfo? } \ No newline at end of file diff --git a/src/main/kotlin/com/example/cmc_be/generation/convertor/GenerationConvertor.kt b/src/main/kotlin/com/example/cmc_be/generation/convertor/GenerationConvertor.kt index 8e3c3a3..f5369da 100644 --- a/src/main/kotlin/com/example/cmc_be/generation/convertor/GenerationConvertor.kt +++ b/src/main/kotlin/com/example/cmc_be/generation/convertor/GenerationConvertor.kt @@ -11,9 +11,8 @@ class GenerationConvertor { return GenerationWeeksInfo( generation = generationInfo.generation, week = generationInfo.week, - weekStart = generationInfo.weekStart, - weekEnd = generationInfo.weekEnd, - attendanceDate = generationInfo.attendanceDate + date = generationInfo.date, + isOffline = generationInfo.isOffline ) } } \ No newline at end of file diff --git a/src/main/kotlin/com/example/cmc_be/generation/dto/GenerationReq.kt b/src/main/kotlin/com/example/cmc_be/generation/dto/GenerationReq.kt index fa4dbd2..f3ad043 100644 --- a/src/main/kotlin/com/example/cmc_be/generation/dto/GenerationReq.kt +++ b/src/main/kotlin/com/example/cmc_be/generation/dto/GenerationReq.kt @@ -6,8 +6,7 @@ class GenerationReq { data class GenerationInfo( val generation: Int, val week: Int, - val weekStart: LocalDate, - val weekEnd: LocalDate, - val attendanceDate: LocalDate + val date: LocalDate, + val isOffline: Boolean ) } \ No newline at end of file diff --git a/src/main/kotlin/com/example/cmc_be/generation/service/GenerationService.kt b/src/main/kotlin/com/example/cmc_be/generation/service/GenerationService.kt index 17cc72f..c531f34 100644 --- a/src/main/kotlin/com/example/cmc_be/generation/service/GenerationService.kt +++ b/src/main/kotlin/com/example/cmc_be/generation/service/GenerationService.kt @@ -13,7 +13,7 @@ class GenerationService( ) { fun getGenerationWeeksInfoDate(user: User): List { return generationWeeksInfoRepository.findAllByGeneration(user.nowGeneration) - .map { "${it.generation}th ${it.week}week start at : ${it.weekStart} and end at : ${it.weekEnd}, attandance : ${it.attendanceDate}" } + .map { "${it.generation}th ${it.week}week, date : ${it.date}" } } fun postGenerationWeeksInfo( From 5f94b0eb9557514043d15691df5dc4b5bf5504d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=ED=95=B4=EC=B0=AC=5BVertical=20Service=20Dev1=5D?= Date: Sun, 26 Nov 2023 01:00:27 +0900 Subject: [PATCH 2/2] Rename : notice -> notification --- .../controller/AdminNotificationController.kt | 8 ++++---- .../controller/NotificationController.kt | 6 +++--- .../convertor/NotificationConvertor.kt | 4 ++-- .../{notice => notification}/dto/NotificationReq.kt | 2 +- .../{notice => notification}/dto/NotificationRes.kt | 2 +- .../service/NotificationService.kt | 8 ++++---- 6 files changed, 15 insertions(+), 15 deletions(-) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/controller/AdminNotificationController.kt (90%) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/controller/NotificationController.kt (91%) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/convertor/NotificationConvertor.kt (81%) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/dto/NotificationReq.kt (79%) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/dto/NotificationRes.kt (79%) rename src/main/kotlin/com/example/cmc_be/{notice => notification}/service/NotificationService.kt (93%) diff --git a/src/main/kotlin/com/example/cmc_be/notice/controller/AdminNotificationController.kt b/src/main/kotlin/com/example/cmc_be/notification/controller/AdminNotificationController.kt similarity index 90% rename from src/main/kotlin/com/example/cmc_be/notice/controller/AdminNotificationController.kt rename to src/main/kotlin/com/example/cmc_be/notification/controller/AdminNotificationController.kt index fb84604..19a4305 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/controller/AdminNotificationController.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/controller/AdminNotificationController.kt @@ -1,10 +1,10 @@ -package com.example.cmc_be.notice.controller +package com.example.cmc_be.notification.controller import com.example.cmc_be.common.response.CommonResponse import com.example.cmc_be.domain.user.entity.User -import com.example.cmc_be.notice.dto.NotificationReq -import com.example.cmc_be.notice.dto.NotificationRes -import com.example.cmc_be.notice.service.NotificationService +import com.example.cmc_be.notification.dto.NotificationReq +import com.example.cmc_be.notification.dto.NotificationRes +import com.example.cmc_be.notification.service.NotificationService import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.tags.Tag import org.springframework.security.core.annotation.AuthenticationPrincipal diff --git a/src/main/kotlin/com/example/cmc_be/notice/controller/NotificationController.kt b/src/main/kotlin/com/example/cmc_be/notification/controller/NotificationController.kt similarity index 91% rename from src/main/kotlin/com/example/cmc_be/notice/controller/NotificationController.kt rename to src/main/kotlin/com/example/cmc_be/notification/controller/NotificationController.kt index f5b532c..abc0f14 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/controller/NotificationController.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/controller/NotificationController.kt @@ -1,10 +1,10 @@ -package com.example.cmc_be.notice.controller +package com.example.cmc_be.notification.controller import com.example.cmc_be.common.response.CommonResponse import com.example.cmc_be.common.response.PageResponse import com.example.cmc_be.domain.user.entity.User -import com.example.cmc_be.notice.dto.NotificationRes -import com.example.cmc_be.notice.service.NotificationService +import com.example.cmc_be.notification.dto.NotificationRes +import com.example.cmc_be.notification.service.NotificationService import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.tags.Tag import org.springframework.security.core.annotation.AuthenticationPrincipal diff --git a/src/main/kotlin/com/example/cmc_be/notice/convertor/NotificationConvertor.kt b/src/main/kotlin/com/example/cmc_be/notification/convertor/NotificationConvertor.kt similarity index 81% rename from src/main/kotlin/com/example/cmc_be/notice/convertor/NotificationConvertor.kt rename to src/main/kotlin/com/example/cmc_be/notification/convertor/NotificationConvertor.kt index 0ad2db8..4eb612b 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/convertor/NotificationConvertor.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/convertor/NotificationConvertor.kt @@ -1,8 +1,8 @@ -package com.example.cmc_be.notice.convertor +package com.example.cmc_be.notification.convertor import com.example.cmc_be.common.annotation.Convertor import com.example.cmc_be.domain.notification.entity.Notification -import com.example.cmc_be.notice.dto.NotificationRes +import com.example.cmc_be.notification.dto.NotificationRes @Convertor class NotificationConvertor { diff --git a/src/main/kotlin/com/example/cmc_be/notice/dto/NotificationReq.kt b/src/main/kotlin/com/example/cmc_be/notification/dto/NotificationReq.kt similarity index 79% rename from src/main/kotlin/com/example/cmc_be/notice/dto/NotificationReq.kt rename to src/main/kotlin/com/example/cmc_be/notification/dto/NotificationReq.kt index 75e7b32..8c322e2 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/dto/NotificationReq.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/dto/NotificationReq.kt @@ -1,4 +1,4 @@ -package com.example.cmc_be.notice.dto +package com.example.cmc_be.notification.dto class NotificationReq { diff --git a/src/main/kotlin/com/example/cmc_be/notice/dto/NotificationRes.kt b/src/main/kotlin/com/example/cmc_be/notification/dto/NotificationRes.kt similarity index 79% rename from src/main/kotlin/com/example/cmc_be/notice/dto/NotificationRes.kt rename to src/main/kotlin/com/example/cmc_be/notification/dto/NotificationRes.kt index 572de61..1dd468c 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/dto/NotificationRes.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/dto/NotificationRes.kt @@ -1,4 +1,4 @@ -package com.example.cmc_be.notice.dto +package com.example.cmc_be.notification.dto class NotificationRes { data class NotificationDto( diff --git a/src/main/kotlin/com/example/cmc_be/notice/service/NotificationService.kt b/src/main/kotlin/com/example/cmc_be/notification/service/NotificationService.kt similarity index 93% rename from src/main/kotlin/com/example/cmc_be/notice/service/NotificationService.kt rename to src/main/kotlin/com/example/cmc_be/notification/service/NotificationService.kt index e1607cc..af8a96d 100644 --- a/src/main/kotlin/com/example/cmc_be/notice/service/NotificationService.kt +++ b/src/main/kotlin/com/example/cmc_be/notification/service/NotificationService.kt @@ -1,4 +1,4 @@ -package com.example.cmc_be.notice.service +package com.example.cmc_be.notification.service import com.example.cmc_be.common.exeption.NotFoundException import com.example.cmc_be.common.response.PageResponse @@ -7,9 +7,9 @@ import com.example.cmc_be.domain.notification.entity.Notification import com.example.cmc_be.domain.notification.exception.NotificationExceptionErrorCode import com.example.cmc_be.domain.notification.repository.NotificationRepository import com.example.cmc_be.domain.user.entity.User -import com.example.cmc_be.notice.convertor.NotificationConvertor -import com.example.cmc_be.notice.dto.NotificationReq -import com.example.cmc_be.notice.dto.NotificationRes +import com.example.cmc_be.notification.convertor.NotificationConvertor +import com.example.cmc_be.notification.dto.NotificationReq +import com.example.cmc_be.notification.dto.NotificationRes import org.springframework.data.domain.PageRequest import org.springframework.data.domain.Sort import org.springframework.data.repository.findByIdOrNull