Showing
5 changed files
with
55 additions
and
0 deletions
| ... | @@ -97,4 +97,13 @@ public class OrderController { | ... | @@ -97,4 +97,13 @@ public class OrderController { |
| 97 | @Valid @RequestBody OrderDbDTO.OrderDetailBatchUpdateDto updateDto) { | 97 | @Valid @RequestBody OrderDbDTO.OrderDetailBatchUpdateDto updateDto) { |
| 98 | return orderService.batchUpdateOrderDetails(updateDto); | 98 | return orderService.batchUpdateOrderDetails(updateDto); |
| 99 | } | 99 | } |
| 100 | + | ||
| 101 | + @ApiOperation(value = "检查是否预定过该餐单") | ||
| 102 | + @PostMapping("/order/check") | ||
| 103 | + @ResponseStatus(HttpStatus.OK) | ||
| 104 | + public Boolean checkOrder( | ||
| 105 | + @Valid @RequestBody OrderDbDTO.CheckIfOrderedDto checkIfOrderedDto) { | ||
| 106 | + return orderService.checkIfOrdered(checkIfOrderedDto); | ||
| 107 | + } | ||
| 108 | + | ||
| 100 | } | 109 | } | ... | ... |
| ... | @@ -114,6 +114,10 @@ public class OrderDbDTO { | ... | @@ -114,6 +114,10 @@ public class OrderDbDTO { |
| 114 | private Boolean shouldFilterStatus = false; | 114 | private Boolean shouldFilterStatus = false; |
| 115 | @Builder.Default | 115 | @Builder.Default |
| 116 | private OrderStatusEnum status = OrderStatusEnum.UNKNOWN_STATUS; | 116 | private OrderStatusEnum status = OrderStatusEnum.UNKNOWN_STATUS; |
| 117 | + @Builder.Default | ||
| 118 | + private Boolean shouldFilterMenuId = false; | ||
| 119 | + @Builder.Default | ||
| 120 | + private Integer menuId = 0; | ||
| 117 | } | 121 | } |
| 118 | 122 | ||
| 119 | @Data | 123 | @Data |
| ... | @@ -570,6 +574,16 @@ public class OrderDbDTO { | ... | @@ -570,6 +574,16 @@ public class OrderDbDTO { |
| 570 | @Data | 574 | @Data |
| 571 | @Builder | 575 | @Builder |
| 572 | @ToString | 576 | @ToString |
| 577 | + @ApiModel(description = "检查是否已预定过某一餐单") | ||
| 578 | + public static class CheckIfOrderedDto { | ||
| 579 | + private Integer customerId; | ||
| 580 | + private Integer menuId; | ||
| 581 | + private LocalDateTime mealTime; | ||
| 582 | + } | ||
| 583 | + | ||
| 584 | + @Data | ||
| 585 | + @Builder | ||
| 586 | + @ToString | ||
| 573 | @ApiModel(description = "修改菜品细节信息") | 587 | @ApiModel(description = "修改菜品细节信息") |
| 574 | public static class OrderDetailUpdateDto { | 588 | public static class OrderDetailUpdateDto { |
| 575 | private Integer id; | 589 | private Integer id; | ... | ... |
| ... | @@ -3,6 +3,7 @@ package com.infoloop.tianting.service; | ... | @@ -3,6 +3,7 @@ package com.infoloop.tianting.service; |
| 3 | import com.infoloop.tianting.model.common.OrderPageResult; | 3 | import com.infoloop.tianting.model.common.OrderPageResult; |
| 4 | import com.infoloop.tianting.model.common.PageResult; | 4 | import com.infoloop.tianting.model.common.PageResult; |
| 5 | import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; | 5 | import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; |
| 6 | +import com.infoloop.tianting.model.dto.OrderDbDTO.CheckIfOrderedDto; | ||
| 6 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; | 7 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; |
| 7 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; | 8 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; |
| 8 | import com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto; | 9 | import com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto; |
| ... | @@ -25,4 +26,5 @@ public interface OrderService { | ... | @@ -25,4 +26,5 @@ public interface OrderService { |
| 25 | CreateOrderResponse orderCreation(OperatorCreateOrderDto createOrderDto); | 26 | CreateOrderResponse orderCreation(OperatorCreateOrderDto createOrderDto); |
| 26 | UpdateOrderResponse updateOrder(UpdateOrderDto updateOrderDto); | 27 | UpdateOrderResponse updateOrder(UpdateOrderDto updateOrderDto); |
| 27 | BatchUpdateOrderDetailResponse batchUpdateOrderDetails(OrderDetailBatchUpdateDto batchUpdateDto); | 28 | BatchUpdateOrderDetailResponse batchUpdateOrderDetails(OrderDetailBatchUpdateDto batchUpdateDto); |
| 29 | + Boolean checkIfOrdered(CheckIfOrderedDto checkIfOrdered); | ||
| 28 | } | 30 | } | ... | ... |
| ... | @@ -85,6 +85,8 @@ public class OrderServiceRpcClient { | ... | @@ -85,6 +85,8 @@ public class OrderServiceRpcClient { |
| 85 | .addAllStallIds(queryOrderDto.getStallIds()) | 85 | .addAllStallIds(queryOrderDto.getStallIds()) |
| 86 | .setShouldFilterStatus(queryOrderDto.getShouldFilterStatus()) | 86 | .setShouldFilterStatus(queryOrderDto.getShouldFilterStatus()) |
| 87 | .setStatus(queryOrderDto.getStatus()) | 87 | .setStatus(queryOrderDto.getStatus()) |
| 88 | + .setShouldFilterMenuIds(queryOrderDto.getShouldFilterMenuId()) | ||
| 89 | + .addAllMenuIds(List.of(queryOrderDto.getMenuId())) | ||
| 88 | .build(); | 90 | .build(); |
| 89 | return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request).getResponsesList(); | 91 | return orderServiceRpcBlockingStub.queryClientCustomerOrdersByCondition(request).getResponsesList(); |
| 90 | } | 92 | } | ... | ... |
| ... | @@ -18,6 +18,7 @@ import com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse; | ... | @@ -18,6 +18,7 @@ import com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse; |
| 18 | import com.infoloop.tianting.model.common.OrderPageResult; | 18 | import com.infoloop.tianting.model.common.OrderPageResult; |
| 19 | import com.infoloop.tianting.model.common.PageResult; | 19 | import com.infoloop.tianting.model.common.PageResult; |
| 20 | import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; | 20 | import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; |
| 21 | +import com.infoloop.tianting.model.dto.OrderDbDTO.CheckIfOrderedDto; | ||
| 21 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto; | 22 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto; |
| 22 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; | 23 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; |
| 23 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; | 24 | import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; |
| ... | @@ -45,6 +46,8 @@ import com.infoloop.tianting.service.client.OrderServiceRpcClient; | ... | @@ -45,6 +46,8 @@ import com.infoloop.tianting.service.client.OrderServiceRpcClient; |
| 45 | import com.infoloop.tianting.service.client.SkuServiceRpcClient; | 46 | import com.infoloop.tianting.service.client.SkuServiceRpcClient; |
| 46 | import com.infoloop.tianting.utils.DateUtil; | 47 | import com.infoloop.tianting.utils.DateUtil; |
| 47 | import com.infoloop.tianting.utils.PageUtil; | 48 | import com.infoloop.tianting.utils.PageUtil; |
| 49 | +import java.time.LocalDate; | ||
| 50 | +import java.time.LocalDateTime; | ||
| 48 | import java.util.ArrayList; | 51 | import java.util.ArrayList; |
| 49 | import java.util.List; | 52 | import java.util.List; |
| 50 | import java.util.Optional; | 53 | import java.util.Optional; |
| ... | @@ -204,6 +207,31 @@ public class OrderServiceImpl implements OrderService { | ... | @@ -204,6 +207,31 @@ public class OrderServiceImpl implements OrderService { |
| 204 | } | 207 | } |
| 205 | 208 | ||
| 206 | @Override | 209 | @Override |
| 210 | + public Boolean checkIfOrdered(CheckIfOrderedDto checkIfOrdered) { | ||
| 211 | + final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); | ||
| 212 | + final var mealTimeStart = checkIfOrdered.getMealTime().toLocalDate().atStartOfDay(); | ||
| 213 | + LocalDate tomorrow = checkIfOrdered.getMealTime().toLocalDate().plusDays(1); | ||
| 214 | + final var mealTimeEnd = tomorrow.atStartOfDay(); | ||
| 215 | + final var queryOrderDto = QueryOrderByConditionDto.builder() | ||
| 216 | + .enterpriseId(operatorLoginInfo.getEnterpriseId()) | ||
| 217 | + .shouldFilterMealTimeStart(true) | ||
| 218 | + .mealTimeStart(mealTimeStart) | ||
| 219 | + .shouldFilterMealTimeEnd(true) | ||
| 220 | + .mealTimeEnd(mealTimeEnd) | ||
| 221 | + .shouldFilterMenuId(true) | ||
| 222 | + .menuId(checkIfOrdered.getMenuId()) | ||
| 223 | + .shouldFilterCustomerIds(true) | ||
| 224 | + .customerIds(List.of(checkIfOrdered.getCustomerId())) | ||
| 225 | + .build(); | ||
| 226 | + final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); | ||
| 227 | + if (orderList.isEmpty()) { | ||
| 228 | + return false; | ||
| 229 | + } else { | ||
| 230 | + return true; | ||
| 231 | + } | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + @Override | ||
| 207 | public List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId) { | 235 | public List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId) { |
| 208 | final var responseList = orderServiceRpcClient.getOrderDetailsByOrderId(orderId); | 236 | final var responseList = orderServiceRpcClient.getOrderDetailsByOrderId(orderId); |
| 209 | return responseList.stream().map(d -> | 237 | return responseList.stream().map(d -> | ... | ... |
-
Please register or login to post a comment