Skip to content

Commit

Permalink
Merge pull request #68 from FinalDoubleTen/BE-66-Refactor-STOMP
Browse files Browse the repository at this point in the history
Refactor : 리턴 데이터 형식 API 명세에 맞게 수정
  • Loading branch information
Kim-Dong-Jun99 authored Jan 16, 2024
2 parents 1c0a253 + 9078aec commit d8136eb
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
package org.tenten.tentenstomp.domain.trip.dto.response;

import org.tenten.tentenstomp.domain.trip.dto.request.TripItemPriceUpdateMsg;
import org.tenten.tentenstomp.domain.trip.entity.Trip;
import org.tenten.tentenstomp.domain.trip.entity.TripItem;
import org.tenten.tentenstomp.global.common.enums.Category;
import org.tenten.tentenstomp.global.common.enums.Transportation;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

public record TripItemMsg(
Long tripId,
String visitDate,
Transportation transportation,
List<TripItemInfoMsg> tripItems
) {
public static TripItemMsg fromTripItemList(Long tripId, String visitDate, List<TripItem> tripItems) {
return new TripItemMsg(tripId, visitDate, tripItems.stream().map(t-> new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).toString(), t.getTransportation(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice())).toList());
public static TripItemMsg fromTripItemList(Long tripId, String visitDate, Transportation transportation, List<TripItem> 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()).toString(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice())).toList());
}

public static TripItemMsg fromTripItemList(Long tripId, String visitDate, List<TripItem> tripItems, Long tripItemId, TripItemPriceUpdateMsg updateMsg) {
public static TripItemMsg fromTripItemList(Long tripId, String visitDate, List<TripItem> tripItems, Long tripItemId, Transportation transportation, TripItemPriceUpdateMsg updateMsg) {
List<TripItemInfoMsg> tripItemInfoMsgs = new ArrayList<>();
for (TripItem t : tripItems) {
if (t.getId().equals(tripItemId)) {
tripItemInfoMsgs.add(new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).toString(), t.getTransportation(), t.getSeqNum(), t.getVisitDate().toString(), updateMsg.price()));
tripItemInfoMsgs.add(new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).toString(), t.getSeqNum(), t.getVisitDate().toString(), updateMsg.price()));
} else {
tripItemInfoMsgs.add(new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).toString(), t.getTransportation(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice()));
tripItemInfoMsgs.add(new TripItemInfoMsg(t.getId(), t.getTourItem().getId(), t.getTourItem().getTitle(), t.getTourItem().getOriginalThumbnailUrl(), Category.fromCode(t.getTourItem().getContentTypeId()).toString(), t.getSeqNum(), t.getVisitDate().toString(), t.getPrice()));
}
}
return new TripItemMsg(tripId, visitDate, tripItemInfoMsgs);
return new TripItemMsg(tripId, visitDate, transportation, tripItemInfoMsgs );
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package org.tenten.tentenstomp.domain.trip.dto.response;

import java.time.LocalDate;
import org.tenten.tentenstomp.global.common.enums.Transportation;

import java.util.List;

public record TripPathMsg(
Long tripId,
String visitDate,
Transportation transportation,
List<TripPathInfoMsg> paths
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,14 @@ public TripItemMsg getTripItemMsg(Long tripId, String visitDate) {
return objectMapper.convertValue(cached, TripItemMsg.class);

}
Trip trip = tripRepository.getReferenceById(tripId);
Map<String, Transportation> tripTransportationMap = trip.getTripTransportationMap();
Transportation transportation = tripTransportationMap.getOrDefault(visitDate, CAR);
List<TripItemInfo> tripInfos = tripItemRepository.getTripItemInfoByTripIdAndVisitDate(tripId, LocalDate.parse(visitDate));
List<TripItemInfoMsg> tripItemInfoMsgs = tripInfos.stream().map(t -> new TripItemInfoMsg(
t.tripItemId(), t.tourItemId(), t.name(), t.thumbnailUrl(), Category.fromCode(t.contentTypeId()).getName(), t.seqNum(), t.visitDate().toString(), t.price()
)).toList();
TripItemMsg tripItemMsg = new TripItemMsg(tripId, visitDate, tripItemInfoMsgs);
TripItemMsg tripItemMsg = new TripItemMsg(tripId, visitDate, transportation, tripItemInfoMsgs);
redisCache.save(TRIP_ITEM, Long.toString(tripId), visitDate, tripItemMsg);
return tripItemMsg;

Expand All @@ -83,7 +86,7 @@ public TripPathMsg getTripPathMsg(Long tripId, String visitDate) {
Map<String, Transportation> tripTransportationMap = trip.getTripTransportationMap();
Transportation transportation = tripTransportationMap.getOrDefault(visitDate, CAR);
TripPathCalculationResult tripPath = pathComponent.getTripPath(tripItemRepository.findTripPlaceByTripIdAndVisitDate(tripId, LocalDate.parse(visitDate)), transportation);
TripPathMsg tripPathMsg = new TripPathMsg(tripId, visitDate, tripPath.tripPathInfoMsgs());
TripPathMsg tripPathMsg = new TripPathMsg(tripId, visitDate, transportation, tripPath.tripPathInfoMsgs());
redisCache.save(PATH, Long.toString(tripId), visitDate, tripPathMsg);
return tripPathMsg;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,12 @@ public void updateTripItemPrice(String tripItemId, TripItemPriceUpdateMsg priceU
Long oldPrice = tripItem.getPrice();
Long newPrice = priceUpdateMsg.price();
Trip trip = tripItem.getTrip();
Transportation transportation = trip.getTripTransportationMap().getOrDefault(priceUpdateMsg.visitDate(), CAR);
trip.updateTripItemPriceSum(oldPrice, newPrice);
tripItem.updatePrice(newPrice);
List<TripItem> tripItems = tripItemRepository.findTripItemByTripIdAndVisitDate(tripItem.getTrip().getId(), LocalDate.parse(priceUpdateMsg.visitDate()));
TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), tripItem.getVisitDate().toString(), tripItems, tripItem.getId(), priceUpdateMsg);
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), tripItem.getVisitDate().toString(), tripItems, tripItem.getId(), transportation, priceUpdateMsg);
kafkaProducer.sendAndSaveToRedis(tripBudgetMsg, tripItemMsg);
}

Expand Down Expand Up @@ -112,10 +113,10 @@ public void updateTripItemVisitDate(String tripItemId, TripItemVisitDateUpdateMs
tripPathPriceMap.put(newDate.toString(), newDateTripPath.pathPriceSum());
tripRepository.save(trip);

TripItemMsg pastDateTripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), pastDate.toString(), newPastDateTripItems);
TripItemMsg newDateTripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), newDate.toString(), newDateTripItems);
TripPathMsg pastDateTripPathMsg = new TripPathMsg(trip.getId(), pastDate.toString(), pastDateTripPath.tripPathInfoMsgs());
TripPathMsg newDateTripPathMsg = new TripPathMsg(trip.getId(), newDate.toString(), newDateTripPath.tripPathInfoMsgs());
TripItemMsg pastDateTripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), pastDate.toString(), pastDateTransportation, newPastDateTripItems);
TripItemMsg newDateTripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), newDate.toString(), newDateTransportation, newDateTripItems);
TripPathMsg pastDateTripPathMsg = new TripPathMsg(trip.getId(), pastDate.toString(), pastDateTransportation, pastDateTripPath.tripPathInfoMsgs());
TripPathMsg newDateTripPathMsg = new TripPathMsg(trip.getId(), newDate.toString(), newDateTransportation, newDateTripPath.tripPathInfoMsgs());
TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());

kafkaProducer.sendAndSaveToRedis(pastDateTripItemMsg, newDateTripItemMsg, pastDateTripPathMsg, newDateTripPathMsg, tripBudgetMsg);
Expand Down Expand Up @@ -161,8 +162,8 @@ public void deleteTripItem(String tripItemId, TripItemDeleteMsg tripItemDeleteMs
tripPathPriceMap.put(visitDate.toString(), tripPath.pathPriceSum());
tripRepository.save(trip);

TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate.toString(), newTripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate.toString(), tripPath.tripPathInfoMsgs());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate.toString(), transportation, newTripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate.toString(), transportation, tripPath.tripPathInfoMsgs());
TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());

kafkaProducer.sendAndSaveToRedis(tripItemMsg, tripPathMsg, tripBudgetMsg);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ private void updateBudgetAndItemsAndPath(Trip trip, List<TripItem> tripItems, St
tripRepository.save(trip);

TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate, tripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate, tripPath.tripPathInfoMsgs());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate, transportation, tripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate, transportation, tripPath.tripPathInfoMsgs());

kafkaProducer.sendAndSaveToRedis(tripBudgetMsg, tripItemMsg, tripPathMsg);
}
Expand Down Expand Up @@ -203,8 +203,8 @@ public void updateTripTransportation(String tripId, TripTransportationUpdateMsg
tripRepository.save(trip);

TripBudgetMsg tripBudgetMsg = new TripBudgetMsg(trip.getId(), trip.getBudget(), trip.getTripItemPriceSum() + trip.getTransportationPriceSum());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate, tripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate, tripPath.tripPathInfoMsgs());
TripItemMsg tripItemMsg = TripItemMsg.fromTripItemList(trip.getId(), visitDate, tripTransportationUpdateMsg.transportation(), tripItems);
TripPathMsg tripPathMsg = new TripPathMsg(trip.getId(), visitDate, tripTransportationUpdateMsg.transportation(), tripPath.tripPathInfoMsgs());

kafkaProducer.sendAndSaveToRedis(tripBudgetMsg, tripItemMsg, tripPathMsg);
}
Expand Down

0 comments on commit d8136eb

Please sign in to comment.