Skip to content

Commit 4b33669

Browse files
committed
refactor: merge survey API into case dispatch and completion API #95
1 parent a190b0f commit 4b33669

File tree

7 files changed

+29
-107
lines changed

7 files changed

+29
-107
lines changed

backend/src/main/java/com/example/backend/dashboard/controller/DashboardController.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,19 @@ public ResponseEntity<?> getCaseVideo(@PathVariable("id") int id, HttpSession se
3838

3939
// 출동 | 미출동 클릭 시 => 1. 이미 출동인 상태 or 2. state를 업데이트
4040
@PutMapping("/ready/{id}")
41-
public ResponseEntity<?> updateCaseState(@PathVariable("id") int id, @RequestBody StateRequest request, HttpSession session) {
42-
Map<Integer, String> message = dashboardService.updateCaseState(id, request.getState(), session);
41+
public ResponseEntity<?> updateCaseState(@PathVariable("id") int id,
42+
@RequestBody StateRequest request,
43+
HttpSession session) {
44+
Map<Integer, String> message = dashboardService.updateCaseState(id, request, session);
4345
return ResponseEntity.ok(message);
4446
}
4547

4648
// 출동 중인 사건 해결 처리
4749
@PutMapping("/complete/{id}")
48-
public ResponseEntity<?> completeCase(@PathVariable("id") int id, HttpSession session) {
49-
Map<Integer, String> completedCase = dashboardService.completeCase(id, session);
50+
public ResponseEntity<?> completeCase(@PathVariable("id") int id,
51+
@RequestBody SurveyRequest surveyRequest,
52+
HttpSession session) {
53+
Map<Integer, String> completedCase = dashboardService.completeCase(id, surveyRequest, session);
5054
return ResponseEntity.ok(completedCase);
5155
}
5256

backend/src/main/java/com/example/backend/dashboard/controller/SurveyController.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

backend/src/main/java/com/example/backend/dashboard/dto/DashboardResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public class DashboardResponse {
2626
public static DashboardResponse fromEntity(CaseEntity entity) {
2727
return DashboardResponse.builder()
2828
.id(entity.getId())
29-
.police_name(entity.getPolice().getName())
30-
.police_rank(String.valueOf(entity.getPolice().getRank()))
29+
.police_name(entity.getPolice() != null ? entity.getPolice().getName() : null)
30+
.police_rank(entity.getPolice() != null ? String.valueOf(entity.getPolice().getRank()) : null)
3131
.address(entity.getCctv().getAddress())
3232
.date(entity.getDate())
3333
.level(entity.getLevel())

backend/src/main/java/com/example/backend/dashboard/dto/StateRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.example.backend.dashboard.dto;
22

3+
import com.example.backend.common.domain.CaseEntity;
34
import com.example.backend.common.domain.CaseEntity.CaseState;
45
import lombok.Getter;
56
import lombok.Setter;
@@ -8,4 +9,5 @@
89
@Setter
910
public class StateRequest {
1011
private CaseState state; // "출동" or "미출동"
12+
private CaseEntity.CaseCategory category;
1113
}

backend/src/main/java/com/example/backend/dashboard/dto/SurveyResponse.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

backend/src/main/java/com/example/backend/dashboard/service/DashboardService.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.example.backend.common.domain.CaseEntity;
44
import com.example.backend.common.domain.PoliceEntity;
55
import com.example.backend.dashboard.dto.DashboardResponse;
6+
import com.example.backend.dashboard.dto.StateRequest;
7+
import com.example.backend.dashboard.dto.SurveyRequest;
68
import com.example.backend.dashboard.repository.DashboardRepository;
79
import com.example.backend.user.dto.UserResponseDto;
810
import jakarta.persistence.EntityNotFoundException;
@@ -82,7 +84,7 @@ public Map<String, String> getCaseVideo(int id, HttpSession session) {
8284
}
8385

8486
// 출동, 미출동 상태 변경
85-
public Map<Integer, String> updateCaseState(int id, CaseEntity.CaseState state, HttpSession session) {
87+
public Map<Integer, String> updateCaseState(int id, StateRequest request, HttpSession session) {
8688
CaseEntity caseEntity = getAuthorizedCase(id, session);
8789
int policeId = getAuthenticatedPoliceId(session);
8890

@@ -92,7 +94,7 @@ public Map<Integer, String> updateCaseState(int id, CaseEntity.CaseState state,
9294
throw new IllegalStateException("해당 사건은 이미 출동 처리되었거나 완료된 사건입니다.");
9395
}
9496

95-
if (state == CaseEntity.CaseState.출동) {
97+
if (request.getState() == CaseEntity.CaseState.출동) {
9698
// 출동 처리
9799
caseEntity.setState(CaseEntity.CaseState.출동);
98100

@@ -106,21 +108,33 @@ public Map<Integer, String> updateCaseState(int id, CaseEntity.CaseState state,
106108
} else {
107109
// 미출동 처리
108110
caseEntity.setState(CaseEntity.CaseState.미출동);
111+
112+
if (request.getCategory() != null) {
113+
caseEntity.setAccuracy(false);
114+
caseEntity.setCategory(request.getCategory());
115+
}
116+
109117
dashboardRepository.save(caseEntity);
110118

111119
return Collections.singletonMap(id, "미출동 사건으로 변경합니다.");
112120
}
113121
}
114122

115123
// 출동 중인 사건 해결 처리
116-
public Map<Integer, String> completeCase(int id, HttpSession session) {
124+
public Map<Integer, String> completeCase(int id, SurveyRequest surveyRequest, HttpSession session) {
117125
CaseEntity caseEntity = getAuthorizedCase(id, session);
118126

119127
if (caseEntity.getState() != CaseEntity.CaseState.출동) {
120128
throw new IllegalStateException("해당 사건은 출동 상태가 아닙니다.");
121129
}
122130

123131
caseEntity.setState(CaseEntity.CaseState.완료);
132+
133+
if (surveyRequest.getCategory() != null) {
134+
caseEntity.setAccuracy(false);
135+
caseEntity.setCategory(surveyRequest.getCategory());
136+
}
137+
124138
dashboardRepository.save(caseEntity);
125139

126140
return Collections.singletonMap(id, "해당 사건이 해결 처리되었습니다.");

backend/src/main/java/com/example/backend/dashboard/service/SurveyService.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)