package com.rongyichuang; import com.rongyichuang.user.entity.User; import com.rongyichuang.user.repository.UserRepository; import com.rongyichuang.employee.entity.Employee; import com.rongyichuang.employee.repository.EmployeeRepository; import com.rongyichuang.judge.entity.Judge; import com.rongyichuang.judge.repository.JudgeRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.test.context.ActiveProfiles; import java.util.Optional; @SpringBootTest @ActiveProfiles("dev") public class VerifyUserDataTest { @Autowired private UserRepository userRepository; @Autowired private EmployeeRepository employeeRepository; @Autowired private JudgeRepository judgeRepository; @Autowired private PasswordEncoder passwordEncoder; @Test public void verifyTestUsers() { System.out.println("=== 验证测试用户数据 ==="); // 验证员工用户 verifyUser("13800000001", "员工"); // 验证评委用户 verifyUser("13800000002", "评委"); // 验证多角色用户 verifyUser("13800000003", "多角色"); } private void verifyUser(String phone, String userType) { System.out.println("\n--- 验证" + userType + "用户: " + phone + " ---"); // 查找用户 Optional userOpt = userRepository.findByPhone(phone); if (userOpt.isEmpty()) { System.out.println("❌ 用户不存在"); return; } User user = userOpt.get(); System.out.println("✅ 用户存在: ID=" + user.getId() + ", 姓名=" + user.getName()); // 验证密码 if (user.getPassword() == null || user.getPassword().trim().isEmpty()) { System.out.println("❌ 用户密码为空"); } else { boolean passwordMatch = passwordEncoder.matches("123456", user.getPassword()); System.out.println(passwordMatch ? "✅ 密码验证成功" : "❌ 密码验证失败"); System.out.println("存储的密码哈希: " + user.getPassword().substring(0, 20) + "..."); } // 查找关联的员工信息 Optional employeeOpt = employeeRepository.findByUserId(user.getId()); if (employeeOpt.isPresent()) { Employee employee = employeeOpt.get(); System.out.println("✅ 员工信息: ID=" + employee.getId() + ", 姓名=" + employee.getName() + ", 角色=" + employee.getRoleId()); } else { System.out.println("❌ 无员工信息"); } // 查找关联的评委信息 Optional judgeOpt = judgeRepository.findByUserId(user.getId()); if (judgeOpt.isPresent()) { Judge judge = judgeOpt.get(); System.out.println("✅ 评委信息: ID=" + judge.getId() + ", 姓名=" + judge.getName() + ", 职位=" + judge.getTitle()); } else { System.out.println("❌ 无评委信息"); } // 检查权限 if (employeeOpt.isEmpty() && judgeOpt.isEmpty()) { System.out.println("❌ 用户没有权限(既不是员工也不是评委)"); } else { System.out.println("✅ 用户有权限"); } } }