diff --git a/src/main/java/com/example/demo/controller/WorkbenchController.java b/src/main/java/com/example/demo/controller/WorkbenchController.java index 429a95f..a3f4b03 100644 --- a/src/main/java/com/example/demo/controller/WorkbenchController.java +++ b/src/main/java/com/example/demo/controller/WorkbenchController.java @@ -43,7 +43,7 @@ public class WorkbenchController { */ @PostMapping("getCard") public ResponseEntity card1(@RequestBody WorkbenchCard workbench){ - WorkbenchCard result =workbenchService.getCardCache(workbench.getMarkets()); + WorkbenchCard result =workbenchService.getCard(workbench.getMarkets()); return ResponseEntity.ok(result); } /* diff --git a/src/main/java/com/example/demo/domain/vo/WorkbenchCard.java b/src/main/java/com/example/demo/domain/vo/WorkbenchCard.java index 3abc2cd..025490d 100644 --- a/src/main/java/com/example/demo/domain/vo/WorkbenchCard.java +++ b/src/main/java/com/example/demo/domain/vo/WorkbenchCard.java @@ -32,6 +32,9 @@ public class WorkbenchCard implements Serializable { private Date endDate; // 结束时间 private Integer sumWow; // 总周同比(%) private Integer sumDaily; // 总日环比(%) + //更新时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date updateTime; } diff --git a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java index fb1ea4b..1554bdc 100644 --- a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java +++ b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java @@ -38,7 +38,7 @@ public class WorkbenchMarketCard implements Serializable { private Integer yearlyRecharge; // 全年累计充值金币数 private Integer yearlyMoney; // 全年累计金额 - // 卡片三:当日消费/退款/消耗相关 + // 卡片三:昨日消费/退款/消耗相关 private Integer consumePermanent; // 昨日新增消费(永久) private Integer consumeFreeJune; // 昨日新增消费(六月免费) private Integer consumeFreeDecember; // 昨日新增消费(十二月免费) @@ -54,6 +54,7 @@ public class WorkbenchMarketCard implements Serializable { // 卡片四:人头数相关 private Integer rechargeNum; // 当日充值人数 + private Integer ydayRechargeNum; // 当日充值人数 private Integer firstRecharge; // 当日首充人数 private Integer wow; // 周同比(%) private Integer daily; // 日环比(%) @@ -61,8 +62,8 @@ public class WorkbenchMarketCard implements Serializable { private Integer sumDaily; // 总日环比(%) private Integer yearlyRechargeNum; // 全年累计充值人头数 -/* //更新时间 + //更新时间 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") - private Date updateTime;*/ + private Date updateTime; } diff --git a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java index f16e12e..89af8d7 100644 --- a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java @@ -92,8 +92,9 @@ public class WorkbenchServiceImpl implements WorkbenchService { .collect(Collectors.toList()); Integer sumWow= calculateAllWeekOverWeek(date); Integer sumDaily=calculateAllDayOverDay(date); + Date updateTime = findLatestUpdateTime(currentStatsList); - return new WorkbenchCard(marketCards, new ArrayList<>(), markets, new Date(), new Date(),sumWow,sumDaily); + return new WorkbenchCard(marketCards, new ArrayList<>(), markets, new Date(), new Date(),sumWow,sumDaily,updateTime); } @Override @@ -163,14 +164,15 @@ public class WorkbenchServiceImpl implements WorkbenchService { card.setYearlyReduce(card.getYearlyConsume() - card.getYearlyRefund());//年累计消耗 // 卡片四:人头数相关 card.setRechargeNum(currentStatistics.getRechargeNum()); + card.setYdayRechargeNum(ydayStatistics.getRechargeNum()); card.setFirstRecharge(currentStatistics.getFirstRecharge()); card.setYearlyRechargeNum(currentStatistics.getYearlyRechargeNum()); // 周环比、日同比 card.setWow(calculateWeekOverWeek(market, currentDate)); card.setDaily(calculateDayOverDay(market, currentDate)); - /* //更新时间 - card.setUpdateTime(currentStatistics.getUpdateTime());*/ + //更新时间 + card.setUpdateTime(currentStatistics.getUpdateTime()); } return card; } @@ -178,7 +180,7 @@ public class WorkbenchServiceImpl implements WorkbenchService { @Override public WorkbenchCard getGraph( Date startDate, Date endDate, List markets) { if (markets == null || markets.isEmpty()) { - return new WorkbenchCard(new ArrayList<>(), new ArrayList<>(), markets, startDate, endDate,0,0); + return new WorkbenchCard(new ArrayList<>(), new ArrayList<>(), markets, startDate, endDate,0,0,new Date()); } // 单次批量查询 @@ -216,7 +218,7 @@ public class WorkbenchServiceImpl implements WorkbenchService { marketGraphs.add(graph); } - return new WorkbenchCard(new ArrayList<>(), marketGraphs, markets, startDate, endDate,0,0); + return new WorkbenchCard(new ArrayList<>(), marketGraphs, markets, startDate, endDate,0,0,new Date()); } /* @@ -365,6 +367,16 @@ public class WorkbenchServiceImpl implements WorkbenchService { .atStartOfDay(ZoneId.systemDefault()) .toInstant()); } + //获取最近的更新时间 + private Date findLatestUpdateTime(List statsList) { + // 使用流式处理来找到最新的 updateTime + Optional latestUpdateTime = statsList.stream() + .map(Statistics::getUpdateTime) + .filter(Objects::nonNull) + .max(Date::compareTo); + + return latestUpdateTime.orElse(new Date(0)); // 如果没有找到,则返回一个较早的时间点 + } }