diff --git a/Admin/src/main/java/com/seveneleven/project/dto/PatchAuthorization.java b/Admin/src/main/java/com/seveneleven/project/dto/PatchAuthorization.java index 036c286f..8cc4ed0a 100644 --- a/Admin/src/main/java/com/seveneleven/project/dto/PatchAuthorization.java +++ b/Admin/src/main/java/com/seveneleven/project/dto/PatchAuthorization.java @@ -3,6 +3,7 @@ import com.seveneleven.entity.member.Member; import com.seveneleven.entity.project.Project; import com.seveneleven.entity.project.ProjectAuthorization; +import com.seveneleven.entity.project.constant.Authorization; import com.seveneleven.entity.project.constant.MemberType; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,7 +20,7 @@ public static abstract class BaseMemberAuthorization implements MemberAuthorizat protected Long memberId; protected String memberName; protected MemberType memberType; - protected String projectAuthorization; + protected Authorization projectAuthorization; public abstract ProjectAuthorization toEntity(Project project, Member member); diff --git a/Admin/src/main/java/com/seveneleven/project/dto/PutProject.java b/Admin/src/main/java/com/seveneleven/project/dto/PutProject.java index f59ca4c6..a01e134d 100644 --- a/Admin/src/main/java/com/seveneleven/project/dto/PutProject.java +++ b/Admin/src/main/java/com/seveneleven/project/dto/PutProject.java @@ -29,7 +29,6 @@ public static class Request { private Long projectTypeId; // 프로젝트 유형 ID private ProjectStatusCode projectStatusCode; // private String bnsManager; // BNS 담당자 ID (Member 엔티티의 ID) - private String contractNumber; // 계약서 번호 private LocalDate plannedStartDate; // 시작 예정일 private LocalDate plannedEndDate; // 종료 예정일 private LocalDate startDate; // 시작일 @@ -54,7 +53,6 @@ public Project updateProject( projectName, projectDescription, projectStatusCode, - contractNumber, plannedStartDate, plannedEndDate, startDate, @@ -76,7 +74,6 @@ public static class Response { private String projectType; // 프로젝트 유형 ID private ProjectStatusCode projectStatusCode; // private String bnsManager; // BNS 담당자 ID (Member 엔티티의 ID) - private String contractNumber; // 계약서 번호 private LocalDate plannedStartDate; // 시작 예정일 private LocalDate plannedEndDate; // 종료 예정일 private LocalDate startDate; // 시작일 @@ -101,7 +98,6 @@ private Response(Project project, List tags, List { List findByProjectIdAndIsActive(Long projectId, YesNo isActive); + + } diff --git a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagServiceImpl.java b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagServiceImpl.java index 79d2885a..0ee4fd27 100644 --- a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagServiceImpl.java +++ b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagServiceImpl.java @@ -12,7 +12,7 @@ public class AdminProjectTagServiceImpl implements AdminProjectTagService { private final ProjectTagReader projectTagReader; - private final AdminProjectTagStore adminProjectTagStore; + private final AdminProjectTagStore projectTagStore; @Override public List getAllProjectTags(Long projectId) { @@ -21,6 +21,7 @@ public List getAllProjectTags(Long projectId) { @Override public List storeProjectTags(Project project, List tags) { - return adminProjectTagStore.store(project, tags); + List projectTags = projectTagReader.readByProjectId(project.getId()); + return projectTagStore.store(project, tags, projectTags); } } diff --git a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStore.java b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStore.java index 59b4b263..02faa679 100644 --- a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStore.java +++ b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStore.java @@ -6,5 +6,5 @@ import java.util.List; public interface AdminProjectTagStore { - List store(Project project, List tags); + List store(Project project, List tags, List projectTags); } diff --git a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStoreImpl.java b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStoreImpl.java index 4a5644fa..c3c3c9b6 100644 --- a/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStoreImpl.java +++ b/Admin/src/main/java/com/seveneleven/project/service/AdminProjectTagStoreImpl.java @@ -15,11 +15,14 @@ public class AdminProjectTagStoreImpl implements AdminProjectTagStore { private final AdminProjectTagRepository projectTagRepository; @Override - public List store(Project project, List tagNameList) { + public List store(Project project, List tagNameList, List projectTags) { if(tagNameList == null || tagNameList.isEmpty()) { - return List.of(); + return projectTags; } + // TODO - 리스트 확인 후 추가 및 삭제 처리 + projectTagRepository.deleteAll(projectTags); + List ProjectTags = tagNameList .stream() .map(tagName -> ProjectTag.create(project, tagName)) diff --git a/Common/src/main/java/com/seveneleven/Main.java b/Common/src/main/java/com/seveneleven/Main.java deleted file mode 100644 index c92cef05..00000000 --- a/Common/src/main/java/com/seveneleven/Main.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.seveneleven; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; - -@SpringBootApplication -public class Main { - public static void main(String[] args) { - SpringApplication.run(Main.class, args); - } -} \ No newline at end of file diff --git a/Common/src/main/java/com/seveneleven/entity/project/Project.java b/Common/src/main/java/com/seveneleven/entity/project/Project.java index 16a0b00d..c1cfbbea 100644 --- a/Common/src/main/java/com/seveneleven/entity/project/Project.java +++ b/Common/src/main/java/com/seveneleven/entity/project/Project.java @@ -118,7 +118,6 @@ public Project update( String name, String description, ProjectStatusCode statusCode, - String contractNumber, LocalDate plannedStartDate, LocalDate plannedEndDate, LocalDate startDate, @@ -132,7 +131,6 @@ public Project update( this.projectType = ProjectType; this.projectStatusCode = statusCode; this.bnsManager = bnsManager; - this.contractNumber = contractNumber; this.plannedStartDate = plannedStartDate; this.plannedEndDate = plannedEndDate; this.startDate = startDate; diff --git a/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorization.java b/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorization.java index 36394275..6fcb388b 100644 --- a/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorization.java +++ b/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorization.java @@ -4,6 +4,7 @@ import com.seveneleven.entity.global.YesNo; import com.seveneleven.entity.global.converter.YesNoConverter; import com.seveneleven.entity.member.Member; +import com.seveneleven.entity.project.constant.Authorization; import com.seveneleven.entity.project.constant.MemberType; import com.seveneleven.entity.project.duplkey.MemberProjectStepId; import jakarta.persistence.*; @@ -34,12 +35,13 @@ public class ProjectAuthorization extends BaseEntity { private MemberType memberType; // 회원 구분 (client, developer) // Question - Enum으로 뺄까? - private String authorizationCode; // 권한 코드 + @Enumerated(EnumType.STRING) + private Authorization authorizationCode; // 권한 코드 @Convert(converter = YesNoConverter.class) private YesNo isActive; // 삭제 여부 - private ProjectAuthorization(Member member, Project project, MemberType memberType, String authorizationCode) { + private ProjectAuthorization(Member member, Project project, MemberType memberType, Authorization authorizationCode) { this.id = new MemberProjectStepId(member.getId(), project.getId()); this.member = member; this.project = project; @@ -48,11 +50,11 @@ private ProjectAuthorization(Member member, Project project, MemberType memberTy this.isActive = YesNo.YES; } - public static ProjectAuthorization create(Member member, Project project, MemberType memberType, String authorizationCode) { + public static ProjectAuthorization create(Member member, Project project, MemberType memberType, Authorization authorizationCode) { return new ProjectAuthorization(member, project, memberType, authorizationCode); } - public void edit(MemberType memberType, String authorizationCode) { + public void edit(MemberType memberType, Authorization authorizationCode) { this.memberType = memberType; this.authorizationCode = authorizationCode; } @@ -61,4 +63,8 @@ public ProjectAuthorizationHistory delete() { isActive = YesNo.NO; return ProjectAuthorizationHistory.create(this); } + + public String getAuthorization() { + return authorizationCode.name(); + } } \ No newline at end of file diff --git a/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorizationHistory.java b/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorizationHistory.java index 1e103237..d0deb97a 100644 --- a/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorizationHistory.java +++ b/Common/src/main/java/com/seveneleven/entity/project/ProjectAuthorizationHistory.java @@ -38,7 +38,7 @@ private ProjectAuthorizationHistory(ProjectAuthorization authorization) { this.memberName = authorization.getMember().getName(); this.projectName = authorization.getProject().getProjectName(); this.memberType = authorization.getMemberType().name(); - this.authorizationCode = authorization.getAuthorizationCode(); + this.authorizationCode = authorization.getAuthorization(); this.isActive = authorization.getIsActive(); } diff --git a/Main/src/main/java/com/seveneleven/project/dto/GetMemberAuthorization.java b/Main/src/main/java/com/seveneleven/project/dto/GetMemberAuthorization.java index e9dd6671..6b43a692 100644 --- a/Main/src/main/java/com/seveneleven/project/dto/GetMemberAuthorization.java +++ b/Main/src/main/java/com/seveneleven/project/dto/GetMemberAuthorization.java @@ -24,7 +24,7 @@ public String toString() { private Response(ProjectAuthorization authorization) { this.memberId = authorization.getMember().getId(); - this.authorization = authorization.getAuthorizationCode(); + this.authorization = authorization.getAuthorization(); this.memberType = authorization.getMemberType(); } diff --git a/Main/src/main/java/com/seveneleven/project/dto/GetProjectAuthorization.java b/Main/src/main/java/com/seveneleven/project/dto/GetProjectAuthorization.java index aae212a4..8a058898 100644 --- a/Main/src/main/java/com/seveneleven/project/dto/GetProjectAuthorization.java +++ b/Main/src/main/java/com/seveneleven/project/dto/GetProjectAuthorization.java @@ -58,7 +58,7 @@ public String toString() { private CustomerMemberAuthorization(ProjectAuthorization projectAuthorization) { this.memberId = projectAuthorization.getMember().getId(); this.memberName = projectAuthorization.getMember().getName(); - this.projectAuthorization = projectAuthorization.getAuthorizationCode(); + this.projectAuthorization = projectAuthorization.getAuthorization(); } public static CustomerMemberAuthorization toDto(ProjectAuthorization projectAuthorization) { @@ -82,7 +82,7 @@ public String toString() { private DeveloperMemberAuthorization(ProjectAuthorization projectAuthorization) { this.memberId = projectAuthorization.getMember().getId(); this.memberName = projectAuthorization.getMember().getName(); - this.projectAuthorization = projectAuthorization.getAuthorizationCode(); + this.projectAuthorization = projectAuthorization.getAuthorization(); } public static DeveloperMemberAuthorization toDto(ProjectAuthorization projectAuthorization) { diff --git a/Main/src/main/java/com/seveneleven/project/dto/GetProjectDetail.java b/Main/src/main/java/com/seveneleven/project/dto/GetProjectDetail.java index cd404f77..1dde4e61 100644 --- a/Main/src/main/java/com/seveneleven/project/dto/GetProjectDetail.java +++ b/Main/src/main/java/com/seveneleven/project/dto/GetProjectDetail.java @@ -110,7 +110,7 @@ private CustomerMemberAuthorization(ProjectAuthorization projectAuthorization) { this.memberName = projectAuthorization.getMember().getName(); this.department = projectAuthorization.getMember().getDepartment(); this.position = projectAuthorization.getMember().getPosition(); - this.projectAuthorization = projectAuthorization.getAuthorizationCode(); + this.projectAuthorization = projectAuthorization.getAuthorization(); } public static CustomerMemberAuthorization toDto(ProjectAuthorization projectAuthorization) { @@ -138,7 +138,7 @@ private DeveloperMemberAuthorization(ProjectAuthorization projectAuthorization) this.memberName = projectAuthorization.getMember().getName(); this.department = projectAuthorization.getMember().getDepartment(); this.position = projectAuthorization.getMember().getPosition(); - this.projectAuthorization = projectAuthorization.getAuthorizationCode(); + this.projectAuthorization = projectAuthorization.getAuthorization(); } public static DeveloperMemberAuthorization toDto(ProjectAuthorization projectAuthorization) { diff --git a/Main/src/main/java/com/seveneleven/project/dto/PostProjectAuthorization.java b/Main/src/main/java/com/seveneleven/project/dto/PostProjectAuthorization.java index 9b10b280..4dc9b8b6 100644 --- a/Main/src/main/java/com/seveneleven/project/dto/PostProjectAuthorization.java +++ b/Main/src/main/java/com/seveneleven/project/dto/PostProjectAuthorization.java @@ -3,6 +3,7 @@ import com.seveneleven.entity.member.Member; import com.seveneleven.entity.project.Project; import com.seveneleven.entity.project.ProjectAuthorization; +import com.seveneleven.entity.project.constant.Authorization; import com.seveneleven.entity.project.constant.MemberType; import lombok.Getter; import lombok.NoArgsConstructor; @@ -30,7 +31,7 @@ public interface MemberAuthorization { public static abstract class BaseMemberAuthorization implements MemberAuthorization { protected Long memberId; protected MemberType memberType; - protected String projectAuthorization; + protected Authorization projectAuthorization; public abstract ProjectAuthorization toEntity(Project project, Member member); @@ -92,7 +93,7 @@ public static Response create(Long projectId) { public static class FailList { private Long memberId; private MemberType memberType; - private String projectAuthorization; + private Authorization projectAuthorization; private HttpStatus status; private String message;