@@ -66,30 +66,42 @@ public List<AlarmResponse> getReadyCases(HttpSession session) {
6666 public AlarmResponse getCaseById (Integer id , HttpSession session ) {
6767 CaseEntity caseEntity = getAuthorizedCase (id , session );
6868
69- if (caseEntity .getState () != CaseEntity .CaseState .확인 && caseEntity .getState () != CaseEntity .CaseState .미확인 ) {
70- throw new IllegalStateException ("해당 사건은 이미 출동 되었거나 완료된 사건입니다." );
69+ if (caseEntity .getState () == CaseState .출동 || caseEntity .getState () == CaseState .미출동 || caseEntity .getState () == CaseState .완료 ) {
70+ throw new IllegalStateException ("해당 사건은 이미 출동 처리되었거나 완료된 사건입니다." );
71+ }
72+
73+ if (caseEntity .getState () == CaseState .미확인 ){
74+ caseEntity .setState (CaseState .확인 );
75+ alarmListRepository .save (caseEntity );
7176 }
7277
7378 return AlarmResponse .fromEntityWithVideo (caseEntity );
7479 }
7580
76- public String updateCaseState (Integer id , HttpSession session ) {
81+ public String updateCaseState (Integer id , CaseState state , HttpSession session ) {
7782 CaseEntity caseEntity = getAuthorizedCase (id , session );
7883 int policeId = getAuthenticatedPoliceId (session );
7984
80- // 이미 state가 "출동"이면 메시지 반환
81- if (caseEntity .getState () == CaseEntity .CaseState .출동 ) {
82- return "이미 출동된 사건입니다." ;
83- } else {
84- // 그 외의 경우, state를 "출동"으로 변경 후 저장
85- caseEntity .setState (CaseEntity .CaseState .출동 );
85+ if (caseEntity .getState () == CaseState .출동 || caseEntity .getState () == CaseState .미출동 || caseEntity .getState () == CaseState .완료 ) {
86+ throw new IllegalStateException ("해당 사건은 이미 출동 처리되었거나 완료된 사건입니다." );
87+ }
88+
89+ if (state == CaseState .출동 ) {
90+ // state를 "출동"으로 변경 후 저장
91+ caseEntity .setState (CaseState .출동 );
8692
8793 // 경찰관 배정: 현재 로그인한 경찰관의 id를 PoliceEntity에 할당
8894 PoliceEntity assignedPolice = PoliceEntity .builder ().id (policeId ).build ();
8995 caseEntity .setPolice (assignedPolice );
9096
9197 alarmListRepository .save (caseEntity );
9298 return "지금 출동합니다." ;
99+ } else {
100+ // state를 "미출동"으로 변경 후 저장
101+ caseEntity .setState (CaseState .미출동 );
102+
103+ alarmListRepository .save (caseEntity );
104+ return "미출동 사건으로 변경합니다." ;
93105 }
94106 }
95107
0 commit comments