Skip to content

Commit

Permalink
Merge pull request #105 from Gachon-Table/GTB-85
Browse files Browse the repository at this point in the history
GTB-85 [fix] 주점 관리 기능 수정
  • Loading branch information
jwnnoh authored Oct 13, 2024
2 parents 8ebf548 + d7e83c5 commit 9c47d4e
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

@Service
@RequiredArgsConstructor
Expand All @@ -34,35 +33,27 @@ public String execute(AuthDetails authDetails, PubManageRequest request) {
.orElseThrow(AdminNotFoundException::new)
.getPub();

manageThumbnails(request.thumbnails(), pub);
manageMenus(request, pub);
replaceThumbnails(request.thumbnails(), pub);
replaceMenus(request.menuRequests(), pub);

return SuccessCode.MANAGE_PUB_SUCCESS.getMessage();
}

private void manageThumbnails(List<String> thumbnails, Pub pub) {
List<Thumbnail> existingThumbnails = thumbnailRepository.findAllByPub(pub);
private void replaceThumbnails(List<String> thumbnails, Pub pub) {
thumbnailRepository.deleteAllByPub(pub);

IntStream.range(0, thumbnails.size()).forEach(i -> {
String url = thumbnails.get(i);
List<Thumbnail> newThumbnails = thumbnails.stream()
.map(url -> Thumbnail.create(url, pub))
.toList();

if (i < existingThumbnails.size()) {
Thumbnail existingThumbnail = existingThumbnails.get(i);
if (!existingThumbnail.getUrl().equals(url)) {
existingThumbnail.update(url);
}

return;
}
thumbnailRepository.save(Thumbnail.create(url, pub));
});
thumbnailRepository.saveAll(newThumbnails);
}

private void manageMenus(PubManageRequest request, Pub pub) {
private void replaceMenus(List<PubManageRequest.MenuRequest> request, Pub pub) {
Map<Integer, Menu> existingMenus = menuRepository.findAllByPub(pub).stream()
.collect(Collectors.toMap(Menu::getMenuId, menu -> menu));

List<Menu> updatedMenus = request.menuRequests().stream()
List<Menu> updatedMenus = request.stream()
.map(menuRequest -> {
Menu menu = existingMenus.get(menuRequest.menuId());
if (menu != null) {
Expand All @@ -71,6 +62,7 @@ private void manageMenus(PubManageRequest request, Pub pub) {
menuRequest.price(),
menuRequest.oneLiner(),
menuRequest.thumbnail());
existingMenus.remove(menuRequest.menuId());
return menu;
}
return Menu.create(
Expand All @@ -82,5 +74,6 @@ private void manageMenus(PubManageRequest request, Pub pub) {
}).toList();

menuRepository.saveAll(updatedMenus);
menuRepository.deleteAll(existingMenus.values());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ public interface ThumbnailRepository extends JpaRepository<Thumbnail, Long> {
@Query("SELECT t.url FROM thumbnail t WHERE t.pub = :pub")
List<String> findUrlsByPub(Pub pub);

List<Thumbnail> findAllByPub(Pub pub);
void deleteAllByPub(Pub pub);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import site.gachontable.gachontablebe.domain.pub.domain.Pub;
import site.gachontable.gachontablebe.domain.waiting.domain.Waiting;
import site.gachontable.gachontablebe.domain.waiting.domain.repository.WaitingRepository;
Expand All @@ -18,6 +19,7 @@ public class GetStatusByBiztalkImpl implements GetStatusByBiztalk {

private final WaitingRepository waitingRepository;

@Transactional(readOnly = true)
@Override
public StatusResponse execute(UUID waitingId) {
Waiting waiting = waitingRepository.findById(waitingId)
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ spring:
jpa:
show-sql: false
hibernate:
ddl-auto: update
ddl-auto: validate
database: mysql
database-platform: org.hibernate.dialect.MySQLDialect
properties:
Expand Down

0 comments on commit 9c47d4e

Please sign in to comment.