| | |
| | | } |
| | | // 3. 全局注册用户数 |
| | | writeGlobal(); |
| | | clearLargeScreenCache(); |
| | | log.info("大屏预聚合表全量重建完成, 耗时 {}ms", System.currentTimeMillis() - start); |
| | | } |
| | | |
| | |
| | | writeDaySlice(LocalDate.now()); |
| | | writeUserSitePairs(LocalDate.now(), LocalDate.now().plusDays(1)); |
| | | writeGlobal(); |
| | | clearLargeScreenCache(); |
| | | log.info("大屏预聚合表刷新完成, 耗时 {}ms", System.currentTimeMillis() - start); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 写入一个月度切片聚合(M 行) |
| | | * 金额/订单数取 monthSliceAgg(已结束+已支付口径); |
| | | * 订单数取未删除、状态1-5口径;金额取已结束且已支付口径。 |
| | | * 充电用户数取 monthSliceUserAgg(工作台口径: 该站点所有订单的去重用户, 不区分状态/删除标记) |
| | | */ |
| | | private void writeMonthSlice(LocalDate monthStart, LocalDate monthEnd) { |
| | |
| | | return LARGE_SCREEN_CACHE_PREFIX + endpoint + ":" + idPart; |
| | | } |
| | | |
| | | private void clearLargeScreenCache() { |
| | | Collection<String> keys = redisService.keys(LARGE_SCREEN_CACHE_PREFIX + "*"); |
| | | if (keys != null && !keys.isEmpty()) { |
| | | redisService.deleteObject(keys); |
| | | } |
| | | } |
| | | |
| | | private BigDecimal decimalValue(Map<String, Object> values, String key) { |
| | | if (values == null) { |
| | | return BigDecimal.ZERO; |