diff --git a/backend/src/main/java/com/magistr/app/controller/UserController.java b/backend/src/main/java/com/magistr/app/controller/UserController.java index 20d8f3c..5f62585 100755 --- a/backend/src/main/java/com/magistr/app/controller/UserController.java +++ b/backend/src/main/java/com/magistr/app/controller/UserController.java @@ -2,8 +2,10 @@ package com.magistr.app.controller; import com.magistr.app.dto.CreateUserRequest; import com.magistr.app.dto.UserResponse; +import com.magistr.app.model.Department; import com.magistr.app.model.Role; import com.magistr.app.model.User; +import com.magistr.app.repository.DepartmentRepository; import com.magistr.app.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,11 +24,13 @@ public class UserController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); private final UserRepository userRepository; + private final DepartmentRepository departmentRepository; private final BCryptPasswordEncoder passwordEncoder; - public UserController(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder) { + public UserController(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder, DepartmentRepository departmentRepository) { this.userRepository = userRepository; this.passwordEncoder = passwordEncoder; + this.departmentRepository = departmentRepository; } @GetMapping @@ -36,14 +40,19 @@ public class UserController { List users = userRepository.findAll(); List response = users.stream() - .map(u -> new UserResponse( - u.getId(), - u.getUsername(), - u.getRole().name(), - u.getFullName(), - u.getJobTitle(), - u.getDepartmentId() - )) + .map(u -> { + String departmentName = departmentRepository.findById(u.getDepartmentId()) + .map(Department::getDepartmentName) + .orElse("Неизвестно"); + + return new UserResponse( + u.getId(), + u.getUsername(), + u.getRole().name(), + u.getFullName(), + u.getJobTitle(), + departmentName); + }) .toList(); logger.info("Получено {} пользователей", response.size()); return response; @@ -62,14 +71,19 @@ public class UserController { List users = userRepository.findByRole(Role.TEACHER); List response = users.stream() - .map(u -> new UserResponse( - u.getId(), - u.getUsername(), - u.getRole().name(), - u.getFullName(), - u.getJobTitle(), - u.getDepartmentId() - )) + .map(u -> { + String departmentName = departmentRepository.findById(u.getDepartmentId()) + .map(Department::getDepartmentName) + .orElse("Неизвестно"); + + return new UserResponse( + u.getId(), + u.getUsername(), + u.getRole().name(), + u.getFullName(), + u.getJobTitle(), + departmentName); + }) .toList(); logger.info("Получено {} преподавателей", response.size()); return response; diff --git a/backend/src/main/java/com/magistr/app/dto/UserResponse.java b/backend/src/main/java/com/magistr/app/dto/UserResponse.java index 731cf8a..2bc5ba7 100755 --- a/backend/src/main/java/com/magistr/app/dto/UserResponse.java +++ b/backend/src/main/java/com/magistr/app/dto/UserResponse.java @@ -10,11 +10,21 @@ public class UserResponse { private String role; private String fullName; private String jobTitle; + private String departmentName; private Long departmentId; public UserResponse() { } + public UserResponse(Long id, String username, String role, String fullName, String jobTitle, String departmentName) { + this.id = id; + this.username = username; + this.role = role; + this.fullName = fullName; + this.jobTitle = jobTitle; + this.departmentName = departmentName; + } + public UserResponse(Long id, String username, String role, String fullName, String jobTitle, Long departmentId) { this.id = id; this.username = username; @@ -36,47 +46,27 @@ public class UserResponse { return id; } - public void setId(Long id) { - this.id = id; - } - public String getUsername() { return username; } - public void setUsername(String username) { - this.username = username; - } - public String getRole() { return role; } - public void setRole(String role) { - this.role = role; - } - public String getFullName() { return fullName; } - public void setFullName(String fullName) { - this.fullName = fullName; - } - public String getJobTitle() { return jobTitle; } - public void setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; + public String getDepartmentName() { + return departmentName; } public Long getDepartmentId() { return departmentId; } - - public void setDepartmentId(Long departmentId) { - this.departmentId = departmentId; - } } diff --git a/frontend/admin/js/views/users.js b/frontend/admin/js/views/users.js index 3b11350..0abfae6 100755 --- a/frontend/admin/js/views/users.js +++ b/frontend/admin/js/views/users.js @@ -213,7 +213,7 @@ export async function initUsers() { ${escapeHtml(u.username)} ${escapeHtml(u.fullName || '-')} ${escapeHtml(u.jobTitle || '-')} - ${u.departmentId || '-'} + ${u.departmentName || '-'} ${ROLE_LABELS[u.role] || escapeHtml(u.role)} @@ -383,7 +383,7 @@ export async function initUsers() { const role = document.getElementById('new-role').value; const fullName = document.getElementById('new-fullname').value.trim(); const jobTitle = document.getElementById('new-jobtitle').value.trim(); - const departmentId = document.getElementById('new-department').value; + const department = document.getElementById('new-department').value; if (!username || !password || !fullName || !jobTitle || !departmentId) { showAlert('create-alert', 'Заполните все поля', 'error'); diff --git a/frontend/admin/views/users.html b/frontend/admin/views/users.html index 3b63477..5fd09fb 100755 --- a/frontend/admin/views/users.html +++ b/frontend/admin/views/users.html @@ -28,7 +28,7 @@
- +