wangyingyang

update order

No preview for this file type
No preview for this file type
...@@ -49,6 +49,7 @@ public class InventoryController { ...@@ -49,6 +49,7 @@ public class InventoryController {
49 return inventoryService.getStallsByClientId(enterpriseId, clientId); 49 return inventoryService.getStallsByClientId(enterpriseId, clientId);
50 } 50 }
51 51
52 + @SaIgnore
52 @ApiOperation(value = "获取桌号") 53 @ApiOperation(value = "获取桌号")
53 @PostMapping("/tableCodes") 54 @PostMapping("/tableCodes")
54 @ResponseStatus(HttpStatus.OK) 55 @ResponseStatus(HttpStatus.OK)
......
1 package com.infoloop.tianting.controller; 1 package com.infoloop.tianting.controller;
2 2
3 +import cn.dev33.satoken.annotation.SaIgnore;
3 import com.github.xiaoymin.knife4j.annotations.ApiSupport; 4 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
4 import com.infoloop.tianting.model.dto.OrderDbDTO; 5 import com.infoloop.tianting.model.dto.OrderDbDTO;
5 import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; 6 import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse;
...@@ -71,6 +72,15 @@ public class OrderController { ...@@ -71,6 +72,15 @@ public class OrderController {
71 return orderService.createOrder(createOrderDto); 72 return orderService.createOrder(createOrderDto);
72 } 73 }
73 74
75 + @ApiOperation(value = "创建订单")
76 + @PostMapping("/operator/orders")
77 + @ResponseStatus(HttpStatus.OK)
78 + public CreateOrderResponse createOrderByOperator(
79 + @Valid @RequestBody OrderDbDTO.OperatorCreateOrderDto createOrderDto) {
80 + return orderService.orderCreation(createOrderDto);
81 + }
82 +
83 +// @SaIgnore
74 @ApiOperation(value = "修改订单") 84 @ApiOperation(value = "修改订单")
75 @PatchMapping("/orders/modification") 85 @PatchMapping("/orders/modification")
76 @ResponseStatus(HttpStatus.OK) 86 @ResponseStatus(HttpStatus.OK)
...@@ -78,6 +88,7 @@ public class OrderController { ...@@ -78,6 +88,7 @@ public class OrderController {
78 return orderService.updateOrder(updateOrderDto); 88 return orderService.updateOrder(updateOrderDto);
79 } 89 }
80 90
91 +// @SaIgnore
81 @ApiOperation(value = "批量修改订单详情") 92 @ApiOperation(value = "批量修改订单详情")
82 @PatchMapping("/order_details/modification") 93 @PatchMapping("/order_details/modification")
83 @ResponseStatus(HttpStatus.OK) 94 @ResponseStatus(HttpStatus.OK)
......
...@@ -13,8 +13,10 @@ import java.util.List; ...@@ -13,8 +13,10 @@ import java.util.List;
13 import java.util.Optional; 13 import java.util.Optional;
14 import javax.validation.Valid; 14 import javax.validation.Valid;
15 import jdk.jfr.StackTrace; 15 import jdk.jfr.StackTrace;
16 +import lombok.AllArgsConstructor;
16 import lombok.Builder; 17 import lombok.Builder;
17 import lombok.Data; 18 import lombok.Data;
19 +import lombok.NoArgsConstructor;
18 import lombok.ToString; 20 import lombok.ToString;
19 21
20 @Data 22 @Data
...@@ -144,9 +146,35 @@ public class OrderDbDTO { ...@@ -144,9 +146,35 @@ public class OrderDbDTO {
144 private List<String> doctors; 146 private List<String> doctors;
145 } 147 }
146 148
149 +
147 @Data 150 @Data
148 @Builder 151 @Builder
149 @ApiModel(description = "创建订单视图") 152 @ApiModel(description = "创建订单视图")
153 + public static class OperatorCreateOrderDto {
154 + @ApiModelProperty(value = "档口 ID")
155 + private Integer stallId;
156 +
157 + @ApiModelProperty(value = "客户 ID")
158 + private Integer customerId;
159 +
160 + @ApiModelProperty(value = "餐单 id")
161 + private Integer menuId;
162 +
163 + @ApiModelProperty(value = "用餐日期")
164 + private LocalDateTime mealTime;
165 +
166 + @ApiModelProperty(value = "备注")
167 + private String remark;
168 +
169 + @ApiModelProperty(value = "订单菜品详情列表")
170 + private List<OperatorCreateOrderDetailDto> orderDetailDtos;
171 + }
172 +
173 + @Data
174 + @Builder
175 + @NoArgsConstructor
176 + @AllArgsConstructor
177 + @ApiModel(description = "创建订单视图")
150 public static class CreateOrderDto { 178 public static class CreateOrderDto {
151 @ApiModelProperty(value = "企业 ID") 179 @ApiModelProperty(value = "企业 ID")
152 private Integer enterpriseId; 180 private Integer enterpriseId;
...@@ -158,7 +186,7 @@ public class OrderDbDTO { ...@@ -158,7 +186,7 @@ public class OrderDbDTO {
158 private Integer stallId; 186 private Integer stallId;
159 187
160 @ApiModelProperty(value = "需要创建客户 ID") 188 @ApiModelProperty(value = "需要创建客户 ID")
161 - public Boolean shouldCreateCustomerId; 189 + private Boolean shouldCreateCustomerId;
162 190
163 @ApiModelProperty(value = "客户 ID") 191 @ApiModelProperty(value = "客户 ID")
164 private Integer customerId; 192 private Integer customerId;
...@@ -440,6 +468,18 @@ public class OrderDbDTO { ...@@ -440,6 +468,18 @@ public class OrderDbDTO {
440 @Builder 468 @Builder
441 @ToString 469 @ToString
442 @ApiModel(description = "订单详情信息,即菜品细节") 470 @ApiModel(description = "订单详情信息,即菜品细节")
471 + public static class OperatorCreateOrderDetailDto {
472 + @ApiModelProperty(value = "餐单详情 id,即菜品")
473 + private Integer menuDetailId;
474 +
475 + @ApiModelProperty(value = "菜品所点份数")
476 + private Integer count;
477 + }
478 +
479 + @Data
480 + @Builder
481 + @ToString
482 + @ApiModel(description = "订单详情信息,即菜品细节")
443 public static class CreateOrderDetailDto { 483 public static class CreateOrderDetailDto {
444 @ApiModelProperty(value = "餐单详情 id,即菜品") 484 @ApiModelProperty(value = "餐单详情 id,即菜品")
445 private Integer menuDetailId; 485 private Integer menuDetailId;
......
...@@ -4,6 +4,7 @@ import com.infoloop.tianting.model.common.PageResult; ...@@ -4,6 +4,7 @@ import com.infoloop.tianting.model.common.PageResult;
4 import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse; 4 import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse;
5 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; 5 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto;
6 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; 6 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse;
7 +import com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto;
7 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto; 8 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto;
8 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto; 9 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto;
9 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto; 10 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto;
...@@ -20,6 +21,7 @@ public interface OrderService { ...@@ -20,6 +21,7 @@ public interface OrderService {
20 PageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto); 21 PageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto);
21 List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId); 22 List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId);
22 CreateOrderResponse createOrder(CreateOrderDto createOrderDto); 23 CreateOrderResponse createOrder(CreateOrderDto createOrderDto);
24 + CreateOrderResponse orderCreation(OperatorCreateOrderDto createOrderDto);
23 UpdateOrderResponse updateOrder(UpdateOrderDto updateOrderDto); 25 UpdateOrderResponse updateOrder(UpdateOrderDto updateOrderDto);
24 BatchUpdateOrderDetailResponse batchUpdateOrderDetails(OrderDetailBatchUpdateDto batchUpdateDto); 26 BatchUpdateOrderDetailResponse batchUpdateOrderDetails(OrderDetailBatchUpdateDto batchUpdateDto);
25 } 27 }
......
1 package com.infoloop.tianting.service.client; 1 package com.infoloop.tianting.service.client;
2 2
3 import com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum; 3 import com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum;
4 +import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcRequest;
5 +import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcResponse;
4 import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcRequest; 6 import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcRequest;
5 import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcResponse; 7 import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcResponse;
6 import com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc; 8 import com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc;
7 import com.infoloop.tianting.model.dto.ClientLabelDTO.QueryLabelsDto; 9 import com.infoloop.tianting.model.dto.ClientLabelDTO.QueryLabelsDto;
10 +import java.util.List;
8 import lombok.RequiredArgsConstructor; 11 import lombok.RequiredArgsConstructor;
9 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
...@@ -26,4 +29,16 @@ public class DeliveryRuleServiceRpcClient { ...@@ -26,4 +29,16 @@ public class DeliveryRuleServiceRpcClient {
26 return deliveryRuleServiceRpcBlockingStub.queryClientLabelsByCondition(request); 29 return deliveryRuleServiceRpcBlockingStub.queryClientLabelsByCondition(request);
27 30
28 } 31 }
32 +
33 + public GetClientLabelsByIdsRpcResponse GetClientLabelsByIds(Integer enterpriseId, List<Integer> ids) {
34 + final var request = GetClientLabelsByIdsRpcRequest
35 + .newBuilder()
36 + .setEnterpriseId(enterpriseId)
37 + .setIncludeDeleted(false)
38 + .addAllIds(ids)
39 + .build();
40 + return deliveryRuleServiceRpcBlockingStub.getClientLabelsByIds(request);
41 + }
42 +
43 +
29 } 44 }
......
...@@ -39,7 +39,6 @@ import io.swagger.models.auth.In; ...@@ -39,7 +39,6 @@ import io.swagger.models.auth.In;
39 import java.time.ZoneOffset; 39 import java.time.ZoneOffset;
40 import java.util.ArrayList; 40 import java.util.ArrayList;
41 import java.util.List; 41 import java.util.List;
42 -import java.util.stream.Collector;
43 import java.util.stream.Collectors; 42 import java.util.stream.Collectors;
44 import lombok.RequiredArgsConstructor; 43 import lombok.RequiredArgsConstructor;
45 import org.springframework.beans.factory.annotation.Autowired; 44 import org.springframework.beans.factory.annotation.Autowired;
...@@ -67,12 +66,26 @@ public class OrderServiceRpcClient { ...@@ -67,12 +66,26 @@ public class OrderServiceRpcClient {
67 66
68 public UpdateClientCustomerOrderRpcResponse updateClientCustomerOrder( 67 public UpdateClientCustomerOrderRpcResponse updateClientCustomerOrder(
69 UpdateOrderDto updateOrderDto) { 68 UpdateOrderDto updateOrderDto) {
69 + OrderStatusEnum status = OrderStatusEnum.UNKNOWN_STATUS;
70 + if (updateOrderDto.isShouldUpdateStatus()) {
71 + status = updateOrderDto.getStatus();
72 + }
73 + String roomNo = "";
74 + if (updateOrderDto.isShouldUpdateRoomNo()) {
75 + roomNo = updateOrderDto.getRoomNo();
76 + }
77 + String tableCode = "";
78 + if (updateOrderDto.isShouldUpdateTableCode()) {
79 + tableCode = updateOrderDto.getTableCode();
80 + }
70 final var modification = ClientCustomerOrderModification.newBuilder() 81 final var modification = ClientCustomerOrderModification.newBuilder()
71 .setId(updateOrderDto.getId()) 82 .setId(updateOrderDto.getId())
72 .setShouldUpdateStatus(updateOrderDto.isShouldUpdateStatus()) 83 .setShouldUpdateStatus(updateOrderDto.isShouldUpdateStatus())
73 - .setStatus(updateOrderDto.getStatus()) 84 + .setStatus(status)
74 .setShouldUpdateTableCode(updateOrderDto.isShouldUpdateTableCode()) 85 .setShouldUpdateTableCode(updateOrderDto.isShouldUpdateTableCode())
75 - .setTableCode(updateOrderDto.getTableCode()) 86 + .setTableCode(tableCode)
87 + .setShouldUpdateRoomNo(updateOrderDto.isShouldUpdateRoomNo())
88 + .setRoomNo(roomNo)
76 .build(); 89 .build();
77 final var request = UpdateClientCustomerOrderRpcRequest.newBuilder() 90 final var request = UpdateClientCustomerOrderRpcRequest.newBuilder()
78 .setEnterpriseId(updateOrderDto.getEnterpriseId()) 91 .setEnterpriseId(updateOrderDto.getEnterpriseId())
...@@ -86,38 +99,74 @@ public class OrderServiceRpcClient { ...@@ -86,38 +99,74 @@ public class OrderServiceRpcClient {
86 99
87 public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails( 100 public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails(
88 OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) { 101 OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) {
89 - final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d-> 102 + final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d-> {
90 - ClientCustomerOrderDetailModification.newBuilder() 103 + MealDetail mealDetail;
104 + if(d.getShouldUpdateMealDetailJson()) {
105 + mealDetail = MealDetail.newBuilder()
106 + .setBasicMaterials(d.getMealDetailJson().getBasicMaterials())
107 + .addAllTastes(d.getMealDetailJson().getTastes())
108 + .addAllEfficacies(d.getMealDetailJson().getEfficacies())
109 + .addAllDockers(d.getMealDetailJson().getDockers())
110 + .setEnergy(d.getMealDetailJson().getEnergy())
111 + .setFat(d.getMealDetailJson().getFat())
112 + .setProtein(d.getMealDetailJson().getProtein())
113 + .setCarbohydrate(d.getMealDetailJson().getCarbohydrate())
114 + .addAllAllergies(d.getMealDetailJson().getAllergies())
115 + .addAllAvoids(d.getMealDetailJson().getAvoids())
116 + .addAllSkus(d.getMealDetailJson().getSkus())
117 + .build();
118 + } else {
119 + mealDetail = MealDetail.newBuilder().build();
120 + }
121 + Integer menuDetailId = 0;
122 + if (d.getShouldUpdateMenuDetailId()) {
123 + menuDetailId = d.getMenuDetailId();
124 + }
125 + Integer count = 0;
126 + if (d.getShouldUpdateCount()) {
127 + count = d.getCount();
128 + }
129 + Integer mealId = 0;
130 + if (d.getShouldUpdateMealId()) {
131 + mealId = d.getMealId();
132 + }
133 + Integer categoryId = 0;
134 + if (d.getShouldUpdateCategoryId()) {
135 + categoryId = d.getCategoryId();
136 + }
137 + Integer skuId = 0;
138 + if (d.getShouldUpdateSkuId()) {
139 + skuId = d.getSkuId();
140 + }
141 + String showName = "";
142 + if (d.getShouldUpdateShowName()) {
143 + showName = d.getShowName();
144 + }
145 + Boolean notServe = false;
146 + if (d.getShouldUpdateNotServe()) {
147 + notServe = true;
148 + }
149 + final var detail = ClientCustomerOrderDetailModification.newBuilder()
91 .setId(d.getId()) 150 .setId(d.getId())
92 .setShouldUpdateMenuDetailId(d.getShouldUpdateMenuDetailId()) 151 .setShouldUpdateMenuDetailId(d.getShouldUpdateMenuDetailId())
93 - .setMenuDetailId(d.getMenuDetailId()) 152 + .setMenuDetailId(menuDetailId)
94 .setShouldUpdateCount(d.getShouldUpdateCount()) 153 .setShouldUpdateCount(d.getShouldUpdateCount())
95 - .setCount(d.getCount()) 154 + .setCount(count)
96 .setShouldUpdateMealId(d.getShouldUpdateMealId()) 155 .setShouldUpdateMealId(d.getShouldUpdateMealId())
97 - .setMealId(d.getMealId()) 156 + .setMealId(mealId)
98 .setShouldUpdateCategoryId(d.getShouldUpdateCategoryId()) 157 .setShouldUpdateCategoryId(d.getShouldUpdateCategoryId())
99 - .setCategoryId(d.getCategoryId()) 158 + .setCategoryId(categoryId)
100 .setShouldUpdateSkuId(d.getShouldUpdateSkuId()) 159 .setShouldUpdateSkuId(d.getShouldUpdateSkuId())
101 - .setSkuId(d.getSkuId()) 160 + .setSkuId(skuId)
102 .setShouldUpdateShowName(d.getShouldUpdateShowName()) 161 .setShouldUpdateShowName(d.getShouldUpdateShowName())
103 - .setShowName(d.getShowName()) 162 + .setShowName(showName)
104 .setShouldUpdateNotServe(d.getShouldUpdateNotServe()) 163 .setShouldUpdateNotServe(d.getShouldUpdateNotServe())
105 - .setNotServe(d.getNotServe()) 164 + .setNotServe(notServe)
106 .setShouldUpdateMealDetailJson(d.getShouldUpdateMealDetailJson()) 165 .setShouldUpdateMealDetailJson(d.getShouldUpdateMealDetailJson())
107 - .setMealDetailJson(MealDetail.newBuilder() 166 + .setMealDetailJson(mealDetail)
108 - .setBasicMaterials(d.getMealDetailJson().getBasicMaterials()) 167 + .build();
109 - .addAllTastes(d.getMealDetailJson().getTastes()) 168 + return detail;
110 - .addAllEfficacies(d.getMealDetailJson().getEfficacies()) 169 + }
111 - .addAllDockers(d.getMealDetailJson().getDockers())
112 - .setEnergy(d.getMealDetailJson().getEnergy())
113 - .setFat(d.getMealDetailJson().getFat())
114 - .setProtein(d.getMealDetailJson().getProtein())
115 - .setCarbohydrate(d.getMealDetailJson().getCarbohydrate())
116 - .addAllAllergies(d.getMealDetailJson().getAllergies())
117 - .addAllAvoids(d.getMealDetailJson().getAvoids())
118 - .addAllSkus(d.getMealDetailJson().getSkus())
119 - .build())
120 - .build()
121 ).collect(Collectors.toList()); 170 ).collect(Collectors.toList());
122 final var request = BatchUpdateClientCustomerOrderDetailsRpcRequest.newBuilder() 171 final var request = BatchUpdateClientCustomerOrderDetailsRpcRequest.newBuilder()
123 .setEnterpriseId(orderDetailBatchUpdateDto.getEnterpriseId()) 172 .setEnterpriseId(orderDetailBatchUpdateDto.getEnterpriseId())
......