zhuyifan

fix(service): 修复订单创建时的时区问题

......@@ -593,7 +593,7 @@ public class OrderServiceRpcClient {
.setMenuId(createOrderDto.getMenuId())
.setTotalNum(createOrderDto.getTotalNum())
.setShouldCreatePayPrice(createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL).setPayPrice(createOrderDto.getPayPrice())
.setMealTime(createOrderDto.getMealTime().toLocalDate().atStartOfDay(DateUtil.CHINA_ZONE).toInstant().toEpochMilli())
.setMealTime(createOrderDto.getMealTime().atZone(ZoneOffset.UTC).withZoneSameInstant(DateUtil.CHINA_ZONE).toLocalDate().atStartOfDay(DateUtil.CHINA_ZONE).toInstant().toEpochMilli())
.setShouldCreatePickupCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)).setPickupCode(generatePickupCode())
.setShouldCreateOrderType(true).setOrderType(menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.RESERVATION ? OrderTypeEnum.DELIVERY : OrderTypeEnum.DINE_IN)
.setShouldCreateRemark(true).setRemark(createOrderDto.getRemark())
......@@ -601,6 +601,7 @@ public class OrderServiceRpcClient {
.setCloseTimeType(createOrderDto.getCloseTimeType())
.setShouldCreateOrderDetails(true).addAllOrderDetails(orderDetails)
.build();
log.info("createOrder mealTime:{}", createOrderDto.getMealTime());
if (menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
final var skuIds = createOrderDto.getOrderDetailDtos().stream().map(CreateOrderDetailDto::getSkuId).collect(Collectors.toList());
......
......@@ -98,7 +98,7 @@ public class OrderServiceImpl implements OrderService {
createOrderDto.setCustomerId(operatorCreateOrderDto.getCustomerId());
createOrderDto.setStallId(operatorCreateOrderDto.getStallId());
createOrderDto.setMenuId(operatorCreateOrderDto.getMenuId());
createOrderDto.setMealTime(operatorCreateOrderDto.getMealTime().toLocalDate().atStartOfDay());
createOrderDto.setMealTime(operatorCreateOrderDto.getMealTime());
createOrderDto.setRemark(operatorCreateOrderDto.getRemark());
createOrderDto.setCreatedBy(operatorLoginInfo.getId());
createOrderDto.setClientId(operator.getClientId());
......