diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/controller/AdminLessonController.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/controller/AdminLessonController.java index aca3ff9..5717fda 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/controller/AdminLessonController.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/controller/AdminLessonController.java @@ -14,16 +14,23 @@ import com.threestar.trainus.domain.lesson.admin.dto.ApplicationActionRequestDto; import com.threestar.trainus.domain.lesson.admin.dto.ApplicationProcessResponseDto; import com.threestar.trainus.domain.lesson.admin.dto.CreatedLessonListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.CreatedLessonListWrapperDto; import com.threestar.trainus.domain.lesson.admin.dto.LessonApplicationListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.LessonApplicationListWrapperDto; import com.threestar.trainus.domain.lesson.admin.dto.LessonCreateRequestDto; import com.threestar.trainus.domain.lesson.admin.dto.LessonResponseDto; import com.threestar.trainus.domain.lesson.admin.dto.ParticipantListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.ParticipantListWrapperDto; import com.threestar.trainus.domain.lesson.admin.entity.ApplicationAction; +import com.threestar.trainus.domain.lesson.admin.mapper.CreatedLessonMapper; +import com.threestar.trainus.domain.lesson.admin.mapper.LessonApplicationMapper; +import com.threestar.trainus.domain.lesson.admin.mapper.LessonParticipantMapper; import com.threestar.trainus.domain.lesson.admin.service.AdminLessonService; import com.threestar.trainus.global.annotation.LoginUser; import com.threestar.trainus.global.exception.domain.ErrorCode; import com.threestar.trainus.global.exception.handler.BusinessException; import com.threestar.trainus.global.unit.BaseResponse; +import com.threestar.trainus.global.unit.PagedResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -69,7 +76,7 @@ public ResponseEntity> deleteLesson( //레슨 신청자 목록 조회 @GetMapping("/lessons/{lessonId}/applications") @Operation(summary = "레슨 신청자 목록 조회 api", description = "레슨 신청자의 목록을 조회 가능함.") - public ResponseEntity> getLessonApplications( + public ResponseEntity> getLessonApplications( @PathVariable Long lessonId, @RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.") @Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page, @@ -82,7 +89,10 @@ public ResponseEntity> getLessonA LessonApplicationListResponseDto responseDto = adminLessonService .getLessonApplications(lessonId, page, limit, status, loginUserId); - return BaseResponse.ok("레슨 신청자 목록 조회 완료.", responseDto, HttpStatus.OK); + LessonApplicationListWrapperDto wrapperDto = LessonApplicationMapper + .toLessonApplicationListWrapperDto(responseDto); + + return PagedResponse.ok("레슨 신청자 목록 조회 완료.", wrapperDto, responseDto.count(), HttpStatus.OK); } //레슨 신청 승인/거절 @@ -104,7 +114,7 @@ public ResponseEntity> processLesson //레슨 참가자 목록 조회 @GetMapping("/lessons/{lessonId}/participants") @Operation(summary = "레슨 참가자 목록 조회 api", description = "") - public ResponseEntity> getLessonParticipants( + public ResponseEntity> getLessonParticipants( @PathVariable Long lessonId, @RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.") @Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page, @@ -116,13 +126,16 @@ public ResponseEntity> getLessonPartici ParticipantListResponseDto responseDto = adminLessonService .getLessonParticipants(lessonId, page, limit, loginUserId); - return BaseResponse.ok("레슨 참가자 목록 조회 완료.", responseDto, HttpStatus.OK); + ParticipantListWrapperDto wrapperDto = LessonParticipantMapper + .toParticipantListWrapperDto(responseDto); + + return PagedResponse.ok("레슨 참가자 목록 조회 완료.", wrapperDto, responseDto.count(), HttpStatus.OK); } //강사가 개설한 레슨 목록 조회 @GetMapping("/lessons/{userId}/created-lessons") @Operation(summary = "강사가 개설한 레슨 목록 조회 api", description = "") - public ResponseEntity> getCreatedLessons( + public ResponseEntity> getCreatedLessons( @PathVariable Long userId, @RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.") @Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page, @@ -140,7 +153,10 @@ public ResponseEntity> getCreatedLess CreatedLessonListResponseDto responseDto = adminLessonService .getCreatedLessons(userId, page, limit, status); - return BaseResponse.ok("개설한 레슨 목록 조회 완료.", responseDto, HttpStatus.OK); + CreatedLessonListWrapperDto wrapperDto = CreatedLessonMapper + .toCreatedLessonListWrapperDto(responseDto); + + return PagedResponse.ok("개설한 레슨 목록 조회 완료.", wrapperDto, responseDto.count(), HttpStatus.OK); } } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListResponseDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListResponseDto.java index a7d4fee..f079335 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListResponseDto.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListResponseDto.java @@ -10,6 +10,6 @@ @Builder public record CreatedLessonListResponseDto( List lessons, - Long count + Integer count ) { } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListWrapperDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListWrapperDto.java new file mode 100644 index 0000000..5084245 --- /dev/null +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/CreatedLessonListWrapperDto.java @@ -0,0 +1,8 @@ +package com.threestar.trainus.domain.lesson.admin.dto; + +import java.util.List; + +public record CreatedLessonListWrapperDto( + List lessons +) { +} diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListResponseDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListResponseDto.java index 3c31aec..434dba0 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListResponseDto.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListResponseDto.java @@ -8,6 +8,6 @@ @Builder public record LessonApplicationListResponseDto( java.util.List lessonApplications, - Long count + Integer count ) { } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListWrapperDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListWrapperDto.java new file mode 100644 index 0000000..47eacd7 --- /dev/null +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/LessonApplicationListWrapperDto.java @@ -0,0 +1,8 @@ +package com.threestar.trainus.domain.lesson.admin.dto; + +import java.util.List; + +public record LessonApplicationListWrapperDto( + List lessonApplications +) { +} diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListResponseDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListResponseDto.java index 407da40..ff09652 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListResponseDto.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListResponseDto.java @@ -10,6 +10,6 @@ @Builder public record ParticipantListResponseDto( List lessonApplications, - Long count + Integer count ) { } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListWrapperDto.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListWrapperDto.java new file mode 100644 index 0000000..9ab0a8a --- /dev/null +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/dto/ParticipantListWrapperDto.java @@ -0,0 +1,8 @@ +package com.threestar.trainus.domain.lesson.admin.dto; + +import java.util.List; + +public record ParticipantListWrapperDto( + List participants +) { +} diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/CreatedLessonMapper.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/CreatedLessonMapper.java index 59f50ba..eb6cc33 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/CreatedLessonMapper.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/CreatedLessonMapper.java @@ -4,6 +4,7 @@ import com.threestar.trainus.domain.lesson.admin.dto.CreatedLessonDto; import com.threestar.trainus.domain.lesson.admin.dto.CreatedLessonListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.CreatedLessonListWrapperDto; import com.threestar.trainus.domain.lesson.admin.entity.Lesson; public class CreatedLessonMapper { @@ -36,7 +37,12 @@ public static CreatedLessonListResponseDto toCreatedLessonListResponseDto( // 응답 DTO 생성 return CreatedLessonListResponseDto.builder() .lessons(lessonDtos) - .count(totalCount) + .count(totalCount.intValue()) .build(); } + + public static CreatedLessonListWrapperDto toCreatedLessonListWrapperDto( + CreatedLessonListResponseDto responseDto) { + return new CreatedLessonListWrapperDto(responseDto.lessons()); + } } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonApplicationMapper.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonApplicationMapper.java index 8ca5746..dae602e 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonApplicationMapper.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonApplicationMapper.java @@ -3,6 +3,7 @@ import java.util.List; import com.threestar.trainus.domain.lesson.admin.dto.LessonApplicationListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.LessonApplicationListWrapperDto; import com.threestar.trainus.domain.lesson.admin.dto.LessonApplicationResponseDto; import com.threestar.trainus.domain.lesson.admin.entity.LessonApplication; import com.threestar.trainus.domain.profile.dto.ProfileResponseDto; @@ -39,7 +40,12 @@ public static LessonApplicationListResponseDto toListResponseDto( // 리스트 응답 DTO 생성 return LessonApplicationListResponseDto.builder() .lessonApplications(applicationDtos) - .count(totalCount) + .count(totalCount.intValue()) .build(); } + + public static LessonApplicationListWrapperDto toLessonApplicationListWrapperDto( + LessonApplicationListResponseDto responseDto) { + return new LessonApplicationListWrapperDto(responseDto.lessonApplications()); + } } diff --git a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonParticipantMapper.java b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonParticipantMapper.java index 075208b..617d7db 100644 --- a/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonParticipantMapper.java +++ b/src/main/java/com/threestar/trainus/domain/lesson/admin/mapper/LessonParticipantMapper.java @@ -4,6 +4,7 @@ import com.threestar.trainus.domain.lesson.admin.dto.ParticipantDto; import com.threestar.trainus.domain.lesson.admin.dto.ParticipantListResponseDto; +import com.threestar.trainus.domain.lesson.admin.dto.ParticipantListWrapperDto; import com.threestar.trainus.domain.lesson.admin.entity.LessonApplication; import com.threestar.trainus.domain.profile.dto.ProfileResponseDto; @@ -38,7 +39,13 @@ public static ParticipantListResponseDto toParticipantsResponseDto( // 응답 DTO 생성 return ParticipantListResponseDto.builder() .lessonApplications(participantDtos) - .count(totalCount) + .count(totalCount.intValue()) .build(); } + + public static ParticipantListWrapperDto toParticipantListWrapperDto( + ParticipantListResponseDto responseDto) { + return new ParticipantListWrapperDto(responseDto.lessonApplications()); + } } +