From 92a3762ce125816f2807f2cab5fdd9e25149dee8 Mon Sep 17 00:00:00 2001 From: liwq <122639653@qq.com> Date: Fri, 23 Jan 2026 15:16:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=A1=A8=E6=A0=BC=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8F=8A=E6=8A=98=E7=BA=BF=E5=9B=BE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bocai.db | Bin 122880 -> 122880 bytes frontend/src/components/index.vue | 15 +++- .../tem/bocai/controller/ChartController.java | 74 ++++++++++++++++-- 3 files changed, 78 insertions(+), 11 deletions(-) diff --git a/bocai.db b/bocai.db index a1c87a15445faecd4029958663a7af56e1be17c1..2fc98b443b4cae459bcc5f41ca3733227022a30c 100644 GIT binary patch delta 1036 zcmZoTz}|3xeS(w_6AJ?agB%d^12H2IYfaQKk^_qBm38oPH!^UrTQcx$;tS>9$;HU+ z#L>-e$s@b5aW5NJlRqE3xS}FsOXg%9UiEsVoc#36y!gz#w0tE64PGt<1*OasC56nq zlGOCnA|0?ma#3nxNossaW^SsI0*EXwNz5&P$U(H17Ud`@lqD7=XCxMB7@3-C!X%4R z$(ag)wi_cF>0}Iw8Y$-@AE-ue60$Pq~P-#I5P8XCGrxwNMC4$_Bsj(dBHxvgb z0Nq|x0`?0?`Q*2}T#_J91_XKfItE25c)La_Xn=x1lb1_#b2rBiCMJeC6B}pLHwy8y zi<_G>HaeFiCgr5&AB7FEUewABanHawc!*5@pn!yoo1-i7{}ZqX<`%88jZvM`S#r#Th3&(l&?iZBk^} z#=yUAv!KFieqKKhMlJ@{a3&6UR({6G`_^kqvP2jf85>d{_7i_;`Tk{^DgyVx2tizY3%2FpQQ%|ck73|{ mz`vh=9)B%=4A2rU{^|Sm8ReNwSs}Cu3xqai-VPLZ+yDT3Mmenj delta 517 zcmZoTz}|3xeS(w_;|B%?200++2Vy25HkqhnBnuSPOMAu3-N?Ys(apfKi7%9YCl@2P z6Gu0%6367ggpAD!3M<$*cXRw;Vq!Gh*r>|L!N$i1)Xl&!c@s|v6NB7DM=7o*13q?f zMMcII?a6Aq>hd}H>6v-)nR#jX3L2Ry3YmE&sp+XjIts}}sfi`2@ssoTWhN_dibd-v zI zkehAD6alp1J^#cBf|~-^CvY+XLy;ATSvCti_`=V@#Ba{PKZoBOs79NgCz*+pfzj1i zn9 12 ? Math.floor(chartLabels.value.length / 12) : 0, // 根据标签数量动态调整间隔,确保至少显示一些标签 fontSize: 10 } }, @@ -163,8 +163,15 @@ async function fetchChartData() { console.log('获取折线图数据'); const response = await axios.get('http://localhost:8080/api/charts/line1'); console.log('折线图数据响应:', response.data); - if (response.data && response.data.data) { - chartData1.value = response.data.data; + if (response.data) { + // 更新数据 + if (response.data.data) { + chartData1.value = response.data.data; + } + // 更新标签 + if (response.data.labels) { + chartLabels.value = response.data.labels; + } // 确保数据长度与标签长度一致 if (chartData1.value.length !== chartLabels.value.length) { console.warn('数据长度与标签长度不一致,使用默认数据'); diff --git a/src/main/java/com/tem/bocai/controller/ChartController.java b/src/main/java/com/tem/bocai/controller/ChartController.java index 476818c..c908ff4 100644 --- a/src/main/java/com/tem/bocai/controller/ChartController.java +++ b/src/main/java/com/tem/bocai/controller/ChartController.java @@ -1,6 +1,8 @@ package com.tem.bocai.controller; +import com.tem.bocai.entity.CompletedToday; import com.tem.bocai.entity.LotteryResult; +import com.tem.bocai.repository.CompletedTodayRepository; import com.tem.bocai.repository.LotteryResultRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -15,18 +17,76 @@ public class ChartController { @Autowired private LotteryResultRepository lotteryResultRepository; + @Autowired + private CompletedTodayRepository completedTodayRepository; + // 获取折线图1数据 @GetMapping("/charts/line1") public Map getLineChartData1() { Map response = new HashMap<>(); - // 模拟数据 - 实际项目中应该从数据库获取 - List data = Arrays.asList(65, 59, 80, 81, 56, 55, 40); - List labels = Arrays.asList("1月", "2月", "3月", "4月", "5月", "6月", "7月"); - - response.put("data", data); - response.put("labels", labels); - response.put("title", "折线图1数据"); + try { + // 获取今日日期的字符串表示(格式:yyyy-MM-dd) + String today = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()); + System.out.println("今日日期: " + today); + + // 从数据库获取今日的CompletedToday数据 + List completedTodays = completedTodayRepository.findAll(); + System.out.println("获取到" + completedTodays.size() + "条CompletedToday数据"); + + // 过滤出今日的数据 + List todayData = new ArrayList<>(); + for (CompletedToday item : completedTodays) { + if (item.getTime() != null && item.getTime().contains(today)) { + todayData.add(item); + } + } + System.out.println("过滤后获取到" + todayData.size() + "条今日数据"); + + // 按时间排序 + todayData.sort(Comparator.comparing(CompletedToday::getTime)); + + // 提取数据 + List data = new ArrayList<>(); + List labels = new ArrayList<>(); + + for (CompletedToday item : todayData) { + // 使用resultAmount作为折线图数据 + data.add(item.getResultAmount()); + // 使用时间作为标签(只保留时分部分) + String time = item.getTime(); + if (time != null && time.length() >= 16) { + labels.add(time.substring(11, 16)); // 提取时分部分 + } else { + labels.add(time); + } + } + + // 如果没有今日数据,使用默认数据 + if (data.isEmpty()) { + data = Arrays.asList(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + labels = Arrays.asList("00:00", "04:00", "08:00", "12:00", "16:00", "20:00", "23:59"); + } + + response.put("data", data); + response.put("labels", labels); + response.put("title", "今日盈亏数据"); + System.out.println("返回的数据长度: " + data.size()); + System.out.println("返回的标签长度: " + labels.size()); + System.out.println("返回的标签: " + labels); + + } catch (Exception e) { + System.err.println("获取折线图1数据失败: " + e.getMessage()); + e.printStackTrace(); + + // 异常时使用默认数据 + List data = Arrays.asList(65, 59, 80, 81, 56, 55, 40); + List labels = Arrays.asList("1月", "2月", "3月", "4月", "5月", "6月", "7月"); + + response.put("data", data); + response.put("labels", labels); + response.put("title", "折线图1数据"); + } return response; }