diff --git a/pom.xml b/pom.xml
index 4aee1d1..01f727f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -160,12 +160,13 @@
2.3.1
-
- org.springframework.boot
- spring-boot-starter-webflux
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.2
+
diff --git a/src/main/java/com/itn/admin/cmn/vo/CmnVO.java b/src/main/java/com/itn/admin/cmn/vo/CmnVO.java
new file mode 100644
index 0000000..eaced8e
--- /dev/null
+++ b/src/main/java/com/itn/admin/cmn/vo/CmnVO.java
@@ -0,0 +1,37 @@
+package com.itn.admin.cmn.vo;
+
+import lombok.*;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class CmnVO {
+
+ private int pageNum = 1; // 현재 페이지 번호 기본값 설정
+ private int pageSize = 10; // 한 페이지에 보여줄 데이터 개수 기본값 설정
+ private int offset; // SQL 쿼리에서 사용할 OFFSET
+ private int limit; // SQL 쿼리에서 사용할 LIMIT
+
+ private int totalCount; // 총 데이터 수
+ private int totalPageCount; // 총 페이지 수
+ private int startPage; // 페이지네이션의 시작 페이지 번호
+ private int endPage; // 페이지네이션의 끝 페이지 번호
+
+ // 페이징을 위한 offset과 limit을 계산하는 메서드
+ public void calculatePaging(int totalRecordCount) {
+ this.totalCount = totalRecordCount;
+ this.offset = (pageNum - 1) * pageSize;
+ this.limit = pageSize;
+
+ // 총 페이지 수 계산
+ this.totalPageCount = (int) Math.ceil((double) totalRecordCount / pageSize);
+
+ // 페이지네이션의 시작과 끝 페이지 계산
+ int pageBlockSize = 10; // 한 블록에 표시할 페이지 수
+ this.startPage = ((pageNum - 1) / pageBlockSize) * pageBlockSize + 1;
+ this.endPage = Math.min(startPage + pageBlockSize - 1, totalPageCount);
+ }
+
+
+}
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/mapper/SpamMapper.java b/src/main/java/com/itn/admin/itn/mjon/spam/mapper/SpamMapper.java
index d8d44eb..f520b95 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/mapper/SpamMapper.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/mapper/SpamMapper.java
@@ -16,4 +16,8 @@ public interface SpamMapper {
List getListWhereKeywordsIsNull(SpamVO spamVO);
void update(SpamVO spamVO);
+
+ List getSpamList(SpamVO spamVO);
+
+ int getTotalRecordCount();
}
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/mapper/domain/SpamVO.java b/src/main/java/com/itn/admin/itn/mjon/spam/mapper/domain/SpamVO.java
index 956ac4d..00537ae 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/mapper/domain/SpamVO.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/mapper/domain/SpamVO.java
@@ -1,9 +1,11 @@
package com.itn.admin.itn.mjon.spam.mapper.domain;
+import com.itn.admin.cmn.vo.CmnVO;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
+import java.util.List;
/**
* packageName : com.itn.admin.itn.mjon.spam.mapper.domain
@@ -23,7 +25,7 @@ import java.time.LocalDateTime;
@Getter
@Setter
@ToString
-public class SpamVO implements Serializable {
+public class SpamVO extends CmnVO implements Serializable {
private static final long serialVersionUID = 1L;
@@ -40,4 +42,7 @@ public class SpamVO implements Serializable {
private String lastUpdusrId; // 최종수정자ID
private LocalDateTime lastUpdtPnttm; // 최종수정일자
+
+ // spam_keywords TB 외 필드들
+ private List keywordList; // 키워드 리스트
}
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/service/SpamService.java b/src/main/java/com/itn/admin/itn/mjon/spam/service/SpamService.java
index 35508c8..ab76f90 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/service/SpamService.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/service/SpamService.java
@@ -11,4 +11,6 @@ public interface SpamService {
Map getList(SpamVO spamVO);
void analyze();
+
+ Map getSpamList(SpamVO spamVO);
}
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/service/impl/SpamServiceImpl.java b/src/main/java/com/itn/admin/itn/mjon/spam/service/impl/SpamServiceImpl.java
index 433cfb9..fbcacca 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/service/impl/SpamServiceImpl.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/service/impl/SpamServiceImpl.java
@@ -9,13 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
-import org.springframework.web.reactive.function.client.WebClient;
-import java.time.Duration;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Slf4j
@Service
@@ -57,7 +52,7 @@ public class SpamServiceImpl implements SpamService {
// for (SpamVO spamVO : spamList) {
- // API 호출 및 데이터 수신
+ // API 호출 및 데이터 수신
List spamList = spamMapper.getListWhereKeywordsIsNull(new SpamVO());
@@ -111,4 +106,27 @@ public class SpamServiceImpl implements SpamService {
}
}
}
+
+ @Override
+ public Map getSpamList(SpamVO spamVO) {
+ int totalRecordCount = spamMapper.getTotalRecordCount();
+ spamVO.calculatePaging(totalRecordCount);
+
+ List spamList = spamMapper.getSpamList(spamVO);
+
+
+ // 키워드를 버튼용 배열로 변환
+ for (SpamVO spam : spamList) {
+ if (spam.getKeywords() != null) {
+ spam.setKeywordList(Arrays.asList(spam.getKeywords().split(", ")));
+ }
+ }
+
+ Map resultMap = new HashMap<>();
+ resultMap.put("spamList", spamList);
+ resultMap.put("totalRecordCount", totalRecordCount);
+ resultMap.put("totalPageCount", spamVO.getTotalPageCount());
+
+ return resultMap;
+ }
}
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/web/RestSpamController.java b/src/main/java/com/itn/admin/itn/mjon/spam/web/RestSpamController.java
index 5fb60e1..9247380 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/web/RestSpamController.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/web/RestSpamController.java
@@ -1,23 +1,11 @@
package com.itn.admin.itn.mjon.spam.web;
-import com.itn.admin.itn.mjon.spam.mapper.domain.SpamVO;
import com.itn.admin.itn.mjon.spam.service.SpamService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.reactive.function.client.WebClient;
-import reactor.core.publisher.Mono;
-
-import java.lang.module.ModuleDescriptor;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
@Slf4j
@RestController
diff --git a/src/main/java/com/itn/admin/itn/mjon/spam/web/SpamController.java b/src/main/java/com/itn/admin/itn/mjon/spam/web/SpamController.java
index 64e3683..769787f 100644
--- a/src/main/java/com/itn/admin/itn/mjon/spam/web/SpamController.java
+++ b/src/main/java/com/itn/admin/itn/mjon/spam/web/SpamController.java
@@ -9,6 +9,8 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
@Controller
@@ -23,13 +25,11 @@ public class SpamController {
@GetMapping(value = "/mjon/spam/select")
public String select(@ModelAttribute("spamVO") SpamVO spamVO, Model model) {
-//
-//
-// Map resultMap = spamService.getList(spamVO);
-// model.addAttribute("spamList", resultMap.get("spamList"));
-//
-// model.addAttribute("list", resultMap.get("resultList"));
+ Map map = spamService.getSpamList(spamVO);
+
+ model.addAttribute("spamList", map.get("spamList"));
+ model.addAttribute("pagingVO", spamVO);
return "mjon/spam/select";
}
diff --git a/src/main/resources/mapper/itn/mjon/spam/SpamMapper.xml b/src/main/resources/mapper/itn/mjon/spam/SpamMapper.xml
index d3f5ae5..e06ebad 100644
--- a/src/main/resources/mapper/itn/mjon/spam/SpamMapper.xml
+++ b/src/main/resources/mapper/itn/mjon/spam/SpamMapper.xml
@@ -4,6 +4,33 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
+
+
+
+