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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ bin/

### API Keys & Sensitive Config ###
application-local.properties
application-dev.properties
src/main/resources/application-dev.properties
.env
**/secrets/
**/*secret*
2 changes: 2 additions & 0 deletions src/main/java/org/scoula/news/mapper/NewsMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ public interface NewsMapper {
void updateNews(NewsVo news);

List<NewsVo> findAll();

void deleteByCategory(int i);
}
3 changes: 3 additions & 0 deletions src/main/java/org/scoula/news/service/NewsService.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package org.scoula.news.service;

import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.scoula.news.dto.NewsDto;

public interface NewsService {

List<Integer> crawlAndSaveNews();

List<NewsDto> getAllNews();

void deleteNewsByCategory(int category);
}
18 changes: 11 additions & 7 deletions src/main/java/org/scoula/news/service/NewsServiceImpl.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -106,7 +102,10 @@ public List<Integer> 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);
Expand All @@ -116,10 +115,10 @@ public List<Integer> 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);
}
Expand All @@ -133,4 +132,9 @@ public List<NewsDto> getAllNews() {
n.getSummary()))
.collect(Collectors.toList());
}

@Override
public void deleteNewsByCategory(int category) {
newsMapper.deleteByCategory(category);
}
}
Empty file.
4 changes: 4 additions & 0 deletions src/main/resources/org/scoula/news/mapper/NewsMapper.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,8 @@
WHERE category = #{category}
</update>

<delete id="deleteByCategory">
DELETE FROM news WHERE category = #{category}
</delete>

</mapper>