Skip to content
Open
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
Binary file modified build/tmp/compileJava/previous-compilation-data.bin
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@

public interface FraudAccountRepository extends JpaRepository<FraudAccount, Long> {
List<FraudAccount> findTop5ByOrderByViewDesc();
List<FraudAccount> findTop5ByOrderByReportDesc();
}
20 changes: 10 additions & 10 deletions src/main/java/com/example/SeaReaUrl_back/FraudController.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@ public class FraudController {

@GetMapping("/account/view")
public Top5Response getTop5AccountView(){
return fraudService.getTop5AccountView();
// return fraudService.getTop5AccountView();
return fraudService.getTop5AccountAndView();
}
@GetMapping("/url/view")
public Top5Response getTop5UrlView(){
return fraudService.getTop5AccountAndView();
return fraudService.getTop5UrlView();
}
@GetMapping("/account/report")
public Top5Response getTop5AccountReports(){
return fraudService.getTop5AccountReports();
}
@GetMapping("/url/report")
public Top5Response getTop5UrlReports(){
return fraudService.getTop5UrlReports();
}
// @GetMapping("/account/report")
// public Top5Response getTop5AccountReports(){
// return fraudService.getTop5AccountReports();
// }
// @GetMapping("/url/report")
// public Top5Response getTop5UrlReports(){
// return fraudService.getTop5UrlReports();
// }
//
// @PostMapping("/report/account")
// public StringResponse reportAccount(){
Expand Down
90 changes: 59 additions & 31 deletions src/main/java/com/example/SeaReaUrl_back/FraudService.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,61 +16,89 @@ public class FraudService {
private final FraudAccountRepository fraudAccountRepository;
private final FraudUrlRepository fraudUrlRepository;


// @Transactional
// public Top5Response getTop5AccountView() {
// public List<Top5AccountResponse> getTop5AccountView() {
// List<FraudAccount> top5Accounts = fraudAccountRepository.findTop5ByOrderByViewDesc();
// List<Top5AccountResponse> top5AccountResponses = top5Accounts.stream()
// return top5Accounts.stream()
// .map(Top5AccountResponse::new)
// .collect(Collectors.toList());
// return new Top5Response(top5AccountResponses);
// }
//
// @Transactional
// public Top5Response getTop5UrlView(){
// List<FraudUrl> top5Urls = fraudUrlRepository.findTop5ByOrderByViewDesc();
// List<Top5UrlResponse> top5UrlResponses = top5Urls.stream()
// .map(Top5UrlResponse::new)
// .collect(Collectors.toList());
// return new Top5Response(top5UrlResponses);
// }

@Transactional
public Top5Response getTop5AccountAndView() {
public Top5Response getTop5AccountView() {
// FraudAccount 테이블에서 조회
List<FraudAccount> top5Accounts = fraudAccountRepository.findTop5ByOrderByViewDesc();
List<Top5AccountResponse> top5AccountResponses = top5Accounts.stream()
.map(Top5AccountResponse::new)
.collect(Collectors.toList());

// 빈 리스트로 초기화된 Top5UrlResponse 리스트 생성
List<Top5UrlResponse> top5UrlResponses = new ArrayList<>();

// 응답 객체에 결과를 담아 반환
return new Top5Response(top5AccountResponses, top5UrlResponses);
}

@Transactional
public Top5Response getTop5UrlView() {
// 빈 리스트로 초기화된 Top5AccountResponse 리스트 생성
List<Top5AccountResponse> top5AccountResponses = new ArrayList<>();

// FraudUrl 테이블에서 조회
List<FraudUrl> top5Urls = fraudUrlRepository.findTop5ByOrderByViewDesc();
List<Top5UrlResponse> top5UrlResponses = top5Urls.stream()
.map(Top5UrlResponse::new)
.collect(Collectors.toList());

// 응답 객체에 결과를 담아 반환
return new Top5Response(top5AccountResponses, top5UrlResponses);
}

// private Top5Response convertToTop5Response(List<FraudAccount> top5Accounts) {
// List<Top5Response> responses = top5Accounts.stream()
// .map(account -> new Top5Response(account.getId(), account.getUrl(), account.getIsFraud(), account.getView(), account.getReport()))

// @Transactional
// public Top5Response getTop5AccountAndView() {
// List<FraudAccount> top5Accounts = fraudAccountRepository.findTop5ByOrderByViewDesc();
// List<Top5AccountResponse> top5AccountResponses = top5Accounts.stream()
// .map(Top5AccountResponse::new)
// .collect(Collectors.toList());
//
// List<FraudUrl> top5Urls = fraudUrlRepository.findTop5ByOrderByViewDesc();
// List<Top5UrlResponse> top5UrlResponses = top5Urls.stream()
// .map(Top5UrlResponse::new)
// .collect(Collectors.toList());
//
// // 상위 5개의 계정을 담은 단일 Top5Response를 반환하려면
// return new Top5Response(responses);
// return new Top5Response(top5AccountResponses, top5UrlResponses);
// }

// @Transactional
// public Top5Response getTop5AccountView(){
// return new Top5Response();
// }

// @Transactional
// public Top5Response getTop5AccountReports(){
// return new Top5Response();
// }
// @Transactional
// public Top5Response getTop5UrlReports(){
// return new Top5Response();
// }
@Transactional
public Top5Response getTop5AccountReports(){
// FraudAccount 테이블에서 조회
List<FraudAccount> top5Accounts = fraudAccountRepository.findTop5ByOrderByReportDesc();
List<Top5AccountResponse> top5AccountResponses = top5Accounts.stream()
.map(Top5AccountResponse::new)
.collect(Collectors.toList());

// 빈 리스트로 초기화된 Top5UrlResponse 리스트 생성
List<Top5UrlResponse> top5UrlResponses = new ArrayList<>();

// 응답 객체에 결과를 담아 반환
return new Top5Response(top5AccountResponses, top5UrlResponses);
}
@Transactional
public Top5Response getTop5UrlReports(){
// 빈 리스트로 초기화된 Top5AccountResponse 리스트 생성
List<Top5AccountResponse> top5AccountResponses = new ArrayList<>();

// FraudUrl 테이블에서 조회
List<FraudUrl> top5Urls = fraudUrlRepository.findTop5ByOrderByReportDesc();
List<Top5UrlResponse> top5UrlResponses = top5Urls.stream()
.map(Top5UrlResponse::new)
.collect(Collectors.toList());

// 응답 객체에 결과를 담아 반환
return new Top5Response(top5AccountResponses, top5UrlResponses);
}
//
// @Transactional
// public StringResponse reportAccount(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@

public interface FraudUrlRepository extends JpaRepository<FraudUrl, Long> {
List<FraudUrl> findTop5ByOrderByViewDesc();
List<FraudUrl> findTop5ByOrderByReportDesc();
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
@Getter
@AllArgsConstructor
public class Top5AccountResponse {
private Long id;
private Long accountId;
private String accountName;
private Boolean isFraud;
private Long view;
private Long report;

public Top5AccountResponse(FraudAccount account) {
this.id = account.getId();
this.accountId = account.getId();
this.accountName = account.getAccountName();
this.isFraud = account.getIsFraud();
this.view = account.getView();
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/example/SeaReaUrl_back/Top5Response.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -11,6 +12,7 @@

@Getter
@Builder
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Top5Response {

private List<Top5AccountResponse> top5Accounts;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/example/SeaReaUrl_back/Top5UrlResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
@Getter
@AllArgsConstructor
public class Top5UrlResponse {
private Long id;
private Long urlId;
private String url;
private Boolean isFraud;
private Long view;
private Long report;

public Top5UrlResponse(FraudUrl url) {
this.id = url.getId();
this.urlId = url.getId();
this.url = url.getUrl();
this.isFraud = url.getIsFraud();
this.view = url.getView();
Expand Down