From 82bb676484e82384f5fb6f68894acc782a2a1aba Mon Sep 17 00:00:00 2001 From: heunseoRyu Date: Wed, 12 Jun 2024 11:09:33 +0900 Subject: [PATCH 1/3] [feat] :: beep develop roomListByFloor() --- .../domain/repository/querydsl/RoomRepoCustom.java | 5 +++++ .../repository/querydsl/impl/RoomRepoCustomImpl.java | 11 +++++++++++ .../beep/domain/beep/presentation/BeepController.java | 10 +++++++++- .../beep/beep/domain/beep/service/BeepService.java | 4 ++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java index 0ed6a8c..35b6a7a 100644 --- a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java +++ b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java @@ -5,5 +5,10 @@ import java.util.List; public interface RoomRepoCustom { + List roomListByName(String name); + + List roomListByFloor(Integer floor); + } + diff --git a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java index 1e345de..a6a7870 100644 --- a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java +++ b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java @@ -28,4 +28,15 @@ public List roomListByName(String name) { .fetch(); } + @Override + public List roomListByFloor(Integer floor) { + return query.select(Projections.constructor(RoomVO.class, + room.code, + room.floor, + room.name)) + .from(room) + .where(room.floor.eq(floor)) + .fetch(); + } + } diff --git a/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java b/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java index 46e71e1..f96e176 100644 --- a/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java +++ b/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java @@ -56,7 +56,7 @@ public void exitRoom( beepService.exit(request); } - @GetMapping("/rooms") + @GetMapping("/rooms/name") @Operation(summary = "실 조회", description = "실 이름으로 실을 조회합니다.(teacher)") public List roomListByName( @RequestParam String name @@ -64,6 +64,14 @@ public List roomListByName( return beepService.roomListByName(name); } + @GetMapping("/rooms/floor") + @Operation(summary = "실 조회", description = "n층으로 실을 조회합니다.(teacher)") + public List roomListByFloor( + @RequestParam Integer floor + ){ + return beepService.roomListByFloor(floor); + } + @GetMapping("/attendances") @Operation(summary = "출석 조회", description = "실 코드로 입실한 학생목록 조회합니다. (teacher)") public List attendanceByCode( diff --git a/src/main/java/com/beep/beep/domain/beep/service/BeepService.java b/src/main/java/com/beep/beep/domain/beep/service/BeepService.java index 5b91974..646e640 100644 --- a/src/main/java/com/beep/beep/domain/beep/service/BeepService.java +++ b/src/main/java/com/beep/beep/domain/beep/service/BeepService.java @@ -62,6 +62,10 @@ public List roomListByName(String name){ return roomRepository.roomListByName(name); } + public List roomListByFloor(Integer floor){ + return roomRepository.roomListByFloor(floor); + } + public List attendanceByCode(String code){ return attendanceRepository.attendanceListByCode(code); } From 7928272ec91feac6ded1ad04e7977e48b0957cf1 Mon Sep 17 00:00:00 2001 From: heunseoRyu Date: Wed, 12 Jun 2024 11:09:57 +0900 Subject: [PATCH 2/3] [feat] :: global modify SecurityConfig --- src/main/java/com/beep/beep/global/security/SecurityConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/beep/beep/global/security/SecurityConfig.java b/src/main/java/com/beep/beep/global/security/SecurityConfig.java index 679e05d..283dc91 100644 --- a/src/main/java/com/beep/beep/global/security/SecurityConfig.java +++ b/src/main/java/com/beep/beep/global/security/SecurityConfig.java @@ -46,7 +46,7 @@ public SecurityFilterChain configure(HttpSecurity http) throws Exception { .requestMatchers("/beep/enter").hasAuthority(STUDENT.getAuthority()) .requestMatchers("/beep/exit").hasAuthority(STUDENT.getAuthority()) - .requestMatchers("/beep/rooms").hasAuthority(TEACHER.getAuthority()) + .requestMatchers("/beep/rooms/**").hasAuthority(TEACHER.getAuthority()) .requestMatchers(HttpMethod.POST,"/beep/attendances").permitAll() .requestMatchers(HttpMethod.GET,"/beep/attendances").hasAuthority(TEACHER.getAuthority()) From 1f68a16e87c7a98b28d3e96f8ae1641c7592987f Mon Sep 17 00:00:00 2001 From: heunseoRyu Date: Wed, 12 Jun 2024 11:28:22 +0900 Subject: [PATCH 3/3] [fix] :: beep remove floor data when roomListByFloor --- .../domain/repository/querydsl/RoomRepoCustom.java | 3 ++- .../repository/querydsl/impl/RoomRepoCustomImpl.java | 6 +++--- .../domain/beep/presentation/BeepController.java | 3 ++- .../presentation/dto/response/RoomByFloorRes.java | 12 ++++++++++++ .../beep/beep/domain/beep/service/BeepService.java | 3 ++- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/beep/beep/domain/beep/presentation/dto/response/RoomByFloorRes.java diff --git a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java index 35b6a7a..ea19199 100644 --- a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java +++ b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/RoomRepoCustom.java @@ -1,6 +1,7 @@ package com.beep.beep.domain.beep.domain.repository.querydsl; import com.beep.beep.domain.beep.presentation.dto.RoomVO; +import com.beep.beep.domain.beep.presentation.dto.response.RoomByFloorRes; import java.util.List; @@ -8,7 +9,7 @@ public interface RoomRepoCustom { List roomListByName(String name); - List roomListByFloor(Integer floor); + List roomListByFloor(Integer floor); } diff --git a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java index a6a7870..d363ae4 100644 --- a/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java +++ b/src/main/java/com/beep/beep/domain/beep/domain/repository/querydsl/impl/RoomRepoCustomImpl.java @@ -3,6 +3,7 @@ import com.beep.beep.domain.beep.domain.repository.querydsl.RoomRepoCustom; import com.beep.beep.domain.beep.presentation.dto.RoomVO; +import com.beep.beep.domain.beep.presentation.dto.response.RoomByFloorRes; import com.querydsl.core.types.Projections; import com.querydsl.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; @@ -29,10 +30,9 @@ public List roomListByName(String name) { } @Override - public List roomListByFloor(Integer floor) { - return query.select(Projections.constructor(RoomVO.class, + public List roomListByFloor(Integer floor) { + return query.select(Projections.constructor(RoomByFloorRes.class, room.code, - room.floor, room.name)) .from(room) .where(room.floor.eq(floor)) diff --git a/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java b/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java index f96e176..c756e8b 100644 --- a/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java +++ b/src/main/java/com/beep/beep/domain/beep/presentation/BeepController.java @@ -1,6 +1,7 @@ package com.beep.beep.domain.beep.presentation; import com.beep.beep.domain.beep.presentation.dto.request.InitializeAttendanceReq; +import com.beep.beep.domain.beep.presentation.dto.response.RoomByFloorRes; import com.beep.beep.domain.beep.service.BeepService; import com.beep.beep.domain.beep.presentation.dto.request.EnterRoomReq; import com.beep.beep.domain.beep.presentation.dto.request.ExitRoomReq; @@ -66,7 +67,7 @@ public List roomListByName( @GetMapping("/rooms/floor") @Operation(summary = "실 조회", description = "n층으로 실을 조회합니다.(teacher)") - public List roomListByFloor( + public List roomListByFloor( @RequestParam Integer floor ){ return beepService.roomListByFloor(floor); diff --git a/src/main/java/com/beep/beep/domain/beep/presentation/dto/response/RoomByFloorRes.java b/src/main/java/com/beep/beep/domain/beep/presentation/dto/response/RoomByFloorRes.java new file mode 100644 index 0000000..7b7e511 --- /dev/null +++ b/src/main/java/com/beep/beep/domain/beep/presentation/dto/response/RoomByFloorRes.java @@ -0,0 +1,12 @@ +package com.beep.beep.domain.beep.presentation.dto.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder @AllArgsConstructor +public class RoomByFloorRes { + private String code; + private String name; +} diff --git a/src/main/java/com/beep/beep/domain/beep/service/BeepService.java b/src/main/java/com/beep/beep/domain/beep/service/BeepService.java index 646e640..d99012b 100644 --- a/src/main/java/com/beep/beep/domain/beep/service/BeepService.java +++ b/src/main/java/com/beep/beep/domain/beep/service/BeepService.java @@ -12,6 +12,7 @@ import com.beep.beep.domain.beep.presentation.dto.request.EnterRoomReq; import com.beep.beep.domain.beep.presentation.dto.request.ExitRoomReq; import com.beep.beep.domain.beep.presentation.dto.response.AttendanceByCodeRes; +import com.beep.beep.domain.beep.presentation.dto.response.RoomByFloorRes; import com.beep.beep.global.common.service.UserUtil; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @@ -62,7 +63,7 @@ public List roomListByName(String name){ return roomRepository.roomListByName(name); } - public List roomListByFloor(Integer floor){ + public List roomListByFloor(Integer floor){ return roomRepository.roomListByFloor(floor); }