diff --git a/src/main/java/com/campus/water/mapper/AreaRepository.java b/src/main/java/com/campus/water/mapper/AreaRepository.java
index ee27455..686ede0 100644
--- a/src/main/java/com/campus/water/mapper/AreaRepository.java
+++ b/src/main/java/com/campus/water/mapper/AreaRepository.java
@@ -2,27 +2,59 @@ package com.campus.water.mapper;
import com.campus.water.entity.Area;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
-
import java.util.List;
import java.util.Optional;
@Repository
public interface AreaRepository extends JpaRepository {
+ // 根据区域类型查询
+ List findByAreaType(Area.AreaType areaType);
- // 修正:将findByIdAndIsDeletedFalse改为findByAreaIdAndIsDeletedFalse(如果有isDeleted字段)
- // 注意:你的实体类目前没有isDeleted字段,先删除该方法,或补充字段后再用
- Optional findByAreaId(String areaId);
+ // 根据父区域ID查询子区域
+ List findByParentAreaId(String parentAreaId);
- // 查询所有市区(根节点:areaType=CITY 且 parentAreaId=null)
- List findByAreaTypeAndParentAreaIdIsNull(Area.AreaType areaType);
+ // 新增按区域类型查询
+ List findByAreaTypeOrderByCreatedTimeDesc(Area.AreaType areaType);
- // 根据父级ID和区域类型查询(指定市区下的校园)
+ // 按父级ID+类型查询(如查询某校园下的所有楼宇)
List findByParentAreaIdAndAreaType(String parentAreaId, Area.AreaType areaType);
- // 统计指定父级ID下的区域数量
- long countByParentAreaId(String parentAreaId);
- // 校验区域ID是否存在
- boolean existsByAreaId(String areaId);
+
+ // 按名称模糊查询
+ List findByAreaNameContaining(String keyword);
+
+ // 查询所有(按创建时间倒序)
+ List findAllByOrderByCreatedTimeDesc();
+
+ // 根据管理员姓名查询区域
+ List findByManager(String manager);
+
+ // 根据管理员手机号查询区域
+ List findByManagerPhone(String managerPhone);
+
+ // 查询指定类型的根级区域
+ @Query("SELECT a FROM Area a WHERE a.areaType = ?1 AND a.parentAreaId IS NULL")
+ List findRootAreasByType(Area.AreaType areaType);
+
+ // 根据ID和未删除状态查询
+ Optional findByIdAndIsDeletedFalse(String id);
+ // 查询指定类型、无父级、未删除的区域(所有市区)
+ List findByAreaTypeAndParentAreaIdIsNullAndIsDeletedFalse(Area.AreaType areaType);
+ // 根据父级ID、类型、未删除状态查询(市区下的校园)
+ List findByParentAreaIdAndAreaTypeAndIsDeletedFalse(String parentAreaId, Area.AreaType areaType);
+ // 统计父级ID下未删除的区域数量(删除市区时校验)
+ long countByParentAreaIdAndIsDeletedFalse(String parentAreaId);
+ // 校验ID是否存在且未删除
+ boolean existsByIdAndIsDeletedFalse(String id);
+
+ Optional findByAreaId(String areaId);
+
+ long countByParentAreaId(String areaId);
+
+ List findByAreaTypeAndParentAreaIdIsNull(Area.AreaType areaType);
+
+ boolean existsByAreaId(String cityId);
}
\ No newline at end of file