zhuyifan

feat(order): 添加订单用餐时间查询功能

- 在OrderDbDTO中新增mealTime字段用于存储用餐时间- 在OrderServiceRpcClient中引入日期处理工具类
- 实现根据用餐时间范围过滤订单的查询逻辑
-优化代码格式并保持方法参数对齐
...@@ -71,6 +71,7 @@ public class OrderDbDTO { ...@@ -71,6 +71,7 @@ public class OrderDbDTO {
71 private OrderStatusEnum status; 71 private OrderStatusEnum status;
72 private String keyword; 72 private String keyword;
73 private List<Integer> stallIds; 73 private List<Integer> stallIds;
74 + private String mealTime;
74 } 75 }
75 76
76 @Data 77 @Data
......
1 package com.infoloop.tianting.service.client; 1 package com.infoloop.tianting.service.client;
2 2
3 +import cn.hutool.core.date.DateTime;
3 import com.infoloop.tianting.SingleResponse; 4 import com.infoloop.tianting.SingleResponse;
4 import com.infoloop.tianting.SingleSkuResponse; 5 import com.infoloop.tianting.SingleSkuResponse;
5 import com.infoloop.tianting.SingleSpecialResponse; 6 import com.infoloop.tianting.SingleSpecialResponse;
...@@ -494,24 +495,29 @@ public class OrderServiceRpcClient { ...@@ -494,24 +495,29 @@ public class OrderServiceRpcClient {
494 .setStatus(queryOrderDto.getStatus()) 495 .setStatus(queryOrderDto.getStatus())
495 .setEnterpriseId(queryOrderDto.getEnterpriseId()) 496 .setEnterpriseId(queryOrderDto.getEnterpriseId())
496 .setShouldFilterClientIds(true).addClientIds(queryOrderDto.getClientId()) 497 .setShouldFilterClientIds(true).addClientIds(queryOrderDto.getClientId())
497 - .setShouldFilterStallIds(true).addAllStallIds(queryOrderDto.getStallIds()) 498 + .setShouldFilterStallIds(true).addAllStallIds(queryOrderDto.getStallIds());
498 - .build(); 499 + if (StringUtils.isNotEmpty(queryOrderDto.getMealTime())) {
499 - return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request); 500 + DateTime date = cn.hutool.core.date.DateUtil.parse(queryOrderDto.getMealTime());
501 + long startOfDay = cn.hutool.core.date.DateUtil.beginOfDay(date).getTime();
502 + long endOfDay = cn.hutool.core.date.DateUtil.endOfDay(date).getTime();
503 + request.setShouldFilterMealTimeStart(true).setMealTimeStart(startOfDay).setShouldFilterMealTimeEnd(true).setMealTimeEnd(endOfDay);
504 + }
505 + return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request.build());
500 } 506 }
501 507
502 public QueryClientCustomerOrdersByPaginationRpcResponse queryRefundClientCustomerOrdersByPagination( 508 public QueryClientCustomerOrdersByPaginationRpcResponse queryRefundClientCustomerOrdersByPagination(
503 - QueryRefundOrderByPaginationDto queryOrderDto) { 509 + QueryRefundOrderByPaginationDto queryOrderDto) {
504 final var request = QueryClientCustomerOrdersByPaginationRpcRequest.newBuilder() 510 final var request = QueryClientCustomerOrdersByPaginationRpcRequest.newBuilder()
505 - .setKeyword(queryOrderDto.getKeyword() == null ? "" : queryOrderDto.getKeyword()) 511 + .setKeyword(queryOrderDto.getKeyword() == null ? "" : queryOrderDto.getKeyword())
506 - .setPageNo(queryOrderDto.getPn()) 512 + .setPageNo(queryOrderDto.getPn())
507 - .setPageSize(queryOrderDto.getPz()) 513 + .setPageSize(queryOrderDto.getPz())
508 - .setShouldFilterStatus(false) 514 + .setShouldFilterStatus(false)
509 - .setShouldFilterPayStatus(true) 515 + .setShouldFilterPayStatus(true)
510 - .setPayStatus(PayStatusEnum.REFUND) 516 + .setPayStatus(PayStatusEnum.REFUND)
511 - .setEnterpriseId(queryOrderDto.getEnterpriseId()) 517 + .setEnterpriseId(queryOrderDto.getEnterpriseId())
512 - .setClientId(queryOrderDto.getClientId()) 518 + .setClientId(queryOrderDto.getClientId())
513 - .addAllStallIds(queryOrderDto.getStallIds()) 519 + .addAllStallIds(queryOrderDto.getStallIds())
514 - .build(); 520 + .build();
515 return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request); 521 return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request);
516 } 522 }
517 523
...@@ -646,11 +652,11 @@ public class OrderServiceRpcClient { ...@@ -646,11 +652,11 @@ public class OrderServiceRpcClient {
646 } 652 }
647 } 653 }
648 final var orderResponse = orderServiceRpcBlockingStub.createClientCustomerOrder(CreateClientCustomerOrderRpcRequest.newBuilder() 654 final var orderResponse = orderServiceRpcBlockingStub.createClientCustomerOrder(CreateClientCustomerOrderRpcRequest.newBuilder()
649 - .setCreation(creation) 655 + .setCreation(creation)
650 - .setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource())) 656 + .setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource()))
651 - .setEnterpriseId(createOrderDto.getEnterpriseId()) 657 + .setEnterpriseId(createOrderDto.getEnterpriseId())
652 - .setCreatedBy(createOrderDto.getCreatedBy()) 658 + .setCreatedBy(createOrderDto.getCreatedBy())
653 - .build()); 659 + .build());
654 if (orderResponse.getIsCreated()) { 660 if (orderResponse.getIsCreated()) {
655 // 用餐时间为当天,并且非在线支付餐单,发送消息给客户端 661 // 用餐时间为当天,并且非在线支付餐单,发送消息给客户端
656 if (createOrderDto.getMealTime().toLocalDate().equals(LocalDate.now()) && menuById.getResponse().getOrderRuleJson().getModeOfPayment() != ModeOfPaymentEnum.ONLINE) { 662 if (createOrderDto.getMealTime().toLocalDate().equals(LocalDate.now()) && menuById.getResponse().getOrderRuleJson().getModeOfPayment() != ModeOfPaymentEnum.ONLINE) {
......