diff --git a/src/main/java/cn/hezhaohui/fund/util/FundUtil.java b/src/main/java/cn/hezhaohui/fund/util/FundUtil.java index 74d9b59..381c361 100644 --- a/src/main/java/cn/hezhaohui/fund/util/FundUtil.java +++ b/src/main/java/cn/hezhaohui/fund/util/FundUtil.java @@ -1,9 +1,18 @@ package cn.hezhaohui.fund.util; +import jakarta.annotation.Resource; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; + @Component public class FundUtil { + @Resource + private SoupUtil soupUtil; + final private static String PREFIX = "https://fund.eastmoney.com/"; final private static String SUFFIX = ".html"; @@ -11,4 +20,20 @@ public class FundUtil { public static String getUrlByFundId(String id) { return PREFIX + id + SUFFIX; } + + public List> getWorthByFundId(String id) { + String url = getUrlByFundId(id); + String content = WebUtil.getContentByUrl(url); + Elements parsedContent = soupUtil.parseContent(content); + Element worth = soupUtil.getWorth(parsedContent); + return soupUtil.parseTable(worth); + } + + public List> getHoldingsByFundId(String id) { + String url = getUrlByFundId(id); + String content = WebUtil.getContentByUrl(url); + Elements parsedContent = soupUtil.parseContent(content); + Element holdings = soupUtil.getHoldings(parsedContent); + return soupUtil.parseTable(holdings); + } } diff --git a/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java b/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java index 28cfe99..5cc7772 100644 --- a/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java +++ b/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java @@ -1,10 +1,19 @@ package cn.hezhaohui.fund.util; +import cn.hutool.core.lang.Assert; +import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.*; +@SpringBootTest class FundUtilTest { + @Resource + private FundUtil fundUtil; @Test void getUrlByFundId() { @@ -12,4 +21,18 @@ class FundUtilTest { System.out.println(url); assertNotNull(url); } + + @Test + void getWorthByFundId() { + List> worth = fundUtil.getWorthByFundId("001068"); + Assert.notNull(worth); + System.out.println(worth); + } + + @Test + void getHoldingsByFundId() { + List> holdings = fundUtil.getHoldingsByFundId("001068"); + Assert.notNull(holdings); + System.out.println(holdings); + } } \ No newline at end of file