1.代客下单 打印当前台桌菜品

This commit is contained in:
SongZhang 2024-09-12 11:21:06 +08:00
parent be097e8b2d
commit d7bf0f2811
4 changed files with 66 additions and 7 deletions

View File

@ -245,6 +245,16 @@ public class TbPlaceController {
return ResponseEntity.ok(tbShopTableService.printOrder(baseTableDTO)); return ResponseEntity.ok(tbShopTableService.printOrder(baseTableDTO));
} }
@AnonymousAccess
@PostMapping("/printDishes")
@Log("代客下单 打印菜品单")
@ApiOperation("代客下单 打印菜品单 /shop/table")
public ResponseEntity<Object> printDishes(
@Validated @RequestBody BaseTableDTO baseTableDTO
) {
return ResponseEntity.ok(tbShopTableService.printDishes(baseTableDTO));
}
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
@AnonymousAccess @AnonymousAccess
@GetMapping("/test") @GetMapping("/test")

View File

@ -1052,7 +1052,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
orderDetail.setProductName(cashierCart.getName()); orderDetail.setProductName(cashierCart.getName());
orderDetail.setShopId(Integer.valueOf(cashierCart.getShopId())); orderDetail.setShopId(Integer.valueOf(cashierCart.getShopId()));
orderDetail.setPackAmount(cashierCart.getPackFee()); orderDetail.setPackAmount(cashierCart.getPackFee());
orderDetail.setStatus("return"); orderDetail.setStatus("unpaid");
orderDetail.setProductImg(cashierCart.getCoverImg()); orderDetail.setProductImg(cashierCart.getCoverImg());
orderDetails.add(orderDetail); orderDetails.add(orderDetail);
if (cashierCart.getOrderId() != null) { if (cashierCart.getOrderId() != null) {
@ -1612,12 +1612,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
@Override @Override
public Object printOrder(BaseTableDTO baseTableDTO) { public Object printOrder(BaseTableDTO baseTableDTO) {
TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>() checkTableState(baseTableDTO.getTableId());
.eq(TbShopTable::getQrcode, baseTableDTO.getTableId())
.in(TbShopTable::getStatus, TableStateEnum.USING.getState(), TableStateEnum.PAYING.getState(), TableStateEnum.CLEANING.getState()));
if (tbShopTable == null) {
throw new BadRequestException("台桌不存在或当前台桌未开台");
}
String currentOrderId = getCurrentOrderId(baseTableDTO.getTableId(), baseTableDTO.getShopId().toString()); String currentOrderId = getCurrentOrderId(baseTableDTO.getTableId(), baseTableDTO.getShopId().toString());
if (StrUtil.isBlank(currentOrderId)) { if (StrUtil.isBlank(currentOrderId)) {
throw new BadRequestException("当前台桌不存在订单"); throw new BadRequestException("当前台桌不存在订单");
@ -1670,4 +1666,47 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} }
return true; return true;
} }
private TbShopTable checkTableState(String tableId) {
TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, tableId)
.in(TbShopTable::getStatus, TableStateEnum.USING.getState(), TableStateEnum.PAYING.getState(), TableStateEnum.CLEANING.getState()));
if (tbShopTable == null) {
throw new BadRequestException("台桌不存在或当前台桌未开台");
}
return tbShopTable;
}
private TbOrderInfo getCurrentOrder(String tableId, String shopId) {
String currentOrderId = getCurrentOrderId(tableId, shopId);
if (StrUtil.isBlank(currentOrderId)) {
throw new BadRequestException("当前台桌不存在订单");
}
TbOrderInfo orderInfo = orderInfoMapper.selectById(currentOrderId);
if (orderInfo == null) {
throw new BadRequestException("当前台桌不存在订单");
}
return orderInfo;
}
@Override
public Object printDishes(BaseTableDTO baseTableDTO) {
checkTableState(baseTableDTO.getTableId());
TbOrderInfo currentOrder = getCurrentOrder(baseTableDTO.getTableId(), baseTableDTO.getShopId().toString());
List<TbOrderDetail> detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getOrderId, currentOrder.getId())
.eq(TbOrderDetail::getStatus, "unpaid")
.ne(TbOrderDetail::getProductId, -999)
.select(TbOrderDetail::getId));
if (detailList.isEmpty()) {
throw new BadRequestException("当前台桌还未下单任何菜品, 请先下单");
}
Integer[] detailIds = new Integer[detailList.size()];
for (int i = 0; i < detailList.size(); i++) {
detailIds[i] = detailList.get(i).getId();
}
rabbitMsgUtils.printDishesTicket(currentOrder.getId(), false, detailIds);
return true;
}
} }

View File

@ -134,4 +134,6 @@ public interface TbShopTableService {
Object printOrder(BaseTableDTO baseTableDTO); Object printOrder(BaseTableDTO baseTableDTO);
Object generate(TableGenerateDTO generateDTO); Object generate(TableGenerateDTO generateDTO);
Object printDishes(BaseTableDTO baseTableDTO);
} }

View File

@ -55,6 +55,14 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback {
sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_PRINT_DISHES, jsonObject, "菜品退单", false); sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_PRINT_DISHES, jsonObject, "菜品退单", false);
} }
public void printDishesTicket(Integer orderId, boolean isReturn, Integer... detailOrderIds) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("orderId", orderId);
jsonObject.put("orderDetailIds", detailOrderIds);
jsonObject.put("isReturn", isReturn);
sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_PRINT_DISHES, jsonObject, "菜品打印", false);
}
public void printPlaceTicket(Integer id, boolean isReturn) { public void printPlaceTicket(Integer id, boolean isReturn) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("orderId", id); jsonObject.put("orderId", id);