diff --git a/BE/src/main/java/com/codesquad/issuetracker/issue/domain/Issue.java b/BE/src/main/java/com/codesquad/issuetracker/issue/domain/Issue.java index 57e3b745f..3c4b4b991 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/issue/domain/Issue.java +++ b/BE/src/main/java/com/codesquad/issuetracker/issue/domain/Issue.java @@ -97,8 +97,20 @@ public void removeMilestone() { } public void updateIssue(IssueRequest issueRequest) { + boolean isIssueOpenRequest = issueRequest.isOpen(); + + if(this.open != isIssueOpenRequest && milestone != null) { + if (isIssueOpenRequest) { + this.milestone.openIssue(); + } + + if (!isIssueOpenRequest) { + this.milestone.closeIssue(); + } + } + this.title = issueRequest.getTitle(); - this.open = issueRequest.isOpen(); + this.open = isIssueOpenRequest; } public static Issue create(User author, String title) { diff --git a/BE/src/main/java/com/codesquad/issuetracker/milestone/domain/Milestone.java b/BE/src/main/java/com/codesquad/issuetracker/milestone/domain/Milestone.java index 43302f9e3..305aa61ca 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/milestone/domain/Milestone.java +++ b/BE/src/main/java/com/codesquad/issuetracker/milestone/domain/Milestone.java @@ -69,4 +69,14 @@ public void countOpenIssuesDown() { public void countClosedIssuesDown() { this.closedIssues--; } + + public void openIssue() { + this.openIssues++; + this.closedIssues--; + } + + public void closeIssue() { + this.openIssues--; + this.closedIssues++; + } }