feat(order): add bulk operation records query and excel generation
Showing
7 changed files
with
57 additions
and
2 deletions
| 1 | +package com.infoloop.tianting.model.bo; | ||
| 2 | + | ||
| 3 | +import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +@Data | ||
| 7 | +public class OrderDetailBO { | ||
| 8 | + | ||
| 9 | + private int id; | ||
| 10 | + | ||
| 11 | + public int skuId; | ||
| 12 | + | ||
| 13 | + private String skuName; | ||
| 14 | + | ||
| 15 | + private Integer price; | ||
| 16 | + | ||
| 17 | + private int count; | ||
| 18 | + | ||
| 19 | + private String adjustSkuRemark; | ||
| 20 | + | ||
| 21 | + private ServeStatusEnum serveStatus; | ||
| 22 | +} |
| ... | @@ -520,6 +520,7 @@ public class OrderDbDTO { | ... | @@ -520,6 +520,7 @@ public class OrderDbDTO { |
| 520 | private Integer count; | 520 | private Integer count; |
| 521 | private String adjustSkuRemark; | 521 | private String adjustSkuRemark; |
| 522 | private String serveStatus; | 522 | private String serveStatus; |
| 523 | + private Integer price; | ||
| 523 | } | 524 | } |
| 524 | 525 | ||
| 525 | 526 | ... | ... |
| ... | @@ -103,6 +103,8 @@ public class SettlementDTO { | ... | @@ -103,6 +103,8 @@ public class SettlementDTO { |
| 103 | private String remark; | 103 | private String remark; |
| 104 | private String avoidRemark; | 104 | private String avoidRemark; |
| 105 | private String onlinePay; | 105 | private String onlinePay; |
| 106 | + private String operationType; | ||
| 107 | + private String transactionId; | ||
| 106 | } | 108 | } |
| 107 | 109 | ||
| 108 | @Data | 110 | @Data | ... | ... |
| ... | @@ -22,6 +22,8 @@ import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderBy | ... | @@ -22,6 +22,8 @@ import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderBy |
| 22 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByIdsRpcRequest; | 22 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByIdsRpcRequest; |
| 23 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest; | 23 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest; |
| 24 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersByCustomerIdRpcRequest; | 24 | import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersByCustomerIdRpcRequest; |
| 25 | +import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdsRequest; | ||
| 26 | +import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdsResponse; | ||
| 25 | import com.infoloop.tianting.clientcustomerorderservice.MealDetail; | 27 | import com.infoloop.tianting.clientcustomerorderservice.MealDetail; |
| 26 | import com.infoloop.tianting.clientcustomerorderservice.OnlinePayEnum; | 28 | import com.infoloop.tianting.clientcustomerorderservice.OnlinePayEnum; |
| 27 | import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecordCreation; | 29 | import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecordCreation; |
| ... | @@ -396,7 +398,7 @@ public class OrderServiceRpcClient { | ... | @@ -396,7 +398,7 @@ public class OrderServiceRpcClient { |
| 396 | .updateSource(d.getUpdateSource().getNumber()) | 398 | .updateSource(d.getUpdateSource().getNumber()) |
| 397 | .updatedAt(DateUtil.formatDate(d.getUpdatedAt())) | 399 | .updatedAt(DateUtil.formatDate(d.getUpdatedAt())) |
| 398 | .updatedBy(d.getUpdatedBy()) | 400 | .updatedBy(d.getUpdatedBy()) |
| 399 | - .build()).collect(Collectors.toList()); | 401 | + .build()).toList(); |
| 400 | // 替换菜品的操作记录 | 402 | // 替换菜品的操作记录 |
| 401 | List<SingleOperationDto> operations = new ArrayList<>(); | 403 | List<SingleOperationDto> operations = new ArrayList<>(); |
| 402 | for (OrderDetailDto originalDetail : originalOrderDetails) { | 404 | for (OrderDetailDto originalDetail : originalOrderDetails) { |
| ... | @@ -422,6 +424,7 @@ public class OrderServiceRpcClient { | ... | @@ -422,6 +424,7 @@ public class OrderServiceRpcClient { |
| 422 | .count(newDetail.get().getCount()) | 424 | .count(newDetail.get().getCount()) |
| 423 | .adjustSkuRemark(newDetail.get().getAdjustSkuRemark()) | 425 | .adjustSkuRemark(newDetail.get().getAdjustSkuRemark()) |
| 424 | .serveStatus(newDetail.get().getServeStatus().name()) | 426 | .serveStatus(newDetail.get().getServeStatus().name()) |
| 427 | + .price(newDetail.get().getPrice()) | ||
| 425 | .build(); | 428 | .build(); |
| 426 | newDetailStr = JsonUtil.writeAsJson(List.of(newOrderDetailOperation)); | 429 | newDetailStr = JsonUtil.writeAsJson(List.of(newOrderDetailOperation)); |
| 427 | } | 430 | } |
| ... | @@ -432,6 +435,7 @@ public class OrderServiceRpcClient { | ... | @@ -432,6 +435,7 @@ public class OrderServiceRpcClient { |
| 432 | .count(originalDetail.getCount()) | 435 | .count(originalDetail.getCount()) |
| 433 | .adjustSkuRemark(originalDetail.getAdjustSkuRemark()) | 436 | .adjustSkuRemark(originalDetail.getAdjustSkuRemark()) |
| 434 | .serveStatus(originalDetail.getServeStatus().name()) | 437 | .serveStatus(originalDetail.getServeStatus().name()) |
| 438 | + .price(originalDetail.getPrice()) | ||
| 435 | .build(); | 439 | .build(); |
| 436 | originalDetailStr = JsonUtil.writeAsJson(List.of(originalOrderDetailOperation)); | 440 | originalDetailStr = JsonUtil.writeAsJson(List.of(originalOrderDetailOperation)); |
| 437 | final var operation = SingleOperationDto.builder() | 441 | final var operation = SingleOperationDto.builder() |
| ... | @@ -480,7 +484,6 @@ public class OrderServiceRpcClient { | ... | @@ -480,7 +484,6 @@ public class OrderServiceRpcClient { |
| 480 | .setCreationSource(batchOperationDto.getCreationSource()) | 484 | .setCreationSource(batchOperationDto.getCreationSource()) |
| 481 | .build(); | 485 | .build(); |
| 482 | return orderServiceRpcBlockingStub.batchCreateOrderOperationRecords(request); | 486 | return orderServiceRpcBlockingStub.batchCreateOrderOperationRecords(request); |
| 483 | - | ||
| 484 | } | 487 | } |
| 485 | 488 | ||
| 486 | public QueryClientCustomerOrdersByPaginationRpcResponse queryClientCustomerOrdersByPagination(QueryOrderByPaginationDto queryOrderDto) { | 489 | public QueryClientCustomerOrdersByPaginationRpcResponse queryClientCustomerOrdersByPagination(QueryOrderByPaginationDto queryOrderDto) { |
| ... | @@ -498,6 +501,14 @@ public class OrderServiceRpcClient { | ... | @@ -498,6 +501,14 @@ public class OrderServiceRpcClient { |
| 498 | return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request); | 501 | return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request); |
| 499 | } | 502 | } |
| 500 | 503 | ||
| 504 | + public GetOrderOperationRecordsByOrderIdsResponse getOrderOperationRecordsByOrderIds(int enterpriseId, List<Integer> orderIds) { | ||
| 505 | + final var request = GetOrderOperationRecordsByOrderIdsRequest.newBuilder() | ||
| 506 | + .setEnterpriseId(enterpriseId) | ||
| 507 | + .addAllOrderIds(orderIds) | ||
| 508 | + .build(); | ||
| 509 | + return orderServiceRpcBlockingStub.getOrderOperationRecordsByOrderIds(request); | ||
| 510 | + } | ||
| 511 | + | ||
| 501 | public QueryClientCustomerOrdersByConditionRpcResponse queryClientCustomerOrdersByCondition(OrderDbDTO.QueryOrderDto queryOrderDto) { | 512 | public QueryClientCustomerOrdersByConditionRpcResponse queryClientCustomerOrdersByCondition(OrderDbDTO.QueryOrderDto queryOrderDto) { |
| 502 | final var request = QueryClientCustomerOrdersByConditionRpcRequest.newBuilder() | 513 | final var request = QueryClientCustomerOrdersByConditionRpcRequest.newBuilder() |
| 503 | .setShouldFilterStatus(true) | 514 | .setShouldFilterStatus(true) | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -2,6 +2,7 @@ package com.infoloop.tianting.utils; | ... | @@ -2,6 +2,7 @@ package com.infoloop.tianting.utils; |
| 2 | 2 | ||
| 3 | import com.fasterxml.jackson.annotation.JsonInclude; | 3 | import com.fasterxml.jackson.annotation.JsonInclude; |
| 4 | import com.fasterxml.jackson.core.JsonProcessingException; | 4 | import com.fasterxml.jackson.core.JsonProcessingException; |
| 5 | +import com.fasterxml.jackson.core.type.TypeReference; | ||
| 5 | import com.fasterxml.jackson.databind.DeserializationFeature; | 6 | import com.fasterxml.jackson.databind.DeserializationFeature; |
| 6 | import com.fasterxml.jackson.databind.JsonNode; | 7 | import com.fasterxml.jackson.databind.JsonNode; |
| 7 | import com.fasterxml.jackson.databind.ObjectMapper; | 8 | import com.fasterxml.jackson.databind.ObjectMapper; |
| ... | @@ -41,6 +42,14 @@ public class JsonUtil { | ... | @@ -41,6 +42,14 @@ public class JsonUtil { |
| 41 | } | 42 | } |
| 42 | } | 43 | } |
| 43 | 44 | ||
| 45 | + public static <T> T readJsonAs(final String json, final TypeReference<T> typeRef) { | ||
| 46 | + try { | ||
| 47 | + return OBJECT_MAPPER.readValue(json, typeRef); | ||
| 48 | + } catch (IOException e) { | ||
| 49 | + throw new RuntimeException(e); | ||
| 50 | + } | ||
| 51 | + } | ||
| 52 | + | ||
| 44 | public static <T> T convertValue(final Object object, final Class<T> clazz) { | 53 | public static <T> T convertValue(final Object object, final Class<T> clazz) { |
| 45 | return OBJECT_MAPPER.convertValue(object, clazz); | 54 | return OBJECT_MAPPER.convertValue(object, clazz); |
| 46 | } | 55 | } | ... | ... |
| ... | @@ -32,6 +32,7 @@ service ClientCustomerOrderServiceRpc { | ... | @@ -32,6 +32,7 @@ service ClientCustomerOrderServiceRpc { |
| 32 | 32 | ||
| 33 | // 操作记录 | 33 | // 操作记录 |
| 34 | rpc GetOrderOperationRecordsByOrderId (GetOrderOperationRecordsByOrderIdRequest) returns (GetOrderOperationRecordsByOrderIdResponse) {} | 34 | rpc GetOrderOperationRecordsByOrderId (GetOrderOperationRecordsByOrderIdRequest) returns (GetOrderOperationRecordsByOrderIdResponse) {} |
| 35 | + rpc GetOrderOperationRecordsByOrderIds (GetOrderOperationRecordsByOrderIdsRequest) returns (GetOrderOperationRecordsByOrderIdsResponse) {} | ||
| 35 | rpc BatchCreateOrderOperationRecords (BatchCreateOrderOperationRecordsRequest) returns (BatchCreateOrderOperationRecordsResponse) {} | 36 | rpc BatchCreateOrderOperationRecords (BatchCreateOrderOperationRecordsRequest) returns (BatchCreateOrderOperationRecordsResponse) {} |
| 36 | 37 | ||
| 37 | 38 | ||
| ... | @@ -624,6 +625,15 @@ message GetOrderOperationRecordsByOrderIdResponse { | ... | @@ -624,6 +625,15 @@ message GetOrderOperationRecordsByOrderIdResponse { |
| 624 | repeated OrderOperationRecord responses = 1; | 625 | repeated OrderOperationRecord responses = 1; |
| 625 | } | 626 | } |
| 626 | 627 | ||
| 628 | +message GetOrderOperationRecordsByOrderIdsRequest { | ||
| 629 | + int32 enterpriseId = 1; | ||
| 630 | + repeated int32 orderIds = 2; | ||
| 631 | +} | ||
| 632 | + | ||
| 633 | +message GetOrderOperationRecordsByOrderIdsResponse { | ||
| 634 | + repeated OrderOperationRecord responses = 1; | ||
| 635 | +} | ||
| 636 | + | ||
| 627 | message OrderOperationRecordCreation { | 637 | message OrderOperationRecordCreation { |
| 628 | int32 orderId = 1; | 638 | int32 orderId = 1; |
| 629 | OrderOperationType type = 2; | 639 | OrderOperationType type = 2; | ... | ... |
-
Please register or login to post a comment