diff --git a/src/main/java/org/tenten/tentenstomp/domain/trip/dto/response/TripItemMsg.java b/src/main/java/org/tenten/tentenstomp/domain/trip/dto/response/TripItemMsg.java index 9d44caa..2061f05 100644 --- a/src/main/java/org/tenten/tentenstomp/domain/trip/dto/response/TripItemMsg.java +++ b/src/main/java/org/tenten/tentenstomp/domain/trip/dto/response/TripItemMsg.java @@ -16,7 +16,15 @@ public record TripItemMsg( ) { public static TripItemMsg fromTripItemList(Long tripId, String visitDate, Transportation transportation, List tripItems) { - return new TripItemMsg(tripId, visitDate, transportation, tripItems.stream().map(t -> new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).getName(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice())).toList()); + List tripItemInfoMsgs = new ArrayList<>(tripItems.stream().map(t -> new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).getName(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice())).toList()); + tripItemInfoMsgs.sort((a, b) -> { + if (!a.seqNum().equals(b.seqNum())) { + + return Integer.parseInt(Long.toString(a.seqNum() - b.seqNum())); + } + return Integer.parseInt(Long.toString(a.tripItemId() - b.tripItemId())); + }); + return new TripItemMsg(tripId, visitDate, transportation, tripItemInfoMsgs); } public static TripItemMsg fromTripItemList(Long tripId, String visitDate, List tripItems, Long tripItemId, Transportation transportation, TripItemPriceUpdateMsg updateMsg) { @@ -28,6 +36,13 @@ public static TripItemMsg fromTripItemList(Long tripId, String visitDate, List { + if (!a.seqNum().equals(b.seqNum())) { + + return Integer.parseInt(Long.toString(a.seqNum() - b.seqNum())); + } + return Integer.parseInt(Long.toString(a.tripItemId() - b.tripItemId())); + }); return new TripItemMsg(tripId, visitDate, transportation, tripItemInfoMsgs ); } } diff --git a/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripItemService.java b/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripItemService.java index a0569e1..0d56234 100644 --- a/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripItemService.java +++ b/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripItemService.java @@ -61,7 +61,6 @@ public void updateTripItemPrice(String tripItemId, TripItemPriceUpdateMsg priceU TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum()); TripItemMsg tripItemMsg = fromTripItemList(trip.getId(), tripItem.getVisitDate().toString(), tripItems, tripItem.getId(), fromName(transportation), priceUpdateMsg); - trip.updateTripTransportationMap(tripTransportationMap); tripRepository.save(trip); kafkaProducer.sendAndSaveToRedis(tripBudgetMsg, tripItemMsg); @@ -83,7 +82,7 @@ public void updateTripItemVisitDate(String tripItemId, TripItemVisitDateUpdateMs ); } else { TripItem tripItem = optionalTripItem.get(); - Trip trip = tripRepository.getReferenceById(tripItem.getTrip().getId()); + Trip trip = tripItem.getTrip(); Map tripTransportationMap = trip.getTripTransportationMap(); LocalDate pastDate = tripItem.getVisitDate(); String pastDateTransportation = tripTransportationMap.getOrDefault(pastDate.toString(), CAR.getName()); @@ -124,7 +123,6 @@ public void updateTripItemVisitDate(String tripItemId, TripItemVisitDateUpdateMs trip.updateTransportationPriceSum(tripPathPriceMap.getOrDefault(newDate.toString(), 0), newDateTripPath.pathPriceSum()); tripPathPriceMap.put(pastDate.toString(), pastDateTripPath.pathPriceSum()); tripPathPriceMap.put(newDate.toString(), newDateTripPath.pathPriceSum()); - trip.updateTripTransportationMap(tripTransportationMap); trip.updateTripPathPriceMap(tripPathPriceMap); tripRepository.save(trip); @@ -153,7 +151,7 @@ public void deleteTripItem(String tripItemId, TripItemDeleteMsg tripItemDeleteMs ); } else { TripItem tripItem = optionalTripItem.get(); - Trip trip = tripRepository.getReferenceById(tripItem.getTrip().getId()); + Trip trip = tripItem.getTrip(); Map tripTransportationMap = trip.getTripTransportationMap(); LocalDate visitDate = tripItem.getVisitDate(); String transportation = tripTransportationMap.getOrDefault(visitDate.toString(), CAR.getName()); diff --git a/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripService.java b/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripService.java index f133ad7..9e8ae1a 100644 --- a/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripService.java +++ b/src/main/java/org/tenten/tentenstomp/domain/trip/service/TripService.java @@ -161,7 +161,6 @@ private void updateBudgetAndItemsAndPath(Trip trip, List tripItems, St trip.updateTransportationPriceSum(tripPathPriceMap.getOrDefault(visitDate, 0), tripPath.pathPriceSum()); tripPathPriceMap.put(visitDate, tripPath.pathPriceSum()); trip.updateTripPathPriceMap(tripPathPriceMap); - trip.updateTripTransportationMap(tripTransportationMap); tripRepository.save(trip); TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());