41 lines
1.4 KiB
Java
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;
|
|
}
|
|
}
|