wangyingyang

fix

...@@ -60,7 +60,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl ...@@ -60,7 +60,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
60 if (createOrderRpcRequest.getCreation().getShouldCreateCustomerNoticeJson()) { 60 if (createOrderRpcRequest.getCreation().getShouldCreateCustomerNoticeJson()) {
61 orderDb.setCustomerId(createOrderRpcRequest.getCreation().getCustomerId()); 61 orderDb.setCustomerId(createOrderRpcRequest.getCreation().getCustomerId());
62 } 62 }
63 - orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE); 63 + orderDb.setStatus(createOrderRpcRequest.getCreation().getStatusValue());
64 orderDb.setMenuId(createOrderRpcRequest.getCreation().getMenuId()); 64 orderDb.setMenuId(createOrderRpcRequest.getCreation().getMenuId());
65 orderDb.setTotalNum(createOrderRpcRequest.getCreation().getTotalNum()); 65 orderDb.setTotalNum(createOrderRpcRequest.getCreation().getTotalNum());
66 if (createOrderRpcRequest.getCreation().getShouldCreatePayPrice()) { 66 if (createOrderRpcRequest.getCreation().getShouldCreatePayPrice()) {
...@@ -284,7 +284,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl ...@@ -284,7 +284,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
284 { 284 {
285 orderDb.setCustomerId(creation.getCustomerId()); 285 orderDb.setCustomerId(creation.getCustomerId());
286 } 286 }
287 - orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE); 287 + orderDb.setStatus(creation.getStatusValue());
288 orderDb.setMenuId(creation.getMenuId()); 288 orderDb.setMenuId(creation.getMenuId());
289 orderDb.setTotalNum(creation.getTotalNum()); 289 orderDb.setTotalNum(creation.getTotalNum());
290 if (creation.getShouldCreatePayPrice()) { 290 if (creation.getShouldCreatePayPrice()) {
......
...@@ -12,6 +12,7 @@ import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustome ...@@ -12,6 +12,7 @@ import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustome
12 import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcRequest; 12 import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcRequest;
13 import com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderDetailRpcRequest; 13 import com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderDetailRpcRequest;
14 import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest; 14 import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest;
15 +import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
15 import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum; 16 import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum;
16 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderDetailRpcRequest; 17 import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderDetailRpcRequest;
17 import com.tianting.infoloop.mapper.OrderDbMapper; 18 import com.tianting.infoloop.mapper.OrderDbMapper;
...@@ -39,6 +40,7 @@ import org.springframework.stereotype.Service; ...@@ -39,6 +40,7 @@ import org.springframework.stereotype.Service;
39 public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, OrderDetailDb> 40 public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, OrderDetailDb>
40 implements OrderDetailDbService { 41 implements OrderDetailDbService {
41 private final OrderDetailMapper orderDetailMapper; 42 private final OrderDetailMapper orderDetailMapper;
43 + private final OrderDbMapper orderDbMapper;
42 44
43 @Override 45 @Override
44 public OrderDetailDb createOrderDetailDb( 46 public OrderDetailDb createOrderDetailDb(
...@@ -247,7 +249,38 @@ public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, Ord ...@@ -247,7 +249,38 @@ public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, Ord
247 } 249 }
248 return orderDetailDb; 250 return orderDetailDb;
249 }).collect(Collectors.toList()); 251 }).collect(Collectors.toList());
250 - return SpringUtil.getBean(OrderDetailDbServiceImpl.class).updateBatchById(list); 252 + final var res = SpringUtil.getBean(OrderDetailDbServiceImpl.class).updateBatchById(list);
253 + // 如果一个订单中所有的orderDetail都是已出餐状态,那么该订单的状态需要修改为已完成。
254 + final var orderDetailIds = list.stream()
255 + .map(OrderDetailDb::getId)
256 + .distinct()
257 + .collect(Collectors.toList());
258 + QueryWrapper<OrderDetailDb> wrapper = new QueryWrapper<>();
259 + wrapper.eq("isDeleted", false);
260 + wrapper.in("id", orderDetailIds);
261 + final var orderDetails = orderDetailMapper.selectList(wrapper);
262 + final var orderIds = orderDetails.stream()
263 + .map(OrderDetailDb::getOrderId)
264 + .distinct()
265 + .collect(Collectors.toList());
266 +
267 + for (Integer orderId: orderIds) {
268 + final var curOrderDetailStatus = orderDetails.stream()
269 + .filter(d -> d.getOrderId().equals(orderId))
270 + .map(OrderDetailDb::getServeStatus)
271 + .distinct()
272 + .collect(Collectors.toList());
273 + final var serveNotStartStatus = curOrderDetailStatus.stream()
274 + .filter(s -> s.equals(ServeStatusEnum.SERVE_NOT_START_VALUE))
275 + .findAny();
276 + if(serveNotStartStatus.isEmpty()) {
277 + var orderDb = new OrderDb();
278 + orderDb.setId(orderId);
279 + orderDb.setStatus(OrderStatusEnum.ALL_SERVED_VALUE);
280 + orderDbMapper.updateById(orderDb);
281 + }
282 + }
283 + return res;
251 } 284 }
252 285
253 public List<OrderDetailDb> getOrderDetailsByOrderIds( 286 public List<OrderDetailDb> getOrderDetailsByOrderIds(
......