|
@@ -179,6 +179,8 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
order.setDetailList(dishOrderDetailMapper.findSummaryByOrderId(order.getId()));
|
|
order.setDetailList(dishOrderDetailMapper.findSummaryByOrderId(order.getId()));
|
|
|
|
|
+ order.setAddDishList(dishOrderDetailMapper.findAddDishList(order.getId()));
|
|
|
|
|
+ order.setReduceDishList(dishOrderDetailMapper.findReduceDishList(order.getId()));
|
|
|
return order;
|
|
return order;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -220,7 +222,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
}
|
|
}
|
|
|
boolean addDish = order != null;
|
|
boolean addDish = order != null;
|
|
|
if (order == null) {
|
|
if (order == null) {
|
|
|
- order = createOrder(room, userDto, now);
|
|
|
|
|
|
|
+ order = createOrder(room, info, userDto, now);
|
|
|
dishOrderMapper.insert(order);
|
|
dishOrderMapper.insert(order);
|
|
|
PsiDishRoom updateRoom = new PsiDishRoom();
|
|
PsiDishRoom updateRoom = new PsiDishRoom();
|
|
|
updateRoom.setId(room.getId());
|
|
updateRoom.setId(room.getId());
|
|
@@ -237,13 +239,14 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
}
|
|
}
|
|
|
int currentQuantity = currentQuantityMap.getOrDefault(item.getDishId(), 0);
|
|
int currentQuantity = currentQuantityMap.getOrDefault(item.getDishId(), 0);
|
|
|
if (currentQuantity + item.getQuantity() < 0) {
|
|
if (currentQuantity + item.getQuantity() < 0) {
|
|
|
- return item.getDishName() + "减菜数量不能大于已点数量";
|
|
|
|
|
|
|
+ return item.getDishName() + "退菜数量不能大于已点数量";
|
|
|
}
|
|
}
|
|
|
PsiDishMenuDish dish = dishMenuService.findCurrentByDishId(item.getDishId());
|
|
PsiDishMenuDish dish = dishMenuService.findCurrentByDishId(item.getDishId());
|
|
|
if (dish == null || !"0".equals(dish.getStatus())) {
|
|
if (dish == null || !"0".equals(dish.getStatus())) {
|
|
|
return "菜品不存在或已停用";
|
|
return "菜品不存在或已停用";
|
|
|
}
|
|
}
|
|
|
PsiDishOrderDetail detail = buildDetail(order, dish, item.getQuantity(), addDish ? "1" : "0", item.getDishSort(), userDto, now);
|
|
PsiDishOrderDetail detail = buildDetail(order, dish, item.getQuantity(), addDish ? "1" : "0", item.getDishSort(), userDto, now);
|
|
|
|
|
+ detail.setReason(item.getReason());
|
|
|
dishOrderDetailMapper.insert(detail);
|
|
dishOrderDetailMapper.insert(detail);
|
|
|
changeAmount = changeAmount.add(detail.getAmount());
|
|
changeAmount = changeAmount.add(detail.getAmount());
|
|
|
currentQuantityMap.put(item.getDishId(), currentQuantity + item.getQuantity());
|
|
currentQuantityMap.put(item.getDishId(), currentQuantity + item.getQuantity());
|
|
@@ -253,7 +256,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
}
|
|
}
|
|
|
info.setRoomName(order.getRoomName());
|
|
info.setRoomName(order.getRoomName());
|
|
|
refreshOrderAmount(order.getId(), info, userDto, now);
|
|
refreshOrderAmount(order.getId(), info, userDto, now);
|
|
|
- return "1".equals(info.getSettleFlag()) ? "下单并结账成功" : (changeAmount.compareTo(BigDecimal.ZERO) < 0 ? "减菜成功" : "下单成功");
|
|
|
|
|
|
|
+ return "1".equals(info.getSettleFlag()) ? "下单并结账成功" : (changeAmount.compareTo(BigDecimal.ZERO) < 0 ? "退菜成功" : "下单成功");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public String cancelOrder(String id) {
|
|
public String cancelOrder(String id) {
|
|
@@ -294,7 +297,7 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
return "取消成功";
|
|
return "取消成功";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private PsiDishOrder createOrder(PsiDishRoom room, UserDTO userDto, Date now) {
|
|
|
|
|
|
|
+ private PsiDishOrder createOrder(PsiDishRoom room, PsiDishOrder info, UserDTO userDto, Date now) {
|
|
|
PsiDishOrder order = new PsiDishOrder();
|
|
PsiDishOrder order = new PsiDishOrder();
|
|
|
order.setId(UUID.randomUUID().toString().replace("-", ""));
|
|
order.setId(UUID.randomUUID().toString().replace("-", ""));
|
|
|
order.setOrderNo("DC" + new SimpleDateFormat("yyyyMMddHHmmss").format(now));
|
|
order.setOrderNo("DC" + new SimpleDateFormat("yyyyMMddHHmmss").format(now));
|
|
@@ -306,6 +309,8 @@ public class PsiDishOrderService extends ServiceImpl<PsiDishOrderMapper, PsiDish
|
|
|
order.setDiscountRate(new BigDecimal("100"));
|
|
order.setDiscountRate(new BigDecimal("100"));
|
|
|
order.setDiscountAmount(BigDecimal.ZERO);
|
|
order.setDiscountAmount(BigDecimal.ZERO);
|
|
|
order.setPayableAmount(BigDecimal.ZERO);
|
|
order.setPayableAmount(BigDecimal.ZERO);
|
|
|
|
|
+ order.setTasteRemark(info.getTasteRemark());
|
|
|
|
|
+ order.setSpecialRequirements(info.getSpecialRequirements());
|
|
|
order.setCreateById(userDto.getId());
|
|
order.setCreateById(userDto.getId());
|
|
|
order.setCreateTime(now);
|
|
order.setCreateTime(now);
|
|
|
order.setUpdateById(userDto.getId());
|
|
order.setUpdateById(userDto.getId());
|