|
|
@@ -9,6 +9,7 @@ import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.dto.DiningWalkInReservationDTO;
|
|
|
import shop.alien.entity.store.vo.TableDiningStatusVO;
|
|
|
import shop.alien.entity.store.vo.*;
|
|
|
+import shop.alien.dining.feign.AlienStoreFeign;
|
|
|
import shop.alien.dining.service.DiningService;
|
|
|
import shop.alien.dining.service.DiningWalkInReservationService;
|
|
|
import shop.alien.dining.util.TokenUtil;
|
|
|
@@ -32,6 +33,7 @@ public class DiningController {
|
|
|
|
|
|
private final DiningService diningService;
|
|
|
private final DiningWalkInReservationService diningWalkInReservationService;
|
|
|
+ private final AlienStoreFeign alienStoreFeign;
|
|
|
|
|
|
@ApiOperation(value = "提交到店就餐信息", notes = "选完人数并填写姓名/电话/时段后调用:写入 user_reservation,状态为已到店(2),并关联当前桌;同时将 store_table 置为就餐中(1)、写入 diner_count(与 page-info 首客传人数一致),便于 /table-dining-status。返回预约ID。下单时可不传 userReservationId,后端将按 tableId 解析本桌当日有效预约。")
|
|
|
@PostMapping("/walk-in/reservation")
|
|
|
@@ -50,6 +52,28 @@ public class DiningController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation(value = "【小程序】按门店与餐桌查询预约详情列表", notes = "内部 Feign 调用门店 GET /user/reservation/detailByStoreAndTableRecord。userReservationTableId 为 store_table.id。reservationDate 为 yyyy-MM-dd 可选。免登录,与门店接口一致。")
|
|
|
+ @GetMapping("/reservation/detail-by-store-table-record")
|
|
|
+ public R<List<UserReservationVo>> reservationDetailByStoreAndTableRecord(
|
|
|
+ @ApiParam(value = "门店ID", required = true) @RequestParam Integer storeId,
|
|
|
+ @ApiParam(value = "餐桌ID(store_table.id)", required = true) @RequestParam Integer userReservationTableId,
|
|
|
+ @ApiParam(value = "预订日期 yyyy-MM-dd,不传则不过滤") @RequestParam(required = false) String reservationDate) {
|
|
|
+ log.info("DiningController.reservationDetailByStoreAndTableRecord?storeId={}, userReservationTableId={}, reservationDate={}",
|
|
|
+ storeId, userReservationTableId, reservationDate);
|
|
|
+ try {
|
|
|
+ if (storeId == null) {
|
|
|
+ return R.fail("门店ID不能为空");
|
|
|
+ }
|
|
|
+ if (userReservationTableId == null) {
|
|
|
+ return R.fail("餐桌ID不能为空");
|
|
|
+ }
|
|
|
+ return alienStoreFeign.detailByStoreAndTableRecord(storeId, userReservationTableId, reservationDate);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询预约详情列表失败: {}", e.getMessage(), e);
|
|
|
+ return R.fail("查询预约详情列表失败: " + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@ApiOperation(value = "查询餐桌是否处于就餐中", notes = "免登录可调用,用于前端判断是否跳过选择用餐人数。返回 tableNumber 为桌号名称。就餐中(status=1)、加餐(status=3) 均视为就餐状态,且 diner_count 有值 时 inDining=true")
|
|
|
@GetMapping("/table-dining-status")
|
|
|
public R<TableDiningStatusVO> getTableDiningStatus(
|