Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.ai.lawyer.domain.home.controller;

import com.ai.lawyer.domain.home.dto.FullData;
import com.ai.lawyer.domain.home.service.HomeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/api/home")
@RequiredArgsConstructor
@Tag(name = "홈", description = "홈 화면 API")
public class HomeController {

private final HomeService homeService;

@Operation(summary = "데이터 수", description = "판례 법령 채팅 투표 수 조회")
@PostMapping("/data-count")
public ResponseEntity<FullData> getDataCount() {
return ResponseEntity.ok(homeService.getDataCount());
}

}
26 changes: 26 additions & 0 deletions backend/src/main/java/com/ai/lawyer/domain/home/dto/FullData.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.ai.lawyer.domain.home.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "판례수 법령수 채팅수 투표수 DTO")
public class FullData {

@Schema(description = "판례 수", example = "1000")
private Long precedentCount;

@Schema(description = "법령 수", example = "500")
private Long lawCount;

@Schema(description = "채팅 수", example = "2000")
private Long chatCount;

@Schema(description = "투표 수", example = "300")
private Long voteCount;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.ai.lawyer.domain.home.service;

import com.ai.lawyer.domain.chatbot.repository.ChatRepository;
import com.ai.lawyer.domain.home.dto.FullData;
import com.ai.lawyer.domain.law.repository.LawRepository;
import com.ai.lawyer.domain.poll.repository.PollRepository;
import com.ai.lawyer.domain.precedent.repository.PrecedentRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Slf4j
@Service
@RequiredArgsConstructor
public class HomeService {

private final PrecedentRepository precedentRepository;
private final LawRepository lawRepository;
private final ChatRepository chatRepository;
private final PollRepository pollRepository;


public FullData getDataCount() {

Long precedentCount = precedentRepository.count();
Long lawCount = lawRepository.count();
Long chatCount = chatRepository.count();
Long voteCount = pollRepository.count();

return FullData.builder()
.precedentCount(precedentCount)
.lawCount(lawCount)
.chatCount(chatCount)
.voteCount(voteCount)
.build();

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public class SecurityConfig {
"/api/law/**", // 법령 (공개)
"/api/law-word/**", // 법률 용어 (공개)
"/api/chat/**", // 챗봇 (공개)
"/api/home/**", // 홈 (공개)
"/h2-console/**", // H2 콘솔 (개발용)
"/actuator/health", "/actuator/health/**", "/actuator/info", // Spring Actuator
"/api/actuator/health", "/api/actuator/health/**", "/api/actuator/info"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,24 @@ public GroupedOpenApi allApi() {
.build();
}

@Bean GroupedOpenApi chatApi() {
@Bean
GroupedOpenApi chatApi() {
return GroupedOpenApi.builder()
.group("챗봇과 관련된 API")
.pathsToMatch("/api/chat/**")
.packagesToScan("com.ai.lawyer.domain.chatbot.controller")
.build();
}

@Bean
GroupedOpenApi homeApi() {
return GroupedOpenApi.builder()
.group("Home API")
.pathsToMatch("/api/home/**")
.packagesToScan("com.ai.lawyer.domain.home.controller")
.build();
}

@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
Expand Down