diff --git a/src/main/java/clap/server/adapter/inbound/security/service/SecurityUserDetails.java b/src/main/java/clap/server/adapter/inbound/security/service/SecurityUserDetails.java index e58c2e2a..5de25fac 100644 --- a/src/main/java/clap/server/adapter/inbound/security/service/SecurityUserDetails.java +++ b/src/main/java/clap/server/adapter/inbound/security/service/SecurityUserDetails.java @@ -52,7 +52,7 @@ public static UserDetails from(MemberEntity member) { .userId(member.getMemberId()) .username(member.getName()) .authorities(List.of(new CustomGrantedAuthority(member.getRole().name()))) - .accountNonLocked(member.getStatus().equals(MemberStatus.ACTIVE)) + .accountNonLocked(member.getStatus()==MemberStatus.ACTIVE) .build(); } diff --git a/src/main/java/clap/server/application/mapper/response/MemberResponseMapper.java b/src/main/java/clap/server/application/mapper/response/MemberResponseMapper.java index 16153539..cea4541b 100644 --- a/src/main/java/clap/server/application/mapper/response/MemberResponseMapper.java +++ b/src/main/java/clap/server/application/mapper/response/MemberResponseMapper.java @@ -64,8 +64,7 @@ public static MemberDetailsResponse toMemberDetailsResponse(Member member) { member.getMemberInfo().getDepartment().getDepartmentId(), member.getMemberInfo().getDepartment().getName(), member.getMemberInfo().getDepartmentRole(), - member.getStatus().equals(MemberStatus.PENDING) || member.getStatus().equals(MemberStatus.APPROVAL_REQUEST) ? null: - member.getInProgressTaskCount() + member.getInReviewingTaskCount() + member.getRemainingTasks() ); } diff --git a/src/main/java/clap/server/application/mapper/response/TaskResponseMapper.java b/src/main/java/clap/server/application/mapper/response/TaskResponseMapper.java index 0b723f93..fc4bdca5 100644 --- a/src/main/java/clap/server/application/mapper/response/TaskResponseMapper.java +++ b/src/main/java/clap/server/application/mapper/response/TaskResponseMapper.java @@ -179,12 +179,12 @@ public static FindApprovalFormResponse toFindApprovalFormResponse(Task task) { ); } - public static FindManagersResponse toFindManagersResponse(Member manager, int remainingTasks) { + public static FindManagersResponse toFindManagersResponse(Member manager) { return new FindManagersResponse( manager.getMemberId(), manager.getNickname(), manager.getImageUrl(), - remainingTasks + manager.getRemainingTasks() ); } diff --git a/src/main/java/clap/server/application/service/admin/DeleteMemberService.java b/src/main/java/clap/server/application/service/admin/DeleteMemberService.java index 286b0412..8888b7a8 100644 --- a/src/main/java/clap/server/application/service/admin/DeleteMemberService.java +++ b/src/main/java/clap/server/application/service/admin/DeleteMemberService.java @@ -26,7 +26,7 @@ public void deleteMember(Long memberId) { Member member = loadMemberPort.findById(memberId) .orElseThrow(() -> new ApplicationException(MemberErrorCode.MEMBER_NOT_FOUND)); - if(member.getMemberInfo().getRole().equals(MemberRole.ROLE_MANAGER)){ + if (member.getMemberInfo().getRole() == MemberRole.ROLE_MANAGER) { managerInfoUpdatePolicy.validateNoRemainingTasks(member); } Hibernate.initialize(member.getDepartment()); diff --git a/src/main/java/clap/server/application/service/admin/ManageMemberService.java b/src/main/java/clap/server/application/service/admin/ManageMemberService.java index da49a104..af6e7307 100644 --- a/src/main/java/clap/server/application/service/admin/ManageMemberService.java +++ b/src/main/java/clap/server/application/service/admin/ManageMemberService.java @@ -32,10 +32,8 @@ public void updateMemberInfo(Long adminId, Long memberId, UpdateMemberRequest re Member member = memberService.findById(memberId); Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(() -> new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND)); - managerInfoUpdatePolicy.validateDepartment(department, request.role()); - if(member.getMemberInfo().getRole().equals(MemberRole.ROLE_MANAGER) && - !request.role().equals(MemberRole.ROLE_MANAGER)){ + if(member.getMemberInfo().getRole() == MemberRole.ROLE_MANAGER && !(request.role()==MemberRole.ROLE_MANAGER)){ managerInfoUpdatePolicy.validateNoRemainingTasks(member); } diff --git a/src/main/java/clap/server/application/service/auth/AuthService.java b/src/main/java/clap/server/application/service/auth/AuthService.java index d9b42a9f..543f0269 100644 --- a/src/main/java/clap/server/application/service/auth/AuthService.java +++ b/src/main/java/clap/server/application/service/auth/AuthService.java @@ -38,7 +38,7 @@ public LoginResponse login(String nickname, String password, String clientIp) { Member member = getMember(nickname,clientIp); validatePassword(password, member.getPassword(), nickname, clientIp); - if (member.getStatus().equals(MemberStatus.APPROVAL_REQUEST)) { + if (member.getStatus()==MemberStatus.APPROVAL_REQUEST) { String temporaryToken = manageTokenService.issueTemporaryToken(member.getMemberId()); return AuthResponseMapper.toLoginResponse(temporaryToken, null); } diff --git a/src/main/java/clap/server/application/service/task/FindManagersService.java b/src/main/java/clap/server/application/service/task/FindManagersService.java index f988f0fc..6244c376 100644 --- a/src/main/java/clap/server/application/service/task/FindManagersService.java +++ b/src/main/java/clap/server/application/service/task/FindManagersService.java @@ -1,6 +1,7 @@ package clap.server.application.service.task; import clap.server.adapter.inbound.web.dto.task.response.FindManagersResponse; +import clap.server.application.mapper.response.TaskResponseMapper; import clap.server.application.port.inbound.domain.MemberService; import clap.server.application.port.inbound.task.FindManagersUsecase; import clap.server.common.annotation.architecture.ApplicationService; @@ -10,8 +11,6 @@ import java.util.List; -import static clap.server.application.mapper.response.TaskResponseMapper.toFindManagersResponse; - @ApplicationService @RequiredArgsConstructor public class FindManagersService implements FindManagersUsecase { @@ -23,10 +22,7 @@ public class FindManagersService implements FindManagersUsecase { public List findManagers() { List managers = memberService.findActiveManagers(); return managers.stream() - .map(manager -> { - int remainingTasks = manager.getInProgressTaskCount() + manager.getInReviewingTaskCount(); - return toFindManagersResponse(manager, remainingTasks); - }).toList(); + .map(TaskResponseMapper::toFindManagersResponse).toList(); } } ; \ No newline at end of file diff --git a/src/main/java/clap/server/domain/model/member/Member.java b/src/main/java/clap/server/domain/model/member/Member.java index 2cd08694..146f798c 100644 --- a/src/main/java/clap/server/domain/model/member/Member.java +++ b/src/main/java/clap/server/domain/model/member/Member.java @@ -123,4 +123,12 @@ public void decrementInProgressTaskCount() { public void decrementInReviewingTaskCount() { this.inReviewingTaskCount--; } + + public Integer getRemainingTasks(){ + // 최종 회원 등록 전의 경우 + if(this.getStatus().equals(MemberStatus.PENDING) || this.getStatus().equals(MemberStatus.APPROVAL_REQUEST)){ + return null; + } + else return this.getInProgressTaskCount() + this.getInReviewingTaskCount(); + } } diff --git a/src/main/java/clap/server/domain/policy/member/ManagerInfoUpdatePolicy.java b/src/main/java/clap/server/domain/policy/member/ManagerInfoUpdatePolicy.java index 271bed85..ffe43167 100644 --- a/src/main/java/clap/server/domain/policy/member/ManagerInfoUpdatePolicy.java +++ b/src/main/java/clap/server/domain/policy/member/ManagerInfoUpdatePolicy.java @@ -1,6 +1,7 @@ package clap.server.domain.policy.member; import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole; +import clap.server.adapter.outbound.persistense.entity.member.constant.MemberStatus; import clap.server.common.annotation.architecture.Policy; import clap.server.domain.model.member.Department; import clap.server.domain.model.member.Member; @@ -21,6 +22,10 @@ public void validateDepartment(final Department department, final MemberRole mem // 담당자의 잔여 작업이 남아있는 경우 해당 회원의 데이터 수정이 허용되지 않음 public void validateNoRemainingTasks(final Member member){ + // 최종 회원 등록 전의 경우는 검증하지 않는다. + if(member.getStatus()==MemberStatus.PENDING || member.getStatus()==MemberStatus.APPROVAL_REQUEST){ + return; + } if(member.getInReviewingTaskCount()>0 || member.getInProgressTaskCount()> 0){ throw new DomainException(MemberErrorCode.MANAGER_MEMBER_UPDATE_NOT_ALLOWED_WITH_TASKS); }