Skip to content

Commit 430d8b1

Browse files
authored
Merge pull request #96 from kookmin-sw/refactor/95
[Backend] refactor: 출동 중, 알림 리스트 API 통합 및 코드 리팩터링
2 parents abadb4f + e2edaa7 commit 430d8b1

14 files changed

+220
-410
lines changed

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

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.example.backend.dashboard.controller;
2+
3+
import com.example.backend.dashboard.dto.*;
4+
import com.example.backend.dashboard.service.DashboardService;
5+
import jakarta.servlet.http.HttpSession;
6+
import lombok.RequiredArgsConstructor;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.*;
9+
10+
import java.util.Collections;
11+
import java.util.List;
12+
import java.util.Map;
13+
14+
@RestController
15+
@RequestMapping("/api/v1/case")
16+
@RequiredArgsConstructor
17+
public class DashboardController {
18+
19+
private final DashboardService dashboardService;
20+
21+
// 사건 정보 조회
22+
@GetMapping("")
23+
public ResponseEntity<?> getCases(HttpSession session) {
24+
List<DashboardResponse> cases = dashboardService.getCases(session);
25+
if (cases.isEmpty()) {
26+
return ResponseEntity.status(404)
27+
.body(Collections.singletonMap("message", "사건이 없습니다."));
28+
}
29+
return ResponseEntity.ok(cases);
30+
}
31+
32+
// 사건 영상 확인
33+
@GetMapping("/{id}")
34+
public ResponseEntity<?> getCaseVideo(@PathVariable("id") int id, HttpSession session) {
35+
Map<String, String> videoResponse = dashboardService.getCaseVideo(id, session);
36+
return ResponseEntity.ok(videoResponse);
37+
}
38+
39+
// 출동 | 미출동 클릭 시 => 1. 이미 출동인 상태 or 2. state를 업데이트
40+
@PutMapping("/ready/{id}")
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);
45+
return ResponseEntity.ok(message);
46+
}
47+
48+
// 출동 중인 사건 해결 처리
49+
@PutMapping("/complete/{id}")
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);
54+
return ResponseEntity.ok(completedCase);
55+
}
56+
57+
}

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

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

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

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

backend/src/main/java/com/example/backend/dashboard/dto/ProgressResponse.java renamed to backend/src/main/java/com/example/backend/dashboard/dto/DashboardResponse.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
@Data
1212
@Builder
13-
public class ProgressResponse {
13+
public class DashboardResponse {
1414
private Integer id;
1515
private String police_name;
1616
private String police_rank;
@@ -21,22 +21,18 @@ public class ProgressResponse {
2121

2222
private Integer level;
2323
private CaseCategory category;
24-
private String video;
2524
private CaseState state;
26-
private String memo;
2725

28-
public static ProgressResponse fromEntity(CaseEntity entity) {
29-
return ProgressResponse.builder()
26+
public static DashboardResponse fromEntity(CaseEntity entity) {
27+
return DashboardResponse.builder()
3028
.id(entity.getId())
31-
.police_name(entity.getPolice().getName())
32-
.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)
3331
.address(entity.getCctv().getAddress())
3432
.date(entity.getDate())
3533
.level(entity.getLevel())
3634
.category(entity.getCategory())
37-
.video(entity.getVideo())
3835
.state(entity.getState())
39-
.memo(entity.getMemo())
4036
.build();
4137
}
4238

backend/src/main/java/com/example/backend/dashboard/dto/AlarmRequest.java renamed to backend/src/main/java/com/example/backend/dashboard/dto/StateRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
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;
67

78
@Getter
89
@Setter
9-
public class AlarmRequest {
10+
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/repository/AlarmListRepository.java

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.example.backend.dashboard.repository;
2+
3+
import com.example.backend.common.domain.CaseEntity;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
import java.util.List;
7+
8+
public interface DashboardRepository extends JpaRepository<CaseEntity, Integer> {
9+
List<CaseEntity> findAllByOfficeIdAndStateInOrderById(int officeId, List<CaseEntity.CaseState> states);
10+
11+
}

backend/src/main/java/com/example/backend/dashboard/repository/ProgressRepository.java

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

0 commit comments

Comments
 (0)