zhuyifan

fix(order):修复查询订单时餐食时间过滤的时区问题- 调整日期解析方法为 parseDate 以确保正确处理日期格式- 明确计算一天开始和结束的时间点(…

…北京时间)- 将北京时间转换为 UTC 时间用于设置查询条件
-保持原有的链式调用风格以提高代码可读性
...@@ -497,10 +497,18 @@ public class OrderServiceRpcClient { ...@@ -497,10 +497,18 @@ public class OrderServiceRpcClient {
497 .setShouldFilterClientIds(true).addClientIds(queryOrderDto.getClientId()) 497 .setShouldFilterClientIds(true).addClientIds(queryOrderDto.getClientId())
498 .setShouldFilterStallIds(true).addAllStallIds(queryOrderDto.getStallIds()); 498 .setShouldFilterStallIds(true).addAllStallIds(queryOrderDto.getStallIds());
499 if (StringUtils.isNotEmpty(queryOrderDto.getMealTime())) { 499 if (StringUtils.isNotEmpty(queryOrderDto.getMealTime())) {
500 - DateTime date = cn.hutool.core.date.DateUtil.parse(queryOrderDto.getMealTime()); 500 + DateTime mealDate = cn.hutool.core.date.DateUtil.parseDate(queryOrderDto.getMealTime());
501 - long startOfDay = cn.hutool.core.date.DateUtil.beginOfDay(date).getTime(); 501 +
502 - long endOfDay = cn.hutool.core.date.DateUtil.endOfDay(date).getTime(); 502 + DateTime startOfDayBeijing = cn.hutool.core.date.DateUtil.beginOfDay(mealDate);
503 - request.setShouldFilterMealTimeStart(true).setMealTimeStart(startOfDay).setShouldFilterMealTimeEnd(true).setMealTimeEnd(endOfDay); 503 + DateTime endOfDayBeijing = cn.hutool.core.date.DateUtil.endOfDay(mealDate);
504 +
505 + long startOfDayUtc = cn.hutool.core.date.DateUtil.offsetHour(startOfDayBeijing, -8).getTime();
506 + long endOfDayUtc = cn.hutool.core.date.DateUtil.offsetHour(endOfDayBeijing, -8).getTime();
507 +
508 + request.setShouldFilterMealTimeStart(true)
509 + .setMealTimeStart(startOfDayUtc)
510 + .setShouldFilterMealTimeEnd(true)
511 + .setMealTimeEnd(endOfDayUtc);
504 } 512 }
505 return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request.build()); 513 return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request.build());
506 } 514 }
......