From 9dc696ed8011377220143f7c5911ad0b64bb7107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Mon, 10 Jun 2024 19:39:06 +0900 Subject: [PATCH 1/9] Refactor :: mapper to use static #36 --- .../keepserver/domain/device/mapper/DeviceMapper.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java b/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java index f8ae7266..2cfd08e8 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java +++ b/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java @@ -4,14 +4,12 @@ import com.keepgoing.keepserver.domain.device.entity.DeviceStatus; import com.keepgoing.keepserver.domain.device.payload.response.DeviceResponseDto; import com.keepgoing.keepserver.domain.device.payload.request.DeviceDto; -import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; -@Component public class DeviceMapper { - public DeviceResponseDto entityToDto(Device entity) { + public static DeviceResponseDto entityToDto(Device entity) { return DeviceResponseDto.builder() .id(entity.getId()) .deviceName(entity.getDeviceName()) @@ -20,7 +18,7 @@ public DeviceResponseDto entityToDto(Device entity) { .build(); } - public Device dtoToEntity(DeviceDto dto) { + public static Device dtoToEntity(DeviceDto dto) { return Device.builder() .deviceName(dto.deviceName()) .imgUrl(dto.imgUrl()) @@ -28,9 +26,9 @@ public Device dtoToEntity(DeviceDto dto) { .build(); } - public List convertDevicesToDtos(List devices) { + public static List convertDevicesToDtos(List devices) { return devices.stream() - .map(this::entityToDto) + .map(DeviceMapper::entityToDto) .collect(Collectors.toList()); } } \ No newline at end of file From f8b4b6d56789db711f0114eff06405edbd5a3ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 11:21:44 +0900 Subject: [PATCH 2/9] Fix :: fix bean not found error --- .../keepgoing/keepserver/domain/device/mapper/DeviceMapper.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java b/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java index 2cfd08e8..dee845ad 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java +++ b/src/main/java/com/keepgoing/keepserver/domain/device/mapper/DeviceMapper.java @@ -4,10 +4,12 @@ import com.keepgoing.keepserver.domain.device.entity.DeviceStatus; import com.keepgoing.keepserver.domain.device.payload.response.DeviceResponseDto; import com.keepgoing.keepserver.domain.device.payload.request.DeviceDto; +import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; +@Component public class DeviceMapper { public static DeviceResponseDto entityToDto(Device entity) { return DeviceResponseDto.builder() From 933b59797f95c02bb57dc49a9a7d8fffae602abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 11:42:30 +0900 Subject: [PATCH 3/9] Add :: add static to book mapper --- .../com/keepgoing/keepserver/domain/book/mapper/BookMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java b/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java index 8a97f181..0b8e7c12 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java @@ -6,7 +6,7 @@ @Component public class BookMapper { - public BookResponseDto entityToDto(Book entity) { + public static BookResponseDto entityToDto(Book entity) { return BookResponseDto.builder() .id(entity.getId()) .bookName(entity.getBookName()) From 9da3277d3a3f3926c87b77589373ad78d2951b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:26:53 +0900 Subject: [PATCH 4/9] Add :: add convertBooksToDtos --- .../keepserver/domain/book/mapper/BookMapper.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java b/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java index 0b8e7c12..d2cc6c90 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/mapper/BookMapper.java @@ -4,9 +4,12 @@ import com.keepgoing.keepserver.domain.book.entity.dto.BookResponseDto; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.stream.Collectors; + @Component public class BookMapper { - public static BookResponseDto entityToDto(Book entity) { + public BookResponseDto entityToDto(Book entity) { return BookResponseDto.builder() .id(entity.getId()) .bookName(entity.getBookName()) @@ -14,4 +17,10 @@ public static BookResponseDto entityToDto(Book entity) { .state(entity.getState()) .build(); } + + public List convertBooksToDtos(List books) { + return books.stream() + .map(this::entityToDto) + .collect(Collectors.toList()); + } } \ No newline at end of file From a8062b2ff10d6e0507793eaac7741bfc02820463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:27:10 +0900 Subject: [PATCH 5/9] Feat :: add findByBorrower --- .../keepserver/domain/book/repository/BookRepository.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/repository/BookRepository.java b/src/main/java/com/keepgoing/keepserver/domain/book/repository/BookRepository.java index 8b4acad2..c2fa32bf 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/repository/BookRepository.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/repository/BookRepository.java @@ -1,6 +1,7 @@ package com.keepgoing.keepserver.domain.book.repository; import com.keepgoing.keepserver.domain.book.entity.Book; +import com.keepgoing.keepserver.domain.user.entity.user.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -12,4 +13,5 @@ public interface BookRepository extends JpaRepository { Book findBookByNfcCode(String NfcCode); List findByBookNameContaining(String bookName); Optional findByBookName(String bookName); + List findByBorrower(User borrower); } From 5f406d3740d438d2586bf37a5fdfec6ce02143d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:27:29 +0900 Subject: [PATCH 6/9] Feat :: add findByBorrower --- .../keepserver/domain/book/service/BookServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/service/BookServiceImpl.java b/src/main/java/com/keepgoing/keepserver/domain/book/service/BookServiceImpl.java index c7e8ec5a..440be666 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/service/BookServiceImpl.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/service/BookServiceImpl.java @@ -4,6 +4,7 @@ import com.keepgoing.keepserver.domain.book.entity.Book; import com.keepgoing.keepserver.domain.book.entity.dto.BookRequestDTO; import com.keepgoing.keepserver.domain.book.repository.BookRepository; +import com.keepgoing.keepserver.domain.user.entity.user.User; import com.keepgoing.keepserver.domain.user.repository.user.UserRepository; import com.keepgoing.keepserver.global.common.BaseResponse; import com.keepgoing.keepserver.global.common.S3.S3Uploader; @@ -93,8 +94,8 @@ public BaseResponse editBook(String nfcCode, BookRequestDTO bookRequest) { bookRepository.save(book); return new BaseResponse(HttpStatus.OK, "책 정보 수정 성공"); } -} - - - + public List findBooksBorrowedByUser(User user) { + return bookRepository.findByBorrower(user); + } +} \ No newline at end of file From 99786ae37ecf0466fce94fe4a9973e40dde6f00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:28:12 +0900 Subject: [PATCH 7/9] Refactor :: edit swagger desc --- .../keepserver/domain/user/controller/UserController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/user/controller/UserController.java b/src/main/java/com/keepgoing/keepserver/domain/user/controller/UserController.java index 2f9fae98..a9a33616 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/user/controller/UserController.java +++ b/src/main/java/com/keepgoing/keepserver/domain/user/controller/UserController.java @@ -46,7 +46,7 @@ public ResponseEntity registerAndAuthenticateUser(@RequestBody SignupRequest return ResponseEntity.ok().body(response); } - @Operation(summary = "프로필", description = "토큰을 이용하여 유저 정보와 대여한 기자재 목록을 조회합니다.") + @Operation(summary = "프로필", description = "토큰을 이용하여 유저 정보와 대여한 기자재 및 도서 목록을 조회합니다.") @GetMapping("/userinfo") public UserProfileDto provideUserInfo(Authentication authentication) { String userEmail = authentication.getName(); From 6dc6f3626ea167c325ce6cfa03fe3ad074670992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:30:10 +0900 Subject: [PATCH 8/9] Refactor :: refactor UserProfileDto --- .../keepserver/domain/user/payload/request/UserProfileDto.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/keepgoing/keepserver/domain/user/payload/request/UserProfileDto.java b/src/main/java/com/keepgoing/keepserver/domain/user/payload/request/UserProfileDto.java index ef7e995d..fa29e59c 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/user/payload/request/UserProfileDto.java +++ b/src/main/java/com/keepgoing/keepserver/domain/user/payload/request/UserProfileDto.java @@ -1,5 +1,6 @@ package com.keepgoing.keepserver.domain.user.payload.request; +import com.keepgoing.keepserver.domain.book.entity.dto.BookResponseDto; import com.keepgoing.keepserver.domain.device.payload.response.DeviceResponseDto; import com.keepgoing.keepserver.domain.user.entity.user.User; import lombok.AllArgsConstructor; @@ -14,4 +15,5 @@ public class UserProfileDto { private User user; private List borrowedDevices; + private List brrowedBooks; } \ No newline at end of file From 904943e1a15d73f93bb9154bf0c34fc27c5ecf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Tue, 11 Jun 2024 14:31:39 +0900 Subject: [PATCH 9/9] Refactor :: add borrowed books info to user profile --- .../domain/user/service/user/UserServiceImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/keepgoing/keepserver/domain/user/service/user/UserServiceImpl.java b/src/main/java/com/keepgoing/keepserver/domain/user/service/user/UserServiceImpl.java index e39113af..805b6467 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/user/service/user/UserServiceImpl.java +++ b/src/main/java/com/keepgoing/keepserver/domain/user/service/user/UserServiceImpl.java @@ -1,5 +1,9 @@ package com.keepgoing.keepserver.domain.user.service.user; +import com.keepgoing.keepserver.domain.book.entity.Book; +import com.keepgoing.keepserver.domain.book.entity.dto.BookResponseDto; +import com.keepgoing.keepserver.domain.book.mapper.BookMapper; +import com.keepgoing.keepserver.domain.book.service.BookServiceImpl; import com.keepgoing.keepserver.domain.device.entity.Device; import com.keepgoing.keepserver.domain.device.mapper.DeviceMapper; import com.keepgoing.keepserver.domain.device.payload.response.DeviceResponseDto; @@ -36,6 +40,8 @@ public class UserServiceImpl implements UserService { private final JwtUtils jwtUtils; private final DeviceServiceImpl deviceService; private final DeviceMapper deviceMapper; + private final BookServiceImpl bookService; + private final BookMapper bookMapper; @Override @Transactional @@ -65,9 +71,10 @@ public void updateUserData(UserInfoRequest request, String email) { public UserProfileDto provideUserInfo(String userEmail) { User user = userRepository.findByEmailEquals(userEmail).orElseThrow(DeviceException::userNotFound); List borrowedDevicesDto = getBorrowedDevicesForUser(user); + List borrowedBooksDto = getBorrowedBooksForUser(user); hideUserPassword(user); - return new UserProfileDto(user, borrowedDevicesDto); + return new UserProfileDto(user, borrowedDevicesDto, borrowedBooksDto); } /* 인증 및 JWT 토큰 생성 */ @@ -87,6 +94,11 @@ private List getBorrowedDevicesForUser(User user) { return deviceMapper.convertDevicesToDtos(borrowedDevices); } + private List getBorrowedBooksForUser(User user) { + List borrowedBooks = bookService.findBooksBorrowedByUser(user); + return bookMapper.convertBooksToDtos(borrowedBooks); + } + private void hideUserPassword(User user) { user.hidePassword(""); }