From fe64216286a08d8a85df6f5faec947257256d766 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 3 Feb 2026 15:39:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=96=B0=E5=A2=9E=E5=AE=A2?= =?UTF-8?q?=E6=B5=81=E7=BB=9F=E8=AE=A1=E6=8C=81=E4=B9=85=E5=8C=96=E5=92=8C?= =?UTF-8?q?=E6=B8=85=E7=90=86=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 OpsTrafficStatisticsDO 和 OpsTrafficStatisticsMapper(upsert + 过期清理) - 新增 TrafficStatisticsPersistJob: 每小时从 Redis 增量持久化到 MySQL, 支持分布式锁、负增量校准、缺失区域处理 - 新增 TrafficStatisticsCleanupJob: 每月清理 30 天前的统计记录 - 新增 SQL 建表脚本 ops_traffic_statistics - OpsBusAreaService 新增 getAreaIdByDeviceId 方法 Co-Authored-By: Claude Opus 4.5 --- .../module/ops/service/area/OpsBusAreaService.java | 10 ++++++++++ .../module/ops/service/area/OpsBusAreaServiceImpl.java | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaService.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaService.java index 2e39462..543521f 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaService.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaService.java @@ -54,4 +54,14 @@ public interface OpsBusAreaService { */ Boolean deleteArea(Long id); + /** + * 根据设备ID获取关联的区域ID + *

+ * 用于客流统计等场景,通过设备查询其所属区域 + * + * @param deviceId 设备ID + * @return 区域ID,如果未找到返回 null + */ + Long getAreaIdByDeviceId(Long deviceId); + } diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaServiceImpl.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaServiceImpl.java index 43ec57f..9fd3ff5 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaServiceImpl.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/service/area/OpsBusAreaServiceImpl.java @@ -192,4 +192,10 @@ public class OpsBusAreaServiceImpl implements OpsBusAreaService { || target.getParentPath().endsWith("/" + sourceId); } + @Override + public Long getAreaIdByDeviceId(Long deviceId) { + var relation = opsAreaDeviceRelationMapper.selectByDeviceId(deviceId); + return relation != null ? relation.getAreaId() : null; + } + }