diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/domain/entity/Book.java b/src/main/java/com/keepgoing/keepserver/domain/book/domain/entity/Book.java index 6f4a8fb..f3a1ea0 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/domain/entity/Book.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/domain/entity/Book.java @@ -58,11 +58,17 @@ public class Book { private String imageUrl; /* - 기기 대여 시작일 + 책 대여 시작일 */ @Column private LocalDateTime rentDate; + /* + 책 마지막 대여자 mail + */ + @Column + private String lastBorrowerMail; + /* 책 대여자 */ 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 f2a16c8..29fe5e3 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 @@ -17,6 +17,7 @@ public BookResponseDto entityToDto(Book entity) { .writer(entity.getWriter()) .imageUrl(entity.getImageUrl()) .nfcCode(entity.getNfcCode()) + .lastBorrowerMail(entity.getLastBorrowerMail()) .rentDate(entity.getRentDate()) .state(entity.getState()) .build(); diff --git a/src/main/java/com/keepgoing/keepserver/domain/book/payload/response/BookResponseDto.java b/src/main/java/com/keepgoing/keepserver/domain/book/payload/response/BookResponseDto.java index 6e5f563..492cf57 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/book/payload/response/BookResponseDto.java +++ b/src/main/java/com/keepgoing/keepserver/domain/book/payload/response/BookResponseDto.java @@ -13,6 +13,7 @@ public record BookResponseDto( String writer, String imageUrl, String nfcCode, + String lastBorrowerMail, LocalDateTime registrationDate, LocalDateTime rentDate, BookState state diff --git a/src/main/java/com/keepgoing/keepserver/domain/device/domain/entity/Device.java b/src/main/java/com/keepgoing/keepserver/domain/device/domain/entity/Device.java index 7f6f1fe..c131f02 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/device/domain/entity/Device.java +++ b/src/main/java/com/keepgoing/keepserver/domain/device/domain/entity/Device.java @@ -51,6 +51,12 @@ public class Device { @Column private LocalDateTime rentDate; + /* + 기기 마지막 대여자 mail + */ + @Column + private String lastBorrowerMail; + /* 대여자 id */ 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 8092b4d..1c6a4df 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 @@ -18,6 +18,7 @@ public DeviceResponseDto entityToDto(Device entity) { .deviceName(entity.getDeviceName()) .imgUrl(entity.getImgUrl()) .borrower(entity.getBorrower() != null ? entity.getBorrower().getName() : "대여자 없음") + .lastBorrowerMail(entity.getLastBorrowerMail()) .regDate(entity.getRegDate()) .rentDate(entity.getRentDate()) .status(entity.getStatus()) diff --git a/src/main/java/com/keepgoing/keepserver/domain/device/payload/response/DeviceResponseDto.java b/src/main/java/com/keepgoing/keepserver/domain/device/payload/response/DeviceResponseDto.java index c96b6a4..f11a6c1 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/device/payload/response/DeviceResponseDto.java +++ b/src/main/java/com/keepgoing/keepserver/domain/device/payload/response/DeviceResponseDto.java @@ -12,6 +12,7 @@ public record DeviceResponseDto( String deviceName, String imgUrl, String borrower, + String lastBorrowerMail, LocalDateTime regDate, LocalDateTime rentDate, DeviceStatus status diff --git a/src/main/java/com/keepgoing/keepserver/domain/returns/service/ReturnServiceImpl.java b/src/main/java/com/keepgoing/keepserver/domain/returns/service/ReturnServiceImpl.java index 5996864..68e1bb8 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/returns/service/ReturnServiceImpl.java +++ b/src/main/java/com/keepgoing/keepserver/domain/returns/service/ReturnServiceImpl.java @@ -33,7 +33,7 @@ public BaseResponse returnDevice(String deviceName, String email) { User user = deviceService.findUserByEmail(email); Device device = findDeviceByName(deviceName); validateDeviceBorrower(device, user); - returnDeviceFromUser(device); + returnDeviceFromUser(device, user); return new BaseResponse(HttpStatus.OK, "반납이 완료 되었습니다.", deviceMapper.entityToDto(device)); } @@ -42,7 +42,7 @@ public BaseResponse returnBook(String nfcCode, String email) { User user = deviceService.findUserByEmail(email); Book book = findBookByNfcCodeContaining(nfcCode); validateBookBorrower(book, user); - returnBookFromUser(book); + returnBookFromUser(book, user); return new BaseResponse(HttpStatus.OK, "반납이 완료 되었습니다.", bookMapper.entityToDto(book)); } @@ -57,7 +57,8 @@ private void validateDeviceBorrower(Device device, User user) { } } - private void returnDeviceFromUser(Device device) { + private void returnDeviceFromUser(Device device, User user) { + device.setLastBorrowerMail(user.getEmail()); device.setBorrower(null); device.setStatus(DeviceStatus.AVAILABLE); device.setRentDate(null); @@ -75,7 +76,8 @@ private void validateBookBorrower(Book book, User user) { } } - private void returnBookFromUser(Book book) { + private void returnBookFromUser(Book book, User user) { + book.setLastBorrowerMail(user.getEmail()); book.setBorrower(null); book.setState(BookState.AVAILABLE); book.setRentDate(null); diff --git a/src/main/java/com/keepgoing/keepserver/domain/user/domain/repository/user/UserQueryRepositoryImpl.java b/src/main/java/com/keepgoing/keepserver/domain/user/domain/repository/user/UserQueryRepositoryImpl.java index 56eac2b..4bead74 100644 --- a/src/main/java/com/keepgoing/keepserver/domain/user/domain/repository/user/UserQueryRepositoryImpl.java +++ b/src/main/java/com/keepgoing/keepserver/domain/user/domain/repository/user/UserQueryRepositoryImpl.java @@ -47,6 +47,7 @@ public UserDto getProfileById(long id) { device.deviceName, device.imgUrl, device.borrower.name, + device.lastBorrowerMail, device.regDate, device.rentDate, device.status @@ -59,6 +60,7 @@ public UserDto getProfileById(long id) { book.writer, book.imageUrl, book.nfcCode, + book.lastBorrowerMail, book.registrationDate, book.rentDate, book.state @@ -80,6 +82,7 @@ public UserDto getProfileById(long id) { .collect(Collectors.toSet())) .borrowedBooks(dto.borrowedBooks().stream().filter(r -> r.id() != 0).collect(Collectors.toSet())) .build(); +// return null; } @Override