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
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -69,7 +76,7 @@ public ResponseEntity<BaseResponse<Void>> deleteLesson(
//레슨 신청자 목록 조회
@GetMapping("/lessons/{lessonId}/applications")
@Operation(summary = "레슨 신청자 목록 조회 api", description = "레슨 신청자의 목록을 조회 가능함.")
public ResponseEntity<BaseResponse<LessonApplicationListResponseDto>> getLessonApplications(
public ResponseEntity<PagedResponse<LessonApplicationListWrapperDto>> getLessonApplications(
@PathVariable Long lessonId,
@RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.")
@Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page,
Expand All @@ -82,7 +89,10 @@ public ResponseEntity<BaseResponse<LessonApplicationListResponseDto>> 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);
}

//레슨 신청 승인/거절
Expand All @@ -104,7 +114,7 @@ public ResponseEntity<BaseResponse<ApplicationProcessResponseDto>> processLesson
//레슨 참가자 목록 조회
@GetMapping("/lessons/{lessonId}/participants")
@Operation(summary = "레슨 참가자 목록 조회 api", description = "")
public ResponseEntity<BaseResponse<ParticipantListResponseDto>> getLessonParticipants(
public ResponseEntity<PagedResponse<ParticipantListWrapperDto>> getLessonParticipants(
@PathVariable Long lessonId,
@RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.")
@Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page,
Expand All @@ -116,13 +126,16 @@ public ResponseEntity<BaseResponse<ParticipantListResponseDto>> 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<BaseResponse<CreatedLessonListResponseDto>> getCreatedLessons(
public ResponseEntity<PagedResponse<CreatedLessonListWrapperDto>> getCreatedLessons(
@PathVariable Long userId,
@RequestParam(defaultValue = "1") @Min(value = 1, message = "페이지는 1 이상이어야 합니다.")
@Max(value = 1000, message = "페이지는 1000 이하여야 합니다.") int page,
Expand All @@ -140,7 +153,10 @@ public ResponseEntity<BaseResponse<CreatedLessonListResponseDto>> 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);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
@Builder
public record CreatedLessonListResponseDto(
List<CreatedLessonDto> lessons,
Long count
Integer count
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.threestar.trainus.domain.lesson.admin.dto;

import java.util.List;

public record CreatedLessonListWrapperDto(
List<CreatedLessonDto> lessons
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
@Builder
public record LessonApplicationListResponseDto(
java.util.List<LessonApplicationResponseDto> lessonApplications,
Long count
Integer count
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.threestar.trainus.domain.lesson.admin.dto;

import java.util.List;

public record LessonApplicationListWrapperDto(
List<LessonApplicationResponseDto> lessonApplications
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
@Builder
public record ParticipantListResponseDto(
List<ParticipantDto> lessonApplications,
Long count
Integer count
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.threestar.trainus.domain.lesson.admin.dto;

import java.util.List;

public record ParticipantListWrapperDto(
List<ParticipantDto> participants
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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());
}
}