zhuyifan

feat(order): 添加订单详情价格字段并优化更新逻辑

......@@ -731,6 +731,10 @@ public class OrderDbDTO {
@Builder.Default
private Boolean shouldUpdateServeStatus = false;
@ApiModelProperty(value = "价格")
@Builder.Default
private Integer price = null;
@ApiModelProperty(value = "出餐状态: 默认未出餐=1; 不出餐=2; 已出餐=3")
@Builder.Default
private ServeStatusEnum serveStatus = ServeStatusEnum.SERVE_NOT_START;
......
......@@ -245,6 +245,7 @@ public class OrderServiceRpcClient {
final var idsOfNoReject = new ArrayList<Integer>();
List<OrderDetailDto> originalOrderDetails = new ArrayList<>();
List<OrderDetailDto> newOrderDetails;
final var orderDetailsMap = orderDetailBatchUpdateDto.getDetails().stream().collect(Collectors.toMap(OrderDbDTO.OrderDetailUpdateDto::getId, Function.identity()));
final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map(d -> {
var mealDetail = MealDetail.newBuilder().build();
Integer menuDetailId = 0;
......@@ -405,6 +406,7 @@ public class OrderServiceRpcClient {
if (!totalIds.contains(originalDetail.getId())) {
continue;
}
final var orderDetailUpdateDto = orderDetailsMap.get(originalDetail.getId());
OrderOperationType orderOperationType = OrderOperationType.UNKNOWN_OPERATION_TYPE;
if (idsOfNeedUpdateMenuDetails.contains(originalDetail.getId())) {
orderOperationType = OrderOperationType.REPLACE_DISHES;
......@@ -424,7 +426,7 @@ public class OrderServiceRpcClient {
.count(newDetail.get().getCount())
.adjustSkuRemark(newDetail.get().getAdjustSkuRemark())
.serveStatus(newDetail.get().getServeStatus().name())
.price(newDetail.get().getPrice())
.price(orderDetailUpdateDto.getPrice() == null ? newDetail.get().getPrice() : orderDetailUpdateDto.getPrice())
.build();
newDetailStr = JsonUtil.writeAsJson(List.of(newOrderDetailOperation));
}
......