From 04742f3612ab28e559ba3ba0d3c206ea8a2db9c7 Mon Sep 17 00:00:00 2001 From: wanglei <3085637232@qq.com> Date: Tue, 9 Dec 2025 13:27:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9admin=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week-12/members/wanglei-weekly-plan-12.md | 23 +++++++++++ .../members/wanglei-weekly-summary-11.md | 40 +++++++++++++++++++ .../water/controller/web/AdminController.java | 25 +++++------- .../java/com/campus/water/entity/Admin.java | 14 ------- .../entity/dto/request/RegisterRequest.java | 3 +- .../campus/water/mapper/AdminRepository.java | 25 +++--------- .../campus/water/service/AdminService.java | 25 +++++------- .../campus/water/service/RegisterService.java | 9 ++--- 8 files changed, 94 insertions(+), 70 deletions(-) create mode 100644 doc/process/weekly/week-12/members/wanglei-weekly-plan-12.md create mode 100644 doc/process/weekly/week-12/members/wanglei-weekly-summary-11.md diff --git a/doc/process/weekly/week-12/members/wanglei-weekly-plan-12.md b/doc/process/weekly/week-12/members/wanglei-weekly-plan-12.md new file mode 100644 index 0000000..3e05111 --- /dev/null +++ b/doc/process/weekly/week-12/members/wanglei-weekly-plan-12.md @@ -0,0 +1,23 @@ +# 个人周计划-第12周 + +## 姓名和起止时间 + +**姓  名:** 王磊 +**团队名称:** 1班-汪汪队 +**开始时间:** 2023-12-8 +**结束时间:** 2023-12-14 + +## 本周任务计划安排 + +| 序号 | 计划内容 | 协作人 | 情况说明 | +| --- | ---- | --- | ---------------------- | +| 1 | 确定分工 | 组员 | 2025-12-8 开会细分确定团队分工, | +| 2 | 联调支持 | 组员 | 配合前端完成接口联调问题,完成第一版迭代开发 | + +## 小结 + +1. **技术重点:** 接口联调问题持续修复与支持 +2. **协作重点:** 加强与前端的沟通协作机制,参与接口联调复盘与总结 +3. **学习重点:** 学习接口性能分析和调优方法,提升联调问题响应与解决效率 + +--- diff --git a/doc/process/weekly/week-12/members/wanglei-weekly-summary-11.md b/doc/process/weekly/week-12/members/wanglei-weekly-summary-11.md new file mode 100644 index 0000000..a03040b --- /dev/null +++ b/doc/process/weekly/week-12/members/wanglei-weekly-summary-11.md @@ -0,0 +1,40 @@ +# 个人周计划-第十一周 + +## 姓名和起止时间 + +**姓  名:** 王磊 +**团队名称:** 1班-汪汪队 +**开始时间:** 2025-12-1 + +**结束时间:** 2025-12-7 + +## 本周任务计划安排 + +| 序号 | 总结内容 | 是否完成 | 情况说明 | +| --- | ----- | ---- | ------------------------------------------ | +| 1 | 接口完善 | 完成 | 完成数据统计接口开发(按设备/地区/时间统计用水量、告警次数)、设备状态管理接口开发 | +| 2 | 数据层优化 | 完成 | 完成传感器历史数据分页查询优化、索引调整,响应时间优化至≤300ms | +| 3 | 联调支持 | 进行中 | 配合前端完成参数、格式、权限校验等接口联调问题修复 | + +## 对团队工作的建议 + +1.****建议建立接口联调检查清单**** 确保前后端数据格式和参数一致性,减少联调阶段问题 + +2.****建议加强文档更新机制**** 接口变更后及时同步更新接口文档,便于协作和后续维护 + +3.****建议建立性能监控机制**** 对关键接口进行性能监控,及时发现并处理性能瓶颈 + +## 小结 + +1. **技术收获** 深入理解了多维度统计接口的设计与实现方法 +2. **协作收获** 通过明确分工提升了任务执行效率 +3. **后续重点** 继续配合前端进行联调和测试 + +--- + +## 【注】 + +1. 在小结一栏中写出希望得到如何的帮助,如讲座等; +2. 请将个人计划和总结提前发给负责人; +3. 周任务总结与计划是项目小组评分考核的重要依据,将直接记入平时成绩,请各位同学按要求认真填写并按时提交; +4. 所有组员都需提交个人周计划、周总结文档,按时上传至代码托管平台; diff --git a/src/main/java/com/campus/water/controller/web/AdminController.java b/src/main/java/com/campus/water/controller/web/AdminController.java index caa95dd..3842cf0 100644 --- a/src/main/java/com/campus/water/controller/web/AdminController.java +++ b/src/main/java/com/campus/water/controller/web/AdminController.java @@ -24,30 +24,23 @@ public class AdminController { private final AdminService adminService; /** - * 加载管理员列表(支持筛选) - * @param role 角色筛选(可选,值:super_admin/area_admin/viewer) - * @param status 状态筛选(可选,值:active/inactive) + * 获取管理员列表(支持按姓名搜索) */ @GetMapping("/list") @PreAuthorize("hasRole('ADMIN')") // 仅管理员可访问 - @Operation(summary = "获取管理员列表", description = "支持按角色和状态筛选管理员") + @Operation(summary = "获取管理员列表", description = "支持按姓名搜索管理员") public ResponseEntity>> getAdminList( - @RequestParam(required = false) String role, - @RequestParam(required = false) String status + @RequestParam(required = false) String name ) { try { - // 转换参数为枚举类型 - Admin.AdminRole adminRole = role != null ? Admin.AdminRole.valueOf(role) : null; - Admin.AdminStatus adminStatus = status != null ? Admin.AdminStatus.valueOf(status) : null; - - // 调用服务层查询 - List adminList = adminService.getAdminList(adminRole, adminStatus); + List adminList; + if (name != null && !name.isEmpty()) { + adminList = adminService.searchAdminsByName(name); + } else { + adminList = adminService.getAdminList(); + } return ResponseEntity.ok(ResultVO.success(adminList)); - } catch (IllegalArgumentException e) { - // 处理枚举参数错误 - return ResponseEntity.ok(ResultVO.error(400, "无效的角色或状态参数: " + e.getMessage())); } catch (Exception e) { - // 处理其他异常 return ResponseEntity.ok(ResultVO.error(500, "查询管理员列表失败: " + e.getMessage())); } } diff --git a/src/main/java/com/campus/water/entity/Admin.java b/src/main/java/com/campus/water/entity/Admin.java index b92767f..74944d8 100644 --- a/src/main/java/com/campus/water/entity/Admin.java +++ b/src/main/java/com/campus/water/entity/Admin.java @@ -28,25 +28,11 @@ public class Admin { @Column(name = "phone", length = 20) private String phone; - @Enumerated(EnumType.STRING) - @Column(name = "role", length = 50) - private AdminRole role = AdminRole.area_admin; - - @Enumerated(EnumType.STRING) - @Column(name = "status", length = 50) - private AdminStatus status = AdminStatus.active; - @Column(name = "created_time") private LocalDateTime createdTime = LocalDateTime.now(); @Column(name = "updated_time") private LocalDateTime updatedTime = LocalDateTime.now(); - public enum AdminRole { - super_admin, area_admin, viewer - } - public enum AdminStatus { - active, inactive - } } \ No newline at end of file diff --git a/src/main/java/com/campus/water/entity/dto/request/RegisterRequest.java b/src/main/java/com/campus/water/entity/dto/request/RegisterRequest.java index 7283377..8e21aa1 100644 --- a/src/main/java/com/campus/water/entity/dto/request/RegisterRequest.java +++ b/src/main/java/com/campus/water/entity/dto/request/RegisterRequest.java @@ -19,10 +19,11 @@ public class RegisterRequest { // 用户特有字段 private String studentId; // 学生ID(仅user类型需要) private String studentName; // 学生姓名(仅user类型需要) + private String phone; // 新增:学生/用户手机号(仅user类型需要) // 管理员特有字段 private String adminId; // 管理员ID(仅admin类型需要) - private String adminRole; // 管理员角色(仅admin类型需要,SUPER_ADMIN/NORMAL_ADMIN) + // 已移除管理员角色区分(根据之前需求) // 维修人员特有字段 private String repairmanId; // 维修人员ID(仅repairer类型需要) diff --git a/src/main/java/com/campus/water/mapper/AdminRepository.java b/src/main/java/com/campus/water/mapper/AdminRepository.java index e73d1be..29c6b30 100644 --- a/src/main/java/com/campus/water/mapper/AdminRepository.java +++ b/src/main/java/com/campus/water/mapper/AdminRepository.java @@ -1,8 +1,7 @@ package com.campus.water.mapper; -import com.campus.water.entity.Admin; // 改为引用Admin实体类 +import com.campus.water.entity.Admin; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.List; @@ -10,36 +9,24 @@ import java.util.Optional; @Repository public interface AdminRepository extends JpaRepository { - // ========== 登录核心方法(适配Admin的adminName字段) ========== - Optional findByAdminName(String admin_name); + // 登录核心方法 + Optional findByAdminName(String adminName); - // ========== 业务方法(适配Admin类) ========== // 根据管理员ID查询 Optional findByAdminId(String adminId); - // 根据管理员姓名模糊查询(适配Admin的adminName字段) + // 根据管理员姓名模糊查询 List findByAdminNameContaining(String adminName); - // 根据角色查询管理员(引用Admin内的枚举) - List findByRole(Admin.AdminRole role); - - // 根据状态查询管理员(引用Admin内的枚举) - List findByStatus(Admin.AdminStatus status); - // 根据手机号查询管理员 Optional findByPhone(String phone); - // 按角色和状态查询管理员(JPQL中实体类名改为Admin) - @Query("SELECT a FROM Admin a WHERE a.role = ?1 AND a.status = ?2") - List findByRoleAndStatus(Admin.AdminRole role, Admin.AdminStatus status); - // 检查管理员ID是否存在 boolean existsByAdminId(String adminId); // 检查手机号是否存在 boolean existsByPhone(String phone); - // 检查用户名是否存在(适配Admin的adminName字段) - boolean existsByAdminName(String admin_name); - + // 检查用户名是否存在 + boolean existsByAdminName(String adminName); } \ No newline at end of file diff --git a/src/main/java/com/campus/water/service/AdminService.java b/src/main/java/com/campus/water/service/AdminService.java index 62a00b0..9051634 100644 --- a/src/main/java/com/campus/water/service/AdminService.java +++ b/src/main/java/com/campus/water/service/AdminService.java @@ -14,21 +14,16 @@ public class AdminService { private final AdminRepository adminRepository; /** - * 获取管理员列表(支持按角色和状态筛选) + * 获取所有管理员列表 */ - public List getAdminList(Admin.AdminRole role, Admin.AdminStatus status) { - if (role != null && status != null) { - // 按角色和状态筛选 - return adminRepository.findByRoleAndStatus(role, status); - } else if (role != null) { - // 仅按角色筛选 - return adminRepository.findByRole(role); - } else if (status != null) { - // 仅按状态筛选 - return adminRepository.findByStatus(status); - } else { - // 查询所有管理员 - return adminRepository.findAll(); - } + public List getAdminList() { + return adminRepository.findAll(); + } + + /** + * 根据姓名搜索管理员 + */ + public List searchAdminsByName(String name) { + return adminRepository.findByAdminNameContaining(name); } } \ No newline at end of file diff --git a/src/main/java/com/campus/water/service/RegisterService.java b/src/main/java/com/campus/water/service/RegisterService.java index e7de19d..d15ac3d 100644 --- a/src/main/java/com/campus/water/service/RegisterService.java +++ b/src/main/java/com/campus/water/service/RegisterService.java @@ -51,18 +51,16 @@ public class RegisterService { // 修正管理员注册逻辑(适配新实体Admin) private void handleAdminRegister(String username, String password, RegisterRequest request) { - // 检查用户名是否已存在(使用新方法existsByAdminName) + // 检查用户名是否已存在 if (adminRepository.existsByAdminName(username)) { throw new RuntimeException("管理员用户名已存在"); } Admin admin = new Admin(); admin.setAdminId(request.getAdminId()); - admin.setAdminName(username); // 字段名从username改为adminName + admin.setAdminName(username); admin.setPassword(password); - // 角色枚举值转换(新实体角色为小写,需统一) - admin.setRole(Admin.AdminRole.valueOf(request.getAdminRole().toLowerCase())); - admin.setStatus(Admin.AdminStatus.active); // 状态枚举值改为小写 + admin.setPhone(request.getPhone()); // 假设请求中有电话字段 adminRepository.save(admin); } @@ -82,6 +80,7 @@ public class RegisterService { user.setPassword(password); // 设置密码 user.setStudentId(request.getStudentId()); // 设置学号 user.setStudentName(request.getStudentName()); // 设置学生姓名 + user.setPhone(request.getPhone()); // 新增:保存手机号 user.setStatus(User.UserStatus.active); // 设置状态(使用 User 类的枚举) // 保存 User 实体(与 UserRepository 类型匹配) -- 2.34.1