wangyingyang

fix

......@@ -60,7 +60,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
if (createOrderRpcRequest.getCreation().getShouldCreateCustomerNoticeJson()) {
orderDb.setCustomerId(createOrderRpcRequest.getCreation().getCustomerId());
}
orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE);
orderDb.setStatus(createOrderRpcRequest.getCreation().getStatusValue());
orderDb.setMenuId(createOrderRpcRequest.getCreation().getMenuId());
orderDb.setTotalNum(createOrderRpcRequest.getCreation().getTotalNum());
if (createOrderRpcRequest.getCreation().getShouldCreatePayPrice()) {
......@@ -284,7 +284,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
{
orderDb.setCustomerId(creation.getCustomerId());
}
orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE);
orderDb.setStatus(creation.getStatusValue());
orderDb.setMenuId(creation.getMenuId());
orderDb.setTotalNum(creation.getTotalNum());
if (creation.getShouldCreatePayPrice()) {
......
......@@ -12,6 +12,7 @@ import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustome
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderDetailRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderDetailRpcRequest;
import com.tianting.infoloop.mapper.OrderDbMapper;
......@@ -39,6 +40,7 @@ import org.springframework.stereotype.Service;
public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, OrderDetailDb>
implements OrderDetailDbService {
private final OrderDetailMapper orderDetailMapper;
private final OrderDbMapper orderDbMapper;
@Override
public OrderDetailDb createOrderDetailDb(
......@@ -247,7 +249,38 @@ public class OrderDetailDbServiceImpl extends ServiceImpl<OrderDetailMapper, Ord
}
return orderDetailDb;
}).collect(Collectors.toList());
return SpringUtil.getBean(OrderDetailDbServiceImpl.class).updateBatchById(list);
final var res = SpringUtil.getBean(OrderDetailDbServiceImpl.class).updateBatchById(list);
// 如果一个订单中所有的orderDetail都是已出餐状态,那么该订单的状态需要修改为已完成。
final var orderDetailIds = list.stream()
.map(OrderDetailDb::getId)
.distinct()
.collect(Collectors.toList());
QueryWrapper<OrderDetailDb> wrapper = new QueryWrapper<>();
wrapper.eq("isDeleted", false);
wrapper.in("id", orderDetailIds);
final var orderDetails = orderDetailMapper.selectList(wrapper);
final var orderIds = orderDetails.stream()
.map(OrderDetailDb::getOrderId)
.distinct()
.collect(Collectors.toList());
for (Integer orderId: orderIds) {
final var curOrderDetailStatus = orderDetails.stream()
.filter(d -> d.getOrderId().equals(orderId))
.map(OrderDetailDb::getServeStatus)
.distinct()
.collect(Collectors.toList());
final var serveNotStartStatus = curOrderDetailStatus.stream()
.filter(s -> s.equals(ServeStatusEnum.SERVE_NOT_START_VALUE))
.findAny();
if(serveNotStartStatus.isEmpty()) {
var orderDb = new OrderDb();
orderDb.setId(orderId);
orderDb.setStatus(OrderStatusEnum.ALL_SERVED_VALUE);
orderDbMapper.updateById(orderDb);
}
}
return res;
}
public List<OrderDetailDb> getOrderDetailsByOrderIds(
......