Files
CompanyRegister/backend/src/main/java/com/smartoffice/config/DataSeeder.java
2026-01-28 23:56:33 +08:00

41 lines
1.4 KiB
Java

package com.smartoffice.config;
import com.smartoffice.user.Role;
import com.smartoffice.user.User;
import com.smartoffice.user.UserRepository;
import com.smartoffice.user.UserStatus;
import org.springframework.boot.CommandLineRunner;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
@Component
public class DataSeeder implements CommandLineRunner {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
public DataSeeder(UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
}
@Override
public void run(String... args) {
if (userRepository.count() > 0) {
return;
}
userRepository.save(createUser("admin", "管理员", Role.ADMIN));
userRepository.save(createUser("manager", "部门经理", Role.MANAGER));
userRepository.save(createUser("employee", "普通员工", Role.EMPLOYEE));
}
private User createUser(String username, String fullName, Role role) {
User user = new User();
user.setUsername(username);
user.setPasswordHash(passwordEncoder.encode(username + "123"));
user.setFullName(fullName);
user.setRole(role);
user.setStatus(UserStatus.ACTIVE);
return user;
}
}