zhuyifan

fix(menu): 优化查询菜单接口返回结果

......@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -70,40 +71,45 @@ public class MenuServiceImpl implements MenuService {
@Override
public List<MenuDto> queryPublishedMenusByStallId(Integer enterpriseId, List<Integer> stallIds) {
final var response = menuServiceRpcClient.queryPublishedMenusByStallId(enterpriseId, stallIds);
return response.getResponsesList().stream().map(menu ->
MenuDto.builder()
.id(menu.getId())
.code(menu.getCode())
.enterpriseId(menu.getEnterpriseId())
.name(menu.getName())
.status(menu.getStatusValue())
.customerScope(menu.getCustomerScope())
.nutritionPromotion(menu.getNutritionPromotion())
.nutritionalStatistics(menu.getNutritionalStatistics())
.dishRuleJson(DishRuleJson.builder()
.days(menu.getDishRuleJson().getDays())
.dishType(menu.getDishRuleJson().getDishType())
.mealIds(menu.getDishRuleJson().getMealIdsList())
.build())
.orderRuleJson(OrderRuleJson.builder()
.allowMicroPlaceOrder(menu.getOrderRuleJson().getAllowMicroPlaceOrder())
.closeTimeType(menu.getOrderRuleJson().getCloseTimeType())
.dishSelectRule(menu.getOrderRuleJson().getDishSelectRule())
.earlyDays(menu.getOrderRuleJson().getEarlyDays())
.modeOfPayment(menu.getOrderRuleJson().getModeOfPayment())
.placeOrderCount(menu.getOrderRuleJson().getPlaceOrderCount())
.startTime(menu.getOrderRuleJson().getStartTime())
.endTime(menu.getOrderRuleJson().getEndTime())
.deadline(menu.getOrderRuleJson().getDeadline())
.build())
.createdBy(menu.getCreatedBy())
.creationSource(menu.getCreationSource())
.createdAt(DateUtil.formatDate(menu.getCreatedAt()))
.updatedBy(menu.getUpdatedBy())
.updateSource(menu.getUpdateSource())
.updatedAt(DateUtil.formatDate(menu.getUpdatedAt()))
.publishAt(DateUtil.formatDate(menu.getPublishAt()))
.build()).collect(Collectors.toList());
return new ArrayList<>(response.getResponsesList().stream()
.collect(Collectors.toMap(
SingleMenuRpcResponse::getId,
menu -> MenuDto.builder()
.id(menu.getId())
.code(menu.getCode())
.enterpriseId(menu.getEnterpriseId())
.name(menu.getName())
.status(menu.getStatusValue())
.customerScope(menu.getCustomerScope())
.nutritionPromotion(menu.getNutritionPromotion())
.nutritionalStatistics(menu.getNutritionalStatistics())
.dishRuleJson(DishRuleJson.builder()
.days(menu.getDishRuleJson().getDays())
.dishType(menu.getDishRuleJson().getDishType())
.mealIds(menu.getDishRuleJson().getMealIdsList())
.build())
.orderRuleJson(OrderRuleJson.builder()
.allowMicroPlaceOrder(menu.getOrderRuleJson().getAllowMicroPlaceOrder())
.closeTimeType(menu.getOrderRuleJson().getCloseTimeType())
.dishSelectRule(menu.getOrderRuleJson().getDishSelectRule())
.earlyDays(menu.getOrderRuleJson().getEarlyDays())
.modeOfPayment(menu.getOrderRuleJson().getModeOfPayment())
.placeOrderCount(menu.getOrderRuleJson().getPlaceOrderCount())
.startTime(menu.getOrderRuleJson().getStartTime())
.endTime(menu.getOrderRuleJson().getEndTime())
.deadline(menu.getOrderRuleJson().getDeadline())
.build())
.createdBy(menu.getCreatedBy())
.creationSource(menu.getCreationSource())
.createdAt(DateUtil.formatDate(menu.getCreatedAt()))
.updatedBy(menu.getUpdatedBy())
.updateSource(menu.getUpdateSource())
.updatedAt(DateUtil.formatDate(menu.getUpdatedAt()))
.publishAt(DateUtil.formatDate(menu.getPublishAt()))
.build(),
(existing, replacement) -> existing
))
.values());
}
@Override
......