diff --git a/pom.xml b/pom.xml
index c8a57bf..ecb5d06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,26 +28,31 @@
-
+
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
org.springframework.boot
spring-boot-starter-data-jpa
-
+
org.springframework.integration
spring-integration-core
-
-
+
org.springframework.integration
spring-integration-mqtt
@@ -60,14 +65,14 @@
8.0.33
-
+
org.eclipse.paho
org.eclipse.paho.client.mqttv3
1.2.5
-
+
com.alibaba.fastjson2
fastjson2
@@ -81,14 +86,12 @@
true
-
+
org.springframework.boot
spring-boot-starter-test
test
-
-
diff --git a/src/main/java/com/campus/water/controller/WaterUsageController.java b/src/main/java/com/campus/water/controller/WaterUsageController.java
index 1c22a58..67f0187 100644
--- a/src/main/java/com/campus/water/controller/WaterUsageController.java
+++ b/src/main/java/com/campus/water/controller/WaterUsageController.java
@@ -1,7 +1,7 @@
package com.campus.water.controller;
import com.campus.water.entity.*;
-import com.campus.water.repository.*;
+import com.campus.water.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
diff --git a/src/main/java/com/campus/water/controller/WorkOrderController.java b/src/main/java/com/campus/water/controller/WorkOrderController.java
index 86a2618..100ef56 100644
--- a/src/main/java/com/campus/water/controller/WorkOrderController.java
+++ b/src/main/java/com/campus/water/controller/WorkOrderController.java
@@ -1,9 +1,9 @@
package com.campus.water.controller;
import com.campus.water.entity.WorkOrder;
-import com.campus.water.repository.WorkOrderRepository;
-import com.campus.water.repository.RepairmanRepository;
-import com.campus.water.repository.AlertRepository;
+import com.campus.water.mapper.WorkOrderRepository;
+import com.campus.water.mapper.RepairmanRepository;
+import com.campus.water.mapper.AlertRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
diff --git a/src/main/java/com/campus/water/repository/AlertRepository.java b/src/main/java/com/campus/water/mapper/AlertRepository.java
similarity index 96%
rename from src/main/java/com/campus/water/repository/AlertRepository.java
rename to src/main/java/com/campus/water/mapper/AlertRepository.java
index acd38c1..63cf7aa 100644
--- a/src/main/java/com/campus/water/repository/AlertRepository.java
+++ b/src/main/java/com/campus/water/mapper/AlertRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.Alert;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/AreaRepository.java b/src/main/java/com/campus/water/mapper/AreaRepository.java
similarity index 95%
rename from src/main/java/com/campus/water/repository/AreaRepository.java
rename to src/main/java/com/campus/water/mapper/AreaRepository.java
index 686173e..3638d5b 100644
--- a/src/main/java/com/campus/water/repository/AreaRepository.java
+++ b/src/main/java/com/campus/water/mapper/AreaRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.Area;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/DeviceRepository.java b/src/main/java/com/campus/water/mapper/DeviceRepository.java
similarity index 95%
rename from src/main/java/com/campus/water/repository/DeviceRepository.java
rename to src/main/java/com/campus/water/mapper/DeviceRepository.java
index dd33865..b5dc00a 100644
--- a/src/main/java/com/campus/water/repository/DeviceRepository.java
+++ b/src/main/java/com/campus/water/mapper/DeviceRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.Device;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/DeviceTerminalMappingRepository.java b/src/main/java/com/campus/water/mapper/DeviceTerminalMappingRepository.java
similarity index 95%
rename from src/main/java/com/campus/water/repository/DeviceTerminalMappingRepository.java
rename to src/main/java/com/campus/water/mapper/DeviceTerminalMappingRepository.java
index eedf124..de016ce 100644
--- a/src/main/java/com/campus/water/repository/DeviceTerminalMappingRepository.java
+++ b/src/main/java/com/campus/water/mapper/DeviceTerminalMappingRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.DeviceTerminalMapping;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/DrinkRecommendationRepository.java b/src/main/java/com/campus/water/mapper/DrinkRecommendationRepository.java
similarity index 98%
rename from src/main/java/com/campus/water/repository/DrinkRecommendationRepository.java
rename to src/main/java/com/campus/water/mapper/DrinkRecommendationRepository.java
index 795a6b3..0841a4a 100644
--- a/src/main/java/com/campus/water/repository/DrinkRecommendationRepository.java
+++ b/src/main/java/com/campus/water/mapper/DrinkRecommendationRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.DrinkRecommendation;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/DrinkRecordRepository.java b/src/main/java/com/campus/water/mapper/DrinkRecordRepository.java
similarity index 98%
rename from src/main/java/com/campus/water/repository/DrinkRecordRepository.java
rename to src/main/java/com/campus/water/mapper/DrinkRecordRepository.java
index 8ffc8c7..23b8364 100644
--- a/src/main/java/com/campus/water/repository/DrinkRecordRepository.java
+++ b/src/main/java/com/campus/water/mapper/DrinkRecordRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.DrinkRecord;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/InspectionRecordRepository.java b/src/main/java/com/campus/water/mapper/InspectionRecordRepository.java
similarity index 96%
rename from src/main/java/com/campus/water/repository/InspectionRecordRepository.java
rename to src/main/java/com/campus/water/mapper/InspectionRecordRepository.java
index b8b5674..5959b2b 100644
--- a/src/main/java/com/campus/water/repository/InspectionRecordRepository.java
+++ b/src/main/java/com/campus/water/mapper/InspectionRecordRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.InspectionRecord;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/MaintenancePlanRepository.java b/src/main/java/com/campus/water/mapper/MaintenancePlanRepository.java
similarity index 97%
rename from src/main/java/com/campus/water/repository/MaintenancePlanRepository.java
rename to src/main/java/com/campus/water/mapper/MaintenancePlanRepository.java
index ba07a79..485df05 100644
--- a/src/main/java/com/campus/water/repository/MaintenancePlanRepository.java
+++ b/src/main/java/com/campus/water/mapper/MaintenancePlanRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.MaintenancePlan;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/MessagePushRepository.java b/src/main/java/com/campus/water/mapper/MessagePushRepository.java
similarity index 97%
rename from src/main/java/com/campus/water/repository/MessagePushRepository.java
rename to src/main/java/com/campus/water/mapper/MessagePushRepository.java
index 8b9554f..9ed6717 100644
--- a/src/main/java/com/campus/water/repository/MessagePushRepository.java
+++ b/src/main/java/com/campus/water/mapper/MessagePushRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.MessagePush;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/RepairmanRepository.java b/src/main/java/com/campus/water/mapper/RepairmanRepository.java
similarity index 95%
rename from src/main/java/com/campus/water/repository/RepairmanRepository.java
rename to src/main/java/com/campus/water/mapper/RepairmanRepository.java
index fdaff45..ee1841d 100644
--- a/src/main/java/com/campus/water/repository/RepairmanRepository.java
+++ b/src/main/java/com/campus/water/mapper/RepairmanRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.Repairman;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/TerminalUsageStatsRepository.java b/src/main/java/com/campus/water/mapper/TerminalUsageStatsRepository.java
similarity index 97%
rename from src/main/java/com/campus/water/repository/TerminalUsageStatsRepository.java
rename to src/main/java/com/campus/water/mapper/TerminalUsageStatsRepository.java
index bbe1622..c44a8dc 100644
--- a/src/main/java/com/campus/water/repository/TerminalUsageStatsRepository.java
+++ b/src/main/java/com/campus/water/mapper/TerminalUsageStatsRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.TerminalUsageStats;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/WaterMakerRealtimeDataRepository.java b/src/main/java/com/campus/water/mapper/WaterMakerRealtimeDataRepository.java
similarity index 98%
rename from src/main/java/com/campus/water/repository/WaterMakerRealtimeDataRepository.java
rename to src/main/java/com/campus/water/mapper/WaterMakerRealtimeDataRepository.java
index 5c56dca..5e2f02e 100644
--- a/src/main/java/com/campus/water/repository/WaterMakerRealtimeDataRepository.java
+++ b/src/main/java/com/campus/water/mapper/WaterMakerRealtimeDataRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.WaterMakerRealtimeData;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/WaterQualityHistoryRepository.java b/src/main/java/com/campus/water/mapper/WaterQualityHistoryRepository.java
similarity index 98%
rename from src/main/java/com/campus/water/repository/WaterQualityHistoryRepository.java
rename to src/main/java/com/campus/water/mapper/WaterQualityHistoryRepository.java
index e4e6f2e..08a7a74 100644
--- a/src/main/java/com/campus/water/repository/WaterQualityHistoryRepository.java
+++ b/src/main/java/com/campus/water/mapper/WaterQualityHistoryRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.WaterQualityHistory;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/WaterSupplyRealtimeDataRepository.java b/src/main/java/com/campus/water/mapper/WaterSupplyRealtimeDataRepository.java
similarity index 98%
rename from src/main/java/com/campus/water/repository/WaterSupplyRealtimeDataRepository.java
rename to src/main/java/com/campus/water/mapper/WaterSupplyRealtimeDataRepository.java
index 8e11bda..ff5ce8f 100644
--- a/src/main/java/com/campus/water/repository/WaterSupplyRealtimeDataRepository.java
+++ b/src/main/java/com/campus/water/mapper/WaterSupplyRealtimeDataRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.WaterSupplyRealtimeData;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/WorkOrderRepository.java b/src/main/java/com/campus/water/mapper/WorkOrderRepository.java
similarity index 97%
rename from src/main/java/com/campus/water/repository/WorkOrderRepository.java
rename to src/main/java/com/campus/water/mapper/WorkOrderRepository.java
index 4a0f770..1f9e1e7 100644
--- a/src/main/java/com/campus/water/repository/WorkOrderRepository.java
+++ b/src/main/java/com/campus/water/mapper/WorkOrderRepository.java
@@ -1,4 +1,4 @@
-package com.campus.water.repository;
+package com.campus.water.mapper;
import com.campus.water.entity.WorkOrder;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/campus/water/repository/先读我.md b/src/main/java/com/campus/water/mapper/先读我.md
similarity index 100%
rename from src/main/java/com/campus/water/repository/先读我.md
rename to src/main/java/com/campus/water/mapper/先读我.md
diff --git a/src/main/java/com/campus/water/repository/AdminRepository.java b/src/main/java/com/campus/water/repository/AdminRepository.java
deleted file mode 100644
index 75cd537..0000000
--- a/src/main/java/com/campus/water/repository/AdminRepository.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.campus.water.repository;
-
-import com.campus.water.entity.po.AdminPO;
-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 AdminRepository extends JpaRepository {
- // 登录核心:通过用户名查询
- Optional findByUsername(String username);
-
- // 原有业务方法
- Optional findByAdminId(String adminId);
- List findByUsernameContaining(String username);
- List findByRole(AdminPO.AdminRole role);
- List findByStatus(AdminPO.AdminStatus status);
- Optional findByPhone(String phone);
-
- @Query("SELECT a FROM AdminPO a WHERE a.role = ?1 AND a.status = ?2")
- List findByRoleAndStatus(AdminPO.AdminRole role, AdminPO.AdminStatus status);
-
- boolean existsByAdminId(String adminId);
- boolean existsByPhone(String phone);
-}
\ No newline at end of file
diff --git a/src/main/java/com/campus/water/repository/RepairerAuthRepository.java b/src/main/java/com/campus/water/repository/RepairerAuthRepository.java
deleted file mode 100644
index f845cdd..0000000
--- a/src/main/java/com/campus/water/repository/RepairerAuthRepository.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.campus.water.repository;
-
-import com.campus.water.entity.po.RepairerAuthPO;
-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 RepairerAuthRepository extends JpaRepository {
- // 登录核心:通过用户名查询
- Optional findByUsername(String username);
-
- // 按维修人员ID查询
- Optional findByRepairmanId(String repairmanId);
-
- // 按账号状态查询(引用PO内的枚举)
- List findByAccountStatus(RepairerAuthPO.AccountStatus accountStatus);
-
- // 自定义查询:查询活跃状态的用户
- @Query("SELECT ra FROM RepairerAuthPO ra WHERE ra.username = ?1 AND ra.accountStatus = 'active'")
- Optional findActiveByUsername(String username);
-
- // 校验用户名是否存在
- boolean existsByUsername(String username);
-
- // 校验维修人员ID是否存在
- boolean existsByRepairmanId(String repairmanId);
-}
\ No newline at end of file
diff --git a/src/main/java/com/campus/water/repository/UserRepository.java b/src/main/java/com/campus/water/repository/UserRepository.java
deleted file mode 100644
index e834cbf..0000000
--- a/src/main/java/com/campus/water/repository/UserRepository.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.campus.water.repository;
-
-import com.campus.water.entity.po.UserPO;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-@Repository
-public interface UserRepository extends JpaRepository {
- // 登录核心:通过用户名查询
- Optional findByUsername(String username);
-
- // 可补充其他业务方法(如按学号查询)
- Optional findByStudentNo(String studentNo);
- boolean existsByUsername(String username);
- boolean existsByStudentNo(String studentNo);
-}
\ No newline at end of file
diff --git a/src/main/java/com/campus/water/service/LoginService.java b/src/main/java/com/campus/water/service/LoginService.java
index 6a8f5d0..2370e20 100644
--- a/src/main/java/com/campus/water/service/LoginService.java
+++ b/src/main/java/com/campus/water/service/LoginService.java
@@ -5,9 +5,9 @@ import com.campus.water.entity.po.AdminPO;
import com.campus.water.entity.po.RepairerAuthPO;
import com.campus.water.entity.po.UserPO;
import com.campus.water.entity.vo.LoginVO;
-import com.campus.water.repository.AdminRepository;
-import com.campus.water.repository.RepairerAuthRepository;
-import com.campus.water.repository.UserRepository;
+import com.campus.water.mapper.AdminRepository;
+import com.campus.water.mapper.RepairerAuthRepository;
+import com.campus.water.mapper.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
diff --git a/src/main/java/com/campus/water/service/MqttSensorReceiver.java b/src/main/java/com/campus/water/service/MqttSensorReceiver.java
index db3cd16..c8af40e 100644
--- a/src/main/java/com/campus/water/service/MqttSensorReceiver.java
+++ b/src/main/java/com/campus/water/service/MqttSensorReceiver.java
@@ -4,9 +4,9 @@ import com.campus.water.config.MqttConfig;
import com.campus.water.entity.Alert;
import com.campus.water.entity.WaterMakerRealtimeData;
import com.campus.water.entity.WaterSupplyRealtimeData;
-import com.campus.water.repository.AlertRepository;
-import com.campus.water.repository.WaterMakerRealtimeDataRepository;
-import com.campus.water.repository.WaterSupplyRealtimeDataRepository;
+import com.campus.water.mapper.AlertRepository;
+import com.campus.water.mapper.WaterMakerRealtimeDataRepository;
+import com.campus.water.mapper.WaterSupplyRealtimeDataRepository;
import com.campus.water.model.WaterMakerSensorData;
import com.campus.water.model.WaterSupplySensorData;
import com.fasterxml.jackson.databind.ObjectMapper;