Jelajahi Sumber

商家端 查询分类下是否有预订信息

qinxuyang 4 minggu lalu
induk
melakukan
3d74ef9bf8

+ 27 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreBookingCategoryController.java

@@ -236,4 +236,31 @@ public class StoreBookingCategoryController {
             return R.fail("更新显示状态失败:" + e.getMessage());
         }
     }
+
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("查询分类下是否有预订信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "categoryId", value = "分类ID", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query", required = true)
+    })
+    @GetMapping("/hasReservation")
+    public R<Boolean> hasReservationInCategory(@RequestParam Integer categoryId, @RequestParam Integer storeId) {
+        log.info("StoreBookingCategoryController.hasReservationInCategory?categoryId={}, storeId={}", categoryId, storeId);
+        
+        if (categoryId == null) {
+            return R.fail("分类ID不能为空");
+        }
+        
+        if (storeId == null) {
+            return R.fail("门店ID不能为空");
+        }
+        
+        try {
+            boolean hasReservation = storeBookingCategoryService.hasReservationInCategory(categoryId, storeId);
+            return R.data(hasReservation);
+        } catch (Exception e) {
+            log.error("查询分类下是否有预订信息失败", e);
+            return R.fail("查询失败:" + e.getMessage());
+        }
+    }
 }

+ 9 - 0
alien-store/src/main/java/shop/alien/store/service/StoreBookingCategoryService.java

@@ -73,4 +73,13 @@ public interface StoreBookingCategoryService extends IService<StoreBookingCatego
      * @return boolean
      */
     boolean updateDisplayStatus(Integer id, Integer isDisplay);
+
+    /**
+     * 查询分类下是否有预订信息
+     *
+     * @param categoryId 分类ID
+     * @param storeId    门店ID
+     * @return true-有预订信息, false-没有预订信息
+     */
+    boolean hasReservationInCategory(Integer categoryId, Integer storeId);
 }

+ 27 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreBookingCategoryServiceImpl.java

@@ -13,7 +13,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import shop.alien.entity.store.StoreBookingCategory;
 import shop.alien.entity.store.StoreBookingTable;
+import shop.alien.entity.store.UserReservation;
 import shop.alien.mapper.StoreBookingCategoryMapper;
+import shop.alien.mapper.UserReservationMapper;
 import shop.alien.store.service.StoreBookingCategoryService;
 import shop.alien.store.service.StoreBookingTableService;
 import shop.alien.util.common.JwtUtil;
@@ -33,6 +35,7 @@ import java.util.List;
 public class StoreBookingCategoryServiceImpl extends ServiceImpl<StoreBookingCategoryMapper, StoreBookingCategory> implements StoreBookingCategoryService {
 
     private final StoreBookingTableService storeBookingTableService;
+    private final UserReservationMapper userReservationMapper;
 
     @Override
     public List<StoreBookingCategory> getCategoryList(Integer storeId) {
@@ -311,6 +314,30 @@ public class StoreBookingCategoryServiceImpl extends ServiceImpl<StoreBookingCat
         return this.update(updateWrapper);
     }
 
+    @Override
+    public boolean hasReservationInCategory(Integer categoryId, Integer storeId) {
+        log.info("StoreBookingCategoryServiceImpl.hasReservationInCategory?categoryId={}, storeId={}", categoryId, storeId);
+        
+        if (categoryId == null || storeId == null) {
+            log.warn("查询分类下是否有预订信息失败:分类ID或门店ID不能为空");
+            return false;
+        }
+        
+        // 查询该门店该分类下是否有预订信息
+        LambdaQueryWrapper<UserReservation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserReservation::getStoreId, storeId)
+                .eq(UserReservation::getCategoryId, categoryId);
+        // @TableLogic 会自动过滤已删除的记录(delete_flag=0)
+        
+        long count = userReservationMapper.selectCount(wrapper);
+        boolean hasReservation = count > 0;
+        
+        log.info("查询分类下是否有预订信息完成,categoryId={}, storeId={}, count={}, hasReservation={}", 
+                categoryId, storeId, count, hasReservation);
+        
+        return hasReservation;
+    }
+
     /**
      * 从JWT获取当前登录用户ID
      *