[REFACTOR] Extracted user-related operations into a dedicated UserService and updated controller methods to use it
parent
26842fe040
commit
ea3f7d02b6
@ -0,0 +1,17 @@
|
|||||||
|
package kr.re.etri.autoflow.payload.response;
|
||||||
|
|
||||||
|
import kr.re.etri.autoflow.entity.ProjectPermission;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserProjectResponse {
|
||||||
|
private Long projectId;
|
||||||
|
private String projectName;
|
||||||
|
private Set<ProjectPermission> permissions;
|
||||||
|
}
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
package kr.re.etri.autoflow.service;
|
||||||
|
|
||||||
|
import kr.re.etri.autoflow.payload.response.UserProjectResponse;
|
||||||
|
import kr.re.etri.autoflow.payload.response.UserInfoResponse;
|
||||||
|
import kr.re.etri.autoflow.repository.UserProjectMapRepository;
|
||||||
|
import kr.re.etri.autoflow.repository.UserRepository;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class UserService {
|
||||||
|
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
private final UserProjectMapRepository userProjectMapRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사용자 ID로 조회
|
||||||
|
*/
|
||||||
|
public Optional<UserInfoResponse> getUserById(Long id) {
|
||||||
|
return userRepository.findById(id)
|
||||||
|
.map(user -> new UserInfoResponse(
|
||||||
|
user.getId(),
|
||||||
|
user.getUsername(),
|
||||||
|
user.getEmail(),
|
||||||
|
user.getRoles().stream()
|
||||||
|
.map(role -> role.getName().name())
|
||||||
|
.toList()
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 전체 사용자 조회
|
||||||
|
*/
|
||||||
|
public List<UserInfoResponse> getAllUsers() {
|
||||||
|
return userRepository.findAll().stream()
|
||||||
|
.map(user -> new UserInfoResponse(
|
||||||
|
user.getId(),
|
||||||
|
user.getUsername(),
|
||||||
|
user.getEmail(),
|
||||||
|
user.getRoles().stream()
|
||||||
|
.map(role -> role.getName().name())
|
||||||
|
.toList()
|
||||||
|
))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserProjectResponse> getUserProjects(Long userId) {
|
||||||
|
return userProjectMapRepository.findAllByUserId(userId).stream()
|
||||||
|
.map(mapping -> new UserProjectResponse(
|
||||||
|
mapping.getProject().getId(),
|
||||||
|
mapping.getProject().getPrjNm(),
|
||||||
|
mapping.getPermissions()
|
||||||
|
))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue