From fc324adec93e41ddf68b7c6d16815ee0dac1b325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=AB=9E=E7=94=B1?= <1193626695@qq.com> Date: Wed, 10 Dec 2025 18:58:27 +0800 Subject: [PATCH] =?UTF-8?q?repair=E4=BA=BA=E5=91=98=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/dto/request/RegisterRequest.java | 5 ++- .../campus/water/service/RegisterService.java | 33 ++++++++++++++----- 2 files changed, 29 insertions(+), 9 deletions(-) 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 1a7bba3..a79022d 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 @@ -26,6 +26,9 @@ public class RegisterRequest { private String adminId; private String role; // 新增:管理员角色(super_admin/area_admin/viewer) - // 维修人员特有字段 + // 维修人员特有字段(新增基本信息字段) private String repairmanId; + private String repairmanName; // 维修人员姓名 + private String areaId; // 负责区域ID + private String skills; // 技能描述 } \ 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 d9ce4e2..14bbe12 100644 --- a/src/main/java/com/campus/water/service/RegisterService.java +++ b/src/main/java/com/campus/water/service/RegisterService.java @@ -2,10 +2,12 @@ package com.campus.water.service; import com.campus.water.entity.Admin; import com.campus.water.entity.RepairerAuth; +import com.campus.water.entity.Repairman; import com.campus.water.entity.User; import com.campus.water.entity.dto.request.RegisterRequest; import com.campus.water.mapper.AdminRepository; import com.campus.water.mapper.RepairerAuthRepository; +import com.campus.water.mapper.RepairmanRepository; import com.campus.water.mapper.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; @@ -25,6 +27,10 @@ public class RegisterService { @Autowired private RepairerAuthRepository repairerAuthRepository; + // 新增注入RepairmanRepository + @Autowired + private RepairmanRepository repairmanRepository; + @Autowired private PasswordEncoder passwordEncoder; @@ -64,7 +70,7 @@ public class RegisterService { Admin admin = new Admin(); admin.setAdminId(request.getAdminId()); admin.setAdminName(username); - admin.setPassword(password); // 使用BCrypt加密后的密码 + admin.setPassword(password); admin.setPhone(request.getPhone()); admin.setRole(Admin.AdminRole.valueOf("ROLE_" + request.getRole().toUpperCase())); admin.setCreatedTime(LocalDateTime.now()); @@ -92,6 +98,7 @@ public class RegisterService { } private void handleRepairmanRegister(String username, String password, RegisterRequest request) { + // 1. 校验维修人员认证信息唯一性 if (repairerAuthRepository.existsByUsername(username)) { throw new RuntimeException("维修人员用户名已存在"); } @@ -99,12 +106,22 @@ public class RegisterService { throw new RuntimeException("维修人员ID已被注册"); } - RepairerAuth repairman = new RepairerAuth(); - repairman.setUsername(username); - repairman.setPassword(password);// 使用BCrypt加密后的密码 - repairman.setRepairmanId(request.getRepairmanId()); - repairman.setAccountStatus(RepairerAuth.AccountStatus.active); - - repairerAuthRepository.save(repairman); + // 2. 保存维修人员认证信息(RepairerAuth表) + RepairerAuth repairerAuth = new RepairerAuth(); + repairerAuth.setUsername(username); + repairerAuth.setPassword(password); + repairerAuth.setRepairmanId(request.getRepairmanId()); + repairerAuth.setAccountStatus(RepairerAuth.AccountStatus.active); + repairerAuthRepository.save(repairerAuth); + + // 3. 保存维修人员基本信息(Repairman表) + Repairman repairman = new Repairman(); + repairman.setRepairmanId(request.getRepairmanId()); // 与认证表关联的ID + repairman.setRepairmanName(request.getRepairmanName()); // 从请求获取姓名 + repairman.setPhone(request.getPhone()); // 从请求获取手机号 + repairman.setAreaId(request.getAreaId()); // 从请求获取负责区域 + repairman.setSkills(request.getSkills()); // 从请求获取技能描述 + // 其他字段使用默认值:状态默认idle,工作量默认0,评分默认null + repairmanRepository.save(repairman); } } \ No newline at end of file -- 2.34.1