|
@@ -14,8 +14,12 @@ import org.springframework.util.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import shop.alien.entity.store.StoreBookingCategory;
|
|
import shop.alien.entity.store.StoreBookingCategory;
|
|
|
import shop.alien.entity.store.StoreBookingTable;
|
|
import shop.alien.entity.store.StoreBookingTable;
|
|
|
|
|
+import shop.alien.entity.store.UserReservation;
|
|
|
|
|
+import shop.alien.entity.store.UserReservationTable;
|
|
|
import shop.alien.entity.store.vo.StoreBookingTableVo;
|
|
import shop.alien.entity.store.vo.StoreBookingTableVo;
|
|
|
import shop.alien.mapper.StoreBookingTableMapper;
|
|
import shop.alien.mapper.StoreBookingTableMapper;
|
|
|
|
|
+import shop.alien.mapper.UserReservationMapper;
|
|
|
|
|
+import shop.alien.mapper.UserReservationTableMapper;
|
|
|
import shop.alien.store.service.StoreBookingCategoryService;
|
|
import shop.alien.store.service.StoreBookingCategoryService;
|
|
|
import shop.alien.store.service.StoreBookingTableService;
|
|
import shop.alien.store.service.StoreBookingTableService;
|
|
|
import shop.alien.util.common.JwtUtil;
|
|
import shop.alien.util.common.JwtUtil;
|
|
@@ -37,9 +41,15 @@ import java.util.stream.Collectors;
|
|
|
public class StoreBookingTableServiceImpl extends ServiceImpl<StoreBookingTableMapper, StoreBookingTable> implements StoreBookingTableService {
|
|
public class StoreBookingTableServiceImpl extends ServiceImpl<StoreBookingTableMapper, StoreBookingTable> implements StoreBookingTableService {
|
|
|
|
|
|
|
|
private final StoreBookingCategoryService storeBookingCategoryService;
|
|
private final StoreBookingCategoryService storeBookingCategoryService;
|
|
|
|
|
+ private final UserReservationTableMapper userReservationTableMapper;
|
|
|
|
|
+ private final UserReservationMapper userReservationMapper;
|
|
|
|
|
|
|
|
- public StoreBookingTableServiceImpl(@Lazy StoreBookingCategoryService storeBookingCategoryService) {
|
|
|
|
|
|
|
+ public StoreBookingTableServiceImpl(@Lazy StoreBookingCategoryService storeBookingCategoryService,
|
|
|
|
|
+ UserReservationTableMapper userReservationTableMapper,
|
|
|
|
|
+ UserReservationMapper userReservationMapper) {
|
|
|
this.storeBookingCategoryService = storeBookingCategoryService;
|
|
this.storeBookingCategoryService = storeBookingCategoryService;
|
|
|
|
|
+ this.userReservationTableMapper = userReservationTableMapper;
|
|
|
|
|
+ this.userReservationMapper = userReservationMapper;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -401,6 +411,50 @@ public class StoreBookingTableServiceImpl extends ServiceImpl<StoreBookingTableM
|
|
|
return this.removeById(id);
|
|
return this.removeById(id);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public boolean hasReservationInTable(Integer tableId, Integer storeId) {
|
|
|
|
|
+ log.info("StoreBookingTableServiceImpl.hasReservationInTable?tableId={}, storeId={}", tableId, storeId);
|
|
|
|
|
+
|
|
|
|
|
+ if (tableId == null || storeId == null) {
|
|
|
|
|
+ log.warn("查询桌号下是否有预订信息失败:桌号ID或门店ID不能为空");
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询该桌号下是否有预订信息
|
|
|
|
|
+ // 通过 user_reservation_table 关联 user_reservation 表查询
|
|
|
|
|
+ // 条件:table_id = 桌号ID,且 user_reservation.store_id = 门店ID,且两个表的 delete_flag = 0
|
|
|
|
|
+ LambdaQueryWrapper<UserReservationTable> tableWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ tableWrapper.eq(UserReservationTable::getTableId, tableId);
|
|
|
|
|
+ // @TableLogic 会自动过滤已删除的记录(delete_flag=0)
|
|
|
|
|
+
|
|
|
|
|
+ List<UserReservationTable> reservationTables = userReservationTableMapper.selectList(tableWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ if (reservationTables == null || reservationTables.isEmpty()) {
|
|
|
|
|
+ log.info("查询桌号下是否有预订信息完成,tableId={}, storeId={}, count=0, hasReservation=false",
|
|
|
|
|
+ tableId, storeId);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 检查这些预订是否属于该门店
|
|
|
|
|
+ List<Integer> reservationIds = reservationTables.stream()
|
|
|
|
|
+ .map(UserReservationTable::getReservationId)
|
|
|
|
|
+ .distinct()
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ LambdaQueryWrapper<UserReservation> reservationWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ reservationWrapper.in(UserReservation::getId, reservationIds)
|
|
|
|
|
+ .eq(UserReservation::getStoreId, storeId);
|
|
|
|
|
+ // @TableLogic 会自动过滤已删除的记录(delete_flag=0)
|
|
|
|
|
+
|
|
|
|
|
+ long count = userReservationMapper.selectCount(reservationWrapper);
|
|
|
|
|
+ boolean hasReservation = count > 0;
|
|
|
|
|
+
|
|
|
|
|
+ log.info("查询桌号下是否有预订信息完成,tableId={}, storeId={}, count={}, hasReservation={}",
|
|
|
|
|
+ tableId, storeId, count, hasReservation);
|
|
|
|
|
+
|
|
|
|
|
+ return hasReservation;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 从JWT获取当前登录用户ID
|
|
* 从JWT获取当前登录用户ID
|
|
|
*
|
|
*
|