Browse Source

卡片更新时间

huangqizheng/feature-20250717200321-优化导出
lijianlin 1 month ago
parent
commit
7c664f8a4f
  1. 2
      src/main/java/com/example/demo/controller/WorkbenchController.java
  2. 3
      src/main/java/com/example/demo/domain/vo/WorkbenchCard.java
  3. 7
      src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java
  4. 22
      src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java

2
src/main/java/com/example/demo/controller/WorkbenchController.java

@ -43,7 +43,7 @@ public class WorkbenchController {
*/
@PostMapping("getCard")
public ResponseEntity<WorkbenchCard> card1(@RequestBody WorkbenchCard workbench){
WorkbenchCard result =workbenchService.getCardCache(workbench.getMarkets());
WorkbenchCard result =workbenchService.getCard(workbench.getMarkets());
return ResponseEntity.ok(result);
}
/*

3
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;
}

7
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;
}

22
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<String> 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<Statistics> statsList) {
// 使用流式处理来找到最新的 updateTime
Optional<Date> latestUpdateTime = statsList.stream()
.map(Statistics::getUpdateTime)
.filter(Objects::nonNull)
.max(Date::compareTo);
return latestUpdateTime.orElse(new Date(0)); // 如果没有找到则返回一个较早的时间点
}
}
Loading…
Cancel
Save