|
|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|