From 011b94bf97a02a09f3582f30a1ad04d4c08677d0 Mon Sep 17 00:00:00 2001 From: winA <92146550+a40418a@users.noreply.github.com> Date: Tue, 19 Aug 2025 10:17:37 +0900 Subject: [PATCH 1/2] Delete src/main/java/org/scoula/product/service/ProductServiceImpl.java --- src/main/java/org/scoula/product/service/ProductServiceImpl.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/java/org/scoula/product/service/ProductServiceImpl.java diff --git a/src/main/java/org/scoula/product/service/ProductServiceImpl.java b/src/main/java/org/scoula/product/service/ProductServiceImpl.java deleted file mode 100644 index e69de29..0000000 From eea581d728c15c994ae3e32d53cfb26a5c5d6607 Mon Sep 17 00:00:00 2001 From: winA <92146550+a40418a@users.noreply.github.com> Date: Tue, 19 Aug 2025 22:28:38 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- .../org/scoula/news/mapper/NewsMapper.java | 2 ++ .../org/scoula/news/service/NewsService.java | 3 +++ .../scoula/news/service/NewsServiceImpl.java | 18 +++++++++++------- .../org/scoula/news/mapper/NewsMapper.xml | 4 ++++ 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 0615245..38cead0 100644 --- a/.gitignore +++ b/.gitignore @@ -38,7 +38,7 @@ bin/ ### API Keys & Sensitive Config ### application-local.properties -application-dev.properties +src/main/resources/application-dev.properties .env **/secrets/ **/*secret* diff --git a/src/main/java/org/scoula/news/mapper/NewsMapper.java b/src/main/java/org/scoula/news/mapper/NewsMapper.java index 24579c9..2fbc36c 100644 --- a/src/main/java/org/scoula/news/mapper/NewsMapper.java +++ b/src/main/java/org/scoula/news/mapper/NewsMapper.java @@ -16,4 +16,6 @@ public interface NewsMapper { void updateNews(NewsVo news); List findAll(); + + void deleteByCategory(int i); } \ No newline at end of file diff --git a/src/main/java/org/scoula/news/service/NewsService.java b/src/main/java/org/scoula/news/service/NewsService.java index 39be9af..0f74603 100644 --- a/src/main/java/org/scoula/news/service/NewsService.java +++ b/src/main/java/org/scoula/news/service/NewsService.java @@ -1,6 +1,7 @@ package org.scoula.news.service; import java.util.List; +import org.apache.ibatis.annotations.Delete; import org.scoula.news.dto.NewsDto; public interface NewsService { @@ -8,4 +9,6 @@ public interface NewsService { List crawlAndSaveNews(); List getAllNews(); + + void deleteNewsByCategory(int category); } \ No newline at end of file diff --git a/src/main/java/org/scoula/news/service/NewsServiceImpl.java b/src/main/java/org/scoula/news/service/NewsServiceImpl.java index 7ea658f..9173946 100644 --- a/src/main/java/org/scoula/news/service/NewsServiceImpl.java +++ b/src/main/java/org/scoula/news/service/NewsServiceImpl.java @@ -1,12 +1,8 @@ package org.scoula.news.service; import java.io.IOException; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.stream.Collectors; import lombok.extern.log4j.Log4j2; @@ -106,7 +102,10 @@ public List crawlAndSaveNews() { } } - // 카테고리 0: 최신 기사 5건 저장(중복은 upsert로 갱신) + // 1. 기존 category 0번 뉴스 전체 삭제 + newsMapper.deleteByCategory(0); + + // 2. 최신 기사 5건 저장 int maxCount = Math.min(newsList.size(), 5); for (int i = 0; i < maxCount; i++) { Element news = newsList.get(i); @@ -116,10 +115,10 @@ public List crawlAndSaveNews() { String date = news.select(".info .mdate").text(); NewsVo newNews = new NewsVo(null, 0, title, link, date, summary, null); - newsMapper.upsertNews(newNews); // ← 핵심: category+link 기반 UPSERT + newsMapper.insertNews(newNews); // upsert 대신 insert를 사용 } updatedCategories.add(0); - + } catch (IOException e) { log.error("IOException occurred while crawling and saving news", e); } @@ -133,4 +132,9 @@ public List getAllNews() { n.getSummary())) .collect(Collectors.toList()); } + + @Override + public void deleteNewsByCategory(int category) { + newsMapper.deleteByCategory(category); + } } \ No newline at end of file diff --git a/src/main/resources/org/scoula/news/mapper/NewsMapper.xml b/src/main/resources/org/scoula/news/mapper/NewsMapper.xml index c511752..3f5f4d6 100644 --- a/src/main/resources/org/scoula/news/mapper/NewsMapper.xml +++ b/src/main/resources/org/scoula/news/mapper/NewsMapper.xml @@ -45,4 +45,8 @@ WHERE category = #{category} + + DELETE FROM news WHERE category = #{category} + + \ No newline at end of file