diff --git a/src/main/java/issueissyu/backend/domain/issue/entity/IssuePin.java b/src/main/java/issueissyu/backend/domain/issue/entity/IssuePin.java index 3165edfe..40a0dcd9 100644 --- a/src/main/java/issueissyu/backend/domain/issue/entity/IssuePin.java +++ b/src/main/java/issueissyu/backend/domain/issue/entity/IssuePin.java @@ -57,4 +57,16 @@ public class IssuePin extends BaseEntity { public void incrementPetitionCount() { this.petitionCount++; } + + public void markInProgressIfBeforeProgress() { + if (this.issuePinState == IssuePinState.BEFORE_PROGRESS) { + this.issuePinState = IssuePinState.IN_PROGRESS; + } + } + + public void markResolvedIfInProgress() { + if (this.issuePinState == IssuePinState.IN_PROGRESS) { + this.issuePinState = IssuePinState.RESOLVED; + } + } } diff --git a/src/main/java/issueissyu/backend/domain/issue/service/command/ProblemSolverCommandServiceImpl.java b/src/main/java/issueissyu/backend/domain/issue/service/command/ProblemSolverCommandServiceImpl.java index 576cc641..4c7dd637 100644 --- a/src/main/java/issueissyu/backend/domain/issue/service/command/ProblemSolverCommandServiceImpl.java +++ b/src/main/java/issueissyu/backend/domain/issue/service/command/ProblemSolverCommandServiceImpl.java @@ -93,6 +93,8 @@ public GoNowResDTO participateGoNow(Long pinId, String uid) { throw ProblemSolverException.of(IssueErrorCode.GO_NOW_400_1); } + issuePin.markInProgressIfBeforeProgress(); + return GoNowResDTO.builder() .pinId(pinId) .problemSolverId(saved.getProblemSolverId()) @@ -198,6 +200,8 @@ public ProblemSolverCheckResDTO resolveCitizenVerification(Long problemSolverId, solver.markResolved(); problemSolverRepository.save(solver); + solver.getIssuePin().markResolvedIfInProgress(); + return ProblemSolverCheckResDTO.builder() .problemSolveState(ProblemSolveState.RESOLVED.name()) .build();