Showing
1 changed file
with
183 additions
and
266 deletions
@@ -59,13 +59,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -59,13 +59,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
59 | private final YtUserService ytUserService; | 59 | private final YtUserService ytUserService; |
60 | 60 | ||
61 | @Override | 61 | @Override |
62 | - public HomePageLeftTopDTO getHomePageLeftTopInfo( | ||
63 | - boolean isPtSysAdmin, | ||
64 | - boolean isPtAdmin, | ||
65 | - boolean isTenantAdmin, | ||
66 | - String tenantId, | ||
67 | - String currentUserId) | ||
68 | - throws ExecutionException, InterruptedException { | 62 | + public HomePageLeftTopDTO getHomePageLeftTopInfo(boolean isPtSysAdmin, boolean isPtAdmin, boolean isTenantAdmin, String tenantId, String currentUserId) throws ExecutionException, InterruptedException { |
69 | // 如果当前用户是超级管理员或平台管理员,查询所有的设备数量、租户数量、客户数量 | 63 | // 如果当前用户是超级管理员或平台管理员,查询所有的设备数量、租户数量、客户数量 |
70 | // 如果当前用户是租户管理员,查询租户下的所有设备、告警、消息量 | 64 | // 如果当前用户是租户管理员,查询租户下的所有设备、告警、消息量 |
71 | // 如果当前用户是客户,查询客户可以查看的设备、告警、消息量 | 65 | // 如果当前用户是客户,查询客户可以查看的设备、告警、消息量 |
@@ -90,18 +84,13 @@ public class HomePageServiceImpl implements HomePageService { | @@ -90,18 +84,13 @@ public class HomePageServiceImpl implements HomePageService { | ||
90 | if (StringUtils.isNotEmpty(customerId)) { | 84 | if (StringUtils.isNotEmpty(customerId)) { |
91 | // 查询customerId | 85 | // 查询customerId |
92 | queryMap.put("customerId", customerId); | 86 | queryMap.put("customerId", customerId); |
93 | - long startTs = | ||
94 | - LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN) | ||
95 | - .toInstant(ZoneOffset.of("+8")) | ||
96 | - .toEpochMilli(); | ||
97 | - List<BaseHomePageTop> baseHomePageTopList = | ||
98 | - deviceMapper.findDeviceMessageInfo(startTs, customerId); | 87 | + long startTs = startTime.toInstant(ZoneOffset.of("+8")).toEpochMilli(); |
88 | + List<BaseHomePageTop> baseHomePageTopList = deviceMapper.findDeviceMessageInfo(startTs, customerId); | ||
99 | if (baseHomePageTopList.size() > FastIotConstants.MagicNumber.ZERO) { | 89 | if (baseHomePageTopList.size() > FastIotConstants.MagicNumber.ZERO) { |
100 | messageInfo.setMessageCount(baseHomePageTopList.get(0).getSumCount()); | 90 | messageInfo.setMessageCount(baseHomePageTopList.get(0).getSumCount()); |
101 | messageInfo.setTodayMessageAdd(baseHomePageTopList.get(0).getTodayAdd()); | 91 | messageInfo.setTodayMessageAdd(baseHomePageTopList.get(0).getTodayAdd()); |
102 | } | 92 | } |
103 | - List<BaseHomePageTop> alarmList = | ||
104 | - deviceMapper.findDeviceAlarmInfoByCustomer(startTs, customerId); | 93 | + List<BaseHomePageTop> alarmList = deviceMapper.findDeviceAlarmInfoByCustomer(startTs, customerId); |
105 | if (alarmList.size() > FastIotConstants.MagicNumber.ZERO) { | 94 | if (alarmList.size() > FastIotConstants.MagicNumber.ZERO) { |
106 | alarm.setSumCount(alarmList.get(0).getSumCount()); | 95 | alarm.setSumCount(alarmList.get(0).getSumCount()); |
107 | alarm.setTodayAdd(alarmList.get(0).getTodayAdd()); | 96 | alarm.setTodayAdd(alarmList.get(0).getTodayAdd()); |
@@ -125,13 +114,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -125,13 +114,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
125 | } | 114 | } |
126 | 115 | ||
127 | @Override | 116 | @Override |
128 | - public DeferredResult<List<TsValue>> getHomePageLeftBottomInfo( | ||
129 | - String customerId, | ||
130 | - long startTs, | ||
131 | - long endTs, | ||
132 | - long interval, | ||
133 | - TrendType trend, | ||
134 | - boolean isCustomer) { | 117 | + public DeferredResult<List<TsValue>> getHomePageLeftBottomInfo(String customerId, long startTs, long endTs, long interval, TrendType trend, boolean isCustomer) { |
135 | List<CompletableFuture<TsValue>> futures = new ArrayList<>(); | 118 | List<CompletableFuture<TsValue>> futures = new ArrayList<>(); |
136 | interval = interval < 7200000 ? 7200000 : interval; | 119 | interval = interval < 7200000 ? 7200000 : interval; |
137 | long stepTs = startTs; | 120 | long stepTs = startTs; |
@@ -139,22 +122,16 @@ public class HomePageServiceImpl implements HomePageService { | @@ -139,22 +122,16 @@ public class HomePageServiceImpl implements HomePageService { | ||
139 | long tempStartTs = stepTs; | 122 | long tempStartTs = stepTs; |
140 | long tempEndTs = stepTs + interval; | 123 | long tempEndTs = stepTs + interval; |
141 | long ts = tempStartTs + (tempEndTs - tempStartTs) / 2; | 124 | long ts = tempStartTs + (tempEndTs - tempStartTs) / 2; |
142 | - LocalDateTime startTime = | ||
143 | - LocalDateTime.ofEpochSecond(tempStartTs / 1000, 0, ZoneOffset.ofHours(8)); | ||
144 | - LocalDateTime endTime = | ||
145 | - LocalDateTime.ofEpochSecond(tempEndTs / 1000, 0, ZoneOffset.ofHours(8)); | 125 | + LocalDateTime startTime = LocalDateTime.ofEpochSecond(tempStartTs / 1000, 0, ZoneOffset.ofHours(8)); |
126 | + LocalDateTime endTime = LocalDateTime.ofEpochSecond(tempEndTs / 1000, 0, ZoneOffset.ofHours(8)); | ||
146 | CompletableFuture<TsValue> tsValueCompletableFuture = null; | 127 | CompletableFuture<TsValue> tsValueCompletableFuture = null; |
147 | //客户查询的是告警统计 消息统计 | 128 | //客户查询的是告警统计 消息统计 |
148 | if (isCustomer) { | 129 | if (isCustomer) { |
149 | if (trend == TrendType.CUSTOMER_ALARM_STATISTICAL) { | 130 | if (trend == TrendType.CUSTOMER_ALARM_STATISTICAL) { |
150 | - tsValueCompletableFuture = | ||
151 | - findDeviceInfoByTs( | ||
152 | - customerId, tempStartTs, tempEndTs, ts, TrendType.CUSTOMER_ALARM_STATISTICAL); | 131 | + tsValueCompletableFuture = findDeviceInfoByTs(customerId, tempStartTs, tempEndTs, ts, TrendType.CUSTOMER_ALARM_STATISTICAL); |
153 | } | 132 | } |
154 | if (trend == TrendType.CUSTOMER_MESSAGE_STATISTICAL) { | 133 | if (trend == TrendType.CUSTOMER_MESSAGE_STATISTICAL) { |
155 | - tsValueCompletableFuture = | ||
156 | - findDeviceInfoByTs( | ||
157 | - customerId, tempStartTs, tempEndTs, ts, TrendType.CUSTOMER_MESSAGE_STATISTICAL); | 134 | + tsValueCompletableFuture = findDeviceInfoByTs(customerId, tempStartTs, tempEndTs, ts, TrendType.CUSTOMER_MESSAGE_STATISTICAL); |
158 | } | 135 | } |
159 | } else { | 136 | } else { |
160 | if (trend == TrendType.TENANT_TREND) { | 137 | if (trend == TrendType.TENANT_TREND) { |
@@ -169,19 +146,14 @@ public class HomePageServiceImpl implements HomePageService { | @@ -169,19 +146,14 @@ public class HomePageServiceImpl implements HomePageService { | ||
169 | } | 146 | } |
170 | final DeferredResult<List<TsValue>> deferredResult = new DeferredResult<>(); | 147 | final DeferredResult<List<TsValue>> deferredResult = new DeferredResult<>(); |
171 | if (futures.size() > FastIotConstants.MagicNumber.ZERO) { | 148 | if (futures.size() > FastIotConstants.MagicNumber.ZERO) { |
172 | - ListenableFuture<List<TsValue>> listenableFuture = | ||
173 | - Futures.transform( | ||
174 | - setFutures(futures), | ||
175 | - tsValues -> { | ||
176 | - if (tsValues != null && !tsValues.isEmpty()) { | ||
177 | - return tsValues; | ||
178 | - } else { | ||
179 | - return null; | ||
180 | - } | ||
181 | - }, | ||
182 | - MoreExecutors.directExecutor()); | ||
183 | - Futures.addCallback( | ||
184 | - listenableFuture, getTsValueCallback(deferredResult), MoreExecutors.directExecutor()); | 149 | + ListenableFuture<List<TsValue>> listenableFuture = Futures.transform(setFutures(futures), tsValues -> { |
150 | + if (tsValues != null && !tsValues.isEmpty()) { | ||
151 | + return tsValues; | ||
152 | + } else { | ||
153 | + return null; | ||
154 | + } | ||
155 | + }, MoreExecutors.directExecutor()); | ||
156 | + Futures.addCallback(listenableFuture, getTsValueCallback(deferredResult), MoreExecutors.directExecutor()); | ||
185 | } | 157 | } |
186 | return deferredResult; | 158 | return deferredResult; |
187 | } | 159 | } |
@@ -190,28 +162,20 @@ public class HomePageServiceImpl implements HomePageService { | @@ -190,28 +162,20 @@ public class HomePageServiceImpl implements HomePageService { | ||
190 | public DeferredResult<List<TenantTransportMessageDTO>> getTop10() { | 162 | public DeferredResult<List<TenantTransportMessageDTO>> getTop10() { |
191 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 163 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
192 | List<CompletableFuture<TenantTransportMessageDTO>> futures = new ArrayList<>(); | 164 | List<CompletableFuture<TenantTransportMessageDTO>> futures = new ArrayList<>(); |
193 | - tenants.forEach( | ||
194 | - tenant -> { | ||
195 | - TenantId tenantId = new TenantId(UUID.fromString(tenant.getTenantId())); | ||
196 | - futures.add(getTransportMessageByTenantId(tenantId, tenant.getName())); | ||
197 | - }); | 165 | + tenants.forEach(tenant -> { |
166 | + TenantId tenantId = new TenantId(UUID.fromString(tenant.getTenantId())); | ||
167 | + futures.add(getTransportMessageByTenantId(tenantId, tenant.getName())); | ||
168 | + }); | ||
198 | final DeferredResult<List<TenantTransportMessageDTO>> deferredResult = new DeferredResult<>(); | 169 | final DeferredResult<List<TenantTransportMessageDTO>> deferredResult = new DeferredResult<>(); |
199 | if (futures.size() > FastIotConstants.MagicNumber.ZERO) { | 170 | if (futures.size() > FastIotConstants.MagicNumber.ZERO) { |
200 | - ListenableFuture<List<TenantTransportMessageDTO>> listenableFuture = | ||
201 | - Futures.transform( | ||
202 | - settableFuture(futures), | ||
203 | - transportMessage -> { | ||
204 | - if (transportMessage != null && !transportMessage.isEmpty()) { | ||
205 | - return transportMessage; | ||
206 | - } else { | ||
207 | - return null; | ||
208 | - } | ||
209 | - }, | ||
210 | - MoreExecutors.directExecutor()); | ||
211 | - Futures.addCallback( | ||
212 | - listenableFuture, | ||
213 | - getTransportMessageCallback(deferredResult), | ||
214 | - MoreExecutors.directExecutor()); | 171 | + ListenableFuture<List<TenantTransportMessageDTO>> listenableFuture = Futures.transform(settableFuture(futures), transportMessage -> { |
172 | + if (transportMessage != null && !transportMessage.isEmpty()) { | ||
173 | + return transportMessage; | ||
174 | + } else { | ||
175 | + return null; | ||
176 | + } | ||
177 | + }, MoreExecutors.directExecutor()); | ||
178 | + Futures.addCallback(listenableFuture, getTransportMessageCallback(deferredResult), MoreExecutors.directExecutor()); | ||
215 | } else { | 179 | } else { |
216 | List<TenantTransportMessageDTO> result = new ArrayList<>(); | 180 | List<TenantTransportMessageDTO> result = new ArrayList<>(); |
217 | deferredResult.setResult(result); | 181 | deferredResult.setResult(result); |
@@ -221,36 +185,25 @@ public class HomePageServiceImpl implements HomePageService { | @@ -221,36 +185,25 @@ public class HomePageServiceImpl implements HomePageService { | ||
221 | 185 | ||
222 | @Override | 186 | @Override |
223 | @Async | 187 | @Async |
224 | - public CompletableFuture<TenantTransportMessageDTO> getTransportMessageByTenantId( | ||
225 | - TenantId tenantId, String tenantName) { | 188 | + public CompletableFuture<TenantTransportMessageDTO> getTransportMessageByTenantId(TenantId tenantId, String tenantName) { |
226 | List<EntityKey> latestValues = new ArrayList<>(); | 189 | List<EntityKey> latestValues = new ArrayList<>(); |
227 | latestValues.add(new EntityKey(EntityKeyType.TIME_SERIES, "transportMsgCount")); | 190 | latestValues.add(new EntityKey(EntityKeyType.TIME_SERIES, "transportMsgCount")); |
228 | ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(tenantId); | 191 | ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(tenantId); |
229 | PageData<EntityData> pageData = queryEntityData(apiUsageState.getId(), tenantId, null, latestValues); | 192 | PageData<EntityData> pageData = queryEntityData(apiUsageState.getId(), tenantId, null, latestValues); |
230 | Map<EntityKeyType, Map<String, TsValue>> latest = pageData.getData().get(0).getLatest(); | 193 | Map<EntityKeyType, Map<String, TsValue>> latest = pageData.getData().get(0).getLatest(); |
231 | TenantTransportMessageDTO transportMessage = new TenantTransportMessageDTO(); | 194 | TenantTransportMessageDTO transportMessage = new TenantTransportMessageDTO(); |
232 | - latest | ||
233 | - .keySet() | ||
234 | - .forEach( | ||
235 | - item -> { | ||
236 | - if (item.equals(EntityKeyType.TIME_SERIES)) { | ||
237 | - Map<String, TsValue> tsValueMap = latest.get(item); | ||
238 | - tsValueMap | ||
239 | - .keySet() | ||
240 | - .forEach( | ||
241 | - mapKey -> { | ||
242 | - Long value = | ||
243 | - Long.valueOf( | ||
244 | - tsValueMap.get(mapKey).getValue().isEmpty() | ||
245 | - ? FastIotConstants.MagicNumber.ZERO + "" | ||
246 | - : tsValueMap.get(mapKey).getValue()); | ||
247 | - if (mapKey.equals("transportMsgCount")) { | ||
248 | - transportMessage.setName(tenantName); | ||
249 | - transportMessage.setCount(value); | ||
250 | - } | ||
251 | - }); | ||
252 | - } | ||
253 | - }); | 195 | + latest.keySet().forEach(item -> { |
196 | + if (item.equals(EntityKeyType.TIME_SERIES)) { | ||
197 | + Map<String, TsValue> tsValueMap = latest.get(item); | ||
198 | + tsValueMap.keySet().forEach(mapKey -> { | ||
199 | + Long value = Long.valueOf(tsValueMap.get(mapKey).getValue().isEmpty() ? FastIotConstants.MagicNumber.ZERO + "" : tsValueMap.get(mapKey).getValue()); | ||
200 | + if (mapKey.equals("transportMsgCount")) { | ||
201 | + transportMessage.setName(tenantName); | ||
202 | + transportMessage.setCount(value); | ||
203 | + } | ||
204 | + }); | ||
205 | + } | ||
206 | + }); | ||
254 | return CompletableFuture.supplyAsync(() -> transportMessage); | 207 | return CompletableFuture.supplyAsync(() -> transportMessage); |
255 | } | 208 | } |
256 | 209 | ||
@@ -262,60 +215,64 @@ public class HomePageServiceImpl implements HomePageService { | @@ -262,60 +215,64 @@ public class HomePageServiceImpl implements HomePageService { | ||
262 | */ | 215 | */ |
263 | private void setDeviceInfoData(List<DeviceDTO> deviceList, HomeDeviceInfoDTO homeDeviceInfoDTO) { | 216 | private void setDeviceInfoData(List<DeviceDTO> deviceList, HomeDeviceInfoDTO homeDeviceInfoDTO) { |
264 | homeDeviceInfoDTO.setSumCount(deviceList.size()); | 217 | homeDeviceInfoDTO.setSumCount(deviceList.size()); |
265 | - deviceList.forEach( | ||
266 | - ytDevice -> { | ||
267 | - int basicNum = FastIotConstants.MagicNumber.ONE; | ||
268 | - ZoneOffset zoneOffset = ZoneOffset.of("+8"); | ||
269 | - LocalDateTime todayZeroTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); | ||
270 | - if (ytDevice.getCreateTime().atZone(zoneOffset).toInstant().toEpochMilli() | ||
271 | - >= todayZeroTime.toInstant(zoneOffset).toEpochMilli()) { | ||
272 | - homeDeviceInfoDTO.setTodayAdd(homeDeviceInfoDTO.getTodayAdd() + basicNum); | ||
273 | - } | ||
274 | - switch (ytDevice.getDeviceState()) { | ||
275 | - case OFFLINE: | ||
276 | - homeDeviceInfoDTO.setOffLine(homeDeviceInfoDTO.getOffLine() + basicNum); | ||
277 | - break; | ||
278 | - case ONLINE: | ||
279 | - homeDeviceInfoDTO.setOnLine(homeDeviceInfoDTO.getOnLine() + basicNum); | ||
280 | - break; | ||
281 | - case INACTIVE: | ||
282 | - homeDeviceInfoDTO.setInActive(homeDeviceInfoDTO.getInActive() + basicNum); | ||
283 | - break; | ||
284 | - default: | ||
285 | - break; | ||
286 | - } | ||
287 | - }); | 218 | + deviceList.forEach(ytDevice -> { |
219 | + int basicNum = FastIotConstants.MagicNumber.ONE; | ||
220 | + ZoneOffset zoneOffset = ZoneOffset.of("+8"); | ||
221 | + LocalDateTime todayZeroTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); | ||
222 | + if (ytDevice.getCreateTime().atZone(zoneOffset).toInstant().toEpochMilli() >= todayZeroTime.toInstant(zoneOffset).toEpochMilli()) { | ||
223 | + homeDeviceInfoDTO.setTodayAdd(homeDeviceInfoDTO.getTodayAdd() + basicNum); | ||
224 | + } | ||
225 | + switch (ytDevice.getDeviceState()) { | ||
226 | + case OFFLINE: | ||
227 | + homeDeviceInfoDTO.setOffLine(homeDeviceInfoDTO.getOffLine() + basicNum); | ||
228 | + break; | ||
229 | + case ONLINE: | ||
230 | + homeDeviceInfoDTO.setOnLine(homeDeviceInfoDTO.getOnLine() + basicNum); | ||
231 | + break; | ||
232 | + case INACTIVE: | ||
233 | + homeDeviceInfoDTO.setInActive(homeDeviceInfoDTO.getInActive() + basicNum); | ||
234 | + break; | ||
235 | + default: | ||
236 | + break; | ||
237 | + } | ||
238 | + }); | ||
288 | } | 239 | } |
289 | 240 | ||
290 | /** | 241 | /** |
291 | * 获取当前用户权限下的租户信息 | 242 | * 获取当前用户权限下的租户信息 |
243 | + * | ||
292 | * @return | 244 | * @return |
293 | */ | 245 | */ |
294 | - private List<TenantDTO> getTenantInfo(){ | 246 | + private List<TenantDTO> getTenantInfo() { |
295 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 247 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
296 | return tenants; | 248 | return tenants; |
297 | } | 249 | } |
298 | 250 | ||
299 | /** | 251 | /** |
300 | * 获取当前用户权限下的客户信息 | 252 | * 获取当前用户权限下的客户信息 |
253 | + * | ||
301 | * @return | 254 | * @return |
302 | */ | 255 | */ |
303 | - private List<UserDTO> getCustomerInfo(){ | 256 | + private List<UserDTO> getCustomerInfo() { |
304 | List<UserDTO> userList = userMapper.getUserCountByRoleType(RoleEnum.CUSTOMER_USER); | 257 | List<UserDTO> userList = userMapper.getUserCountByRoleType(RoleEnum.CUSTOMER_USER); |
305 | return userList; | 258 | return userList; |
306 | } | 259 | } |
307 | - private List<TenantDTO> getApiUsageInfo(){ | 260 | + |
261 | + private List<TenantDTO> getApiUsageInfo() { | ||
308 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 262 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
309 | return tenants; | 263 | return tenants; |
310 | } | 264 | } |
311 | - private List<TenantDTO> getDeviceInfo(){ | 265 | + |
266 | + private List<TenantDTO> getDeviceInfo() { | ||
312 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 267 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
313 | return tenants; | 268 | return tenants; |
314 | } | 269 | } |
315 | - private List<TenantDTO> getAlarmInfo(){ | 270 | + |
271 | + private List<TenantDTO> getAlarmInfo() { | ||
316 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 272 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
317 | return tenants; | 273 | return tenants; |
318 | } | 274 | } |
275 | + | ||
319 | /** | 276 | /** |
320 | * 设置租户返回信息 | 277 | * 设置租户返回信息 |
321 | * | 278 | * |
@@ -323,17 +280,9 @@ public class HomePageServiceImpl implements HomePageService { | @@ -323,17 +280,9 @@ public class HomePageServiceImpl implements HomePageService { | ||
323 | * @param startTime 今日开始时间 | 280 | * @param startTime 今日开始时间 |
324 | * @param endTime 今日结束时间 | 281 | * @param endTime 今日结束时间 |
325 | */ | 282 | */ |
326 | - private void setTenantInfoData( | ||
327 | - HomePageLeftTopDTO homePageLeftTopDTO, LocalDateTime startTime, LocalDateTime endTime) { | 283 | + private void setTenantInfoData(HomePageLeftTopDTO homePageLeftTopDTO, LocalDateTime startTime, LocalDateTime endTime) { |
328 | List<TenantDTO> tenants = tenantService.getAllTenant(); | 284 | List<TenantDTO> tenants = tenantService.getAllTenant(); |
329 | - int todayAdd = | ||
330 | - (int) | ||
331 | - tenants.stream() | ||
332 | - .filter( | ||
333 | - tenant -> | ||
334 | - tenant.getCreateTime().isAfter(startTime) | ||
335 | - && tenant.getCreateTime().isBefore(endTime)) | ||
336 | - .count(); | 285 | + int todayAdd = (int) tenants.stream().filter(tenant -> tenant.getCreateTime().isAfter(startTime) && tenant.getCreateTime().isBefore(endTime)).count(); |
337 | int sumCount = tenants.size(); | 286 | int sumCount = tenants.size(); |
338 | BaseHomePageTop baseHomePageTop = new BaseHomePageTop(sumCount, todayAdd); | 287 | BaseHomePageTop baseHomePageTop = new BaseHomePageTop(sumCount, todayAdd); |
339 | homePageLeftTopDTO.setTenantInfo(baseHomePageTop); | 288 | homePageLeftTopDTO.setTenantInfo(baseHomePageTop); |
@@ -346,9 +295,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -346,9 +295,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
346 | * @param messageInfo 消息 | 295 | * @param messageInfo 消息 |
347 | * @param alarm 告警 | 296 | * @param alarm 告警 |
348 | */ | 297 | */ |
349 | - private void setAlarmAndMessageInfo( | ||
350 | - String tenantId, HomePageTopMessage messageInfo, BaseHomePageTop alarm) | ||
351 | - throws ExecutionException, InterruptedException { | 298 | + private void setAlarmAndMessageInfo(String tenantId, HomePageTopMessage messageInfo, BaseHomePageTop alarm) throws ExecutionException, InterruptedException { |
352 | List<EntityKey> entityFields = new ArrayList<>(); | 299 | List<EntityKey> entityFields = new ArrayList<>(); |
353 | entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "name")); | 300 | entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "name")); |
354 | entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "label")); | 301 | entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "label")); |
@@ -362,40 +309,31 @@ public class HomePageServiceImpl implements HomePageService { | @@ -362,40 +309,31 @@ public class HomePageServiceImpl implements HomePageService { | ||
362 | ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(currentTenantId); | 309 | ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(currentTenantId); |
363 | PageData<EntityData> pageData = queryEntityData(apiUsageState.getId(), currentTenantId, entityFields, latestValues); | 310 | PageData<EntityData> pageData = queryEntityData(apiUsageState.getId(), currentTenantId, entityFields, latestValues); |
364 | Map<EntityKeyType, Map<String, TsValue>> latest = pageData.getData().get(0).getLatest(); | 311 | Map<EntityKeyType, Map<String, TsValue>> latest = pageData.getData().get(0).getLatest(); |
365 | - latest | ||
366 | - .keySet() | ||
367 | - .forEach( | ||
368 | - item -> { | ||
369 | - if (item.equals(EntityKeyType.TIME_SERIES)) { | ||
370 | - Map<String, TsValue> tsValueMap = latest.get(item); | ||
371 | - tsValueMap | ||
372 | - .keySet() | ||
373 | - .forEach( | ||
374 | - mapKey -> { | ||
375 | - String tsValue = tsValueMap.get(mapKey).getValue(); | ||
376 | - Integer value = | ||
377 | - StringUtils.isEmpty(tsValue) | ||
378 | - ? FastIotConstants.MagicNumber.ZERO | ||
379 | - : Integer.parseInt(tsValue); | ||
380 | - switch (mapKey) { | ||
381 | - case "createdAlarmsCount": | ||
382 | - alarm.setSumCount(value); | ||
383 | - break; | ||
384 | - case "transportMsgCount": | ||
385 | - messageInfo.setMessageCount(value); | ||
386 | - break; | ||
387 | - case "transportDataPointsCount": | ||
388 | - messageInfo.setDataPointsCount(value); | ||
389 | - break; | ||
390 | - default: | ||
391 | - break; | ||
392 | - } | ||
393 | - }); | ||
394 | - } | ||
395 | - }); | 312 | + latest.keySet().forEach(item -> { |
313 | + if (item.equals(EntityKeyType.TIME_SERIES)) { | ||
314 | + Map<String, TsValue> tsValueMap = latest.get(item); | ||
315 | + tsValueMap.keySet().forEach(mapKey -> { | ||
316 | + String tsValue = tsValueMap.get(mapKey).getValue(); | ||
317 | + Integer value = StringUtils.isEmpty(tsValue) ? FastIotConstants.MagicNumber.ZERO : Integer.parseInt(tsValue); | ||
318 | + switch (mapKey) { | ||
319 | + case "createdAlarmsCount": | ||
320 | + alarm.setSumCount(value); | ||
321 | + break; | ||
322 | + case "transportMsgCount": | ||
323 | + messageInfo.setMessageCount(value); | ||
324 | + break; | ||
325 | + case "transportDataPointsCount": | ||
326 | + messageInfo.setDataPointsCount(value); | ||
327 | + break; | ||
328 | + default: | ||
329 | + break; | ||
330 | + } | ||
331 | + }); | ||
332 | + } | ||
333 | + }); | ||
396 | 334 | ||
397 | // 查询今日数据 | 335 | // 查询今日数据 |
398 | - setTodayAlarmAndMessageInfo(currentTenantId, apiUsageState, messageInfo, alarm); | 336 | + setTodayAlarmAndMessageInfo(currentTenantId, apiUsageState.getId(), messageInfo, alarm); |
399 | } | 337 | } |
400 | 338 | ||
401 | /** | 339 | /** |
@@ -408,101 +346,97 @@ public class HomePageServiceImpl implements HomePageService { | @@ -408,101 +346,97 @@ public class HomePageServiceImpl implements HomePageService { | ||
408 | * @throws ExecutionException 异常 | 346 | * @throws ExecutionException 异常 |
409 | * @throws InterruptedException 异常 | 347 | * @throws InterruptedException 异常 |
410 | */ | 348 | */ |
411 | - private void setTodayAlarmAndMessageInfo( | ||
412 | - TenantId currentTenantId, | ||
413 | - ApiUsageState apiUsageState, | ||
414 | - HomePageTopMessage messageInfo, | ||
415 | - BaseHomePageTop alarm) | ||
416 | - throws ExecutionException, InterruptedException { | ||
417 | - List<ReadTsKvQuery> queries = new ArrayList<>(); | ||
418 | - long startTs = | ||
419 | - LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN) | ||
420 | - .toInstant(ZoneOffset.of("+8")) | ||
421 | - .toEpochMilli(); | ||
422 | - long endTs = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(); | ||
423 | - int interval = 7200000; | ||
424 | - int limit = (int) ((endTs - startTs) / interval) + FastIotConstants.MagicNumber.ONE; | ||
425 | - queries.add( | ||
426 | - new BaseReadTsKvQuery( | ||
427 | - "transportMsgCountHourly", startTs, endTs, interval, limit, Aggregation.SUM)); | ||
428 | - queries.add( | ||
429 | - new BaseReadTsKvQuery( | ||
430 | - "transportDataPointsCountHourly", startTs, endTs, interval, limit, Aggregation.SUM)); | ||
431 | - queries.add( | ||
432 | - new BaseReadTsKvQuery( | ||
433 | - "createdAlarmsCountHourly", startTs, endTs, interval, limit, Aggregation.SUM)); | ||
434 | - List<TsKvEntry> tsKv = | ||
435 | - timeseriesService.findAll(currentTenantId, apiUsageState.getId(), queries).get(); | ||
436 | - tsKv.forEach( | ||
437 | - tsKvEntry -> { | ||
438 | - if (tsKvEntry.getLongValue().isPresent()) { | ||
439 | - int count = tsKvEntry.getLongValue().get().intValue(); | ||
440 | - switch (tsKvEntry.getKey()) { | ||
441 | - case "transportMsgCountHourly": | ||
442 | - messageInfo.setTodayMessageAdd(count + messageInfo.getTodayMessageAdd()); | ||
443 | - break; | ||
444 | - case "transportDataPointsCountHourly": | ||
445 | - messageInfo.setTodayDataPointsAdd(count + messageInfo.getTodayDataPointsAdd()); | ||
446 | - break; | ||
447 | - case "createdAlarmsCountHourly": | ||
448 | - alarm.setTodayAdd(count + alarm.getTodayAdd()); | ||
449 | - break; | ||
450 | - default: | ||
451 | - break; | ||
452 | - } | ||
453 | - } | ||
454 | - }); | 349 | + private void setTodayAlarmAndMessageInfo(TenantId currentTenantId, EntityId apiUsageState, HomePageTopMessage messageInfo, BaseHomePageTop alarm) throws ExecutionException, InterruptedException { |
350 | + Map<String, Aggregation> queries = new HashMap<>(); | ||
351 | + queries.put("transportMsgCountHourly", Aggregation.SUM); | ||
352 | + queries.put("transportDataPointsCountHourly", Aggregation.SUM); | ||
353 | + queries.put("createdAlarmsCountHourly", Aggregation.SUM); | ||
354 | + | ||
355 | + List<TsKvEntry> tsKv = queryEntityTimeseries(apiUsageState, currentTenantId, queries); | ||
356 | + tsKv.forEach(tsKvEntry -> { | ||
357 | + if (tsKvEntry.getLongValue().isPresent()) { | ||
358 | + int count = tsKvEntry.getLongValue().get().intValue(); | ||
359 | + switch (tsKvEntry.getKey()) { | ||
360 | + case "transportMsgCountHourly": | ||
361 | + messageInfo.setTodayMessageAdd(count + messageInfo.getTodayMessageAdd()); | ||
362 | + break; | ||
363 | + case "transportDataPointsCountHourly": | ||
364 | + messageInfo.setTodayDataPointsAdd(count + messageInfo.getTodayDataPointsAdd()); | ||
365 | + break; | ||
366 | + case "createdAlarmsCountHourly": | ||
367 | + alarm.setTodayAdd(count + alarm.getTodayAdd()); | ||
368 | + break; | ||
369 | + default: | ||
370 | + break; | ||
371 | + } | ||
372 | + } | ||
373 | + }); | ||
455 | } | 374 | } |
456 | 375 | ||
457 | /** | 376 | /** |
458 | * 查询实体的运行数据 | 377 | * 查询实体的运行数据 |
459 | - * @param entityId 实体ID,例如:设备、用户、流量统计等 | ||
460 | - * @param currentTenantId 租户ID | ||
461 | - * @param entityFields 查询的实体字段 | ||
462 | - * @param latestValues 查询的运行数据字段,例如:遥测数据、操作记录等。 | 378 | + * |
379 | + * @param entityId 实体ID,例如:设备、用户、流量统计等 | ||
380 | + * @param currentTenantId 租户ID | ||
381 | + * @param entityFields 查询的实体字段 | ||
382 | + * @param latestValues 查询的运行数据字段,例如:遥测数据、操作记录等。 | ||
463 | * @return | 383 | * @return |
464 | */ | 384 | */ |
465 | - private PageData<EntityData> queryEntityData(EntityId entityId,TenantId currentTenantId, List<EntityKey> entityFields, List<EntityKey> latestValues) { | 385 | + private PageData<EntityData> queryEntityData(EntityId entityId, TenantId currentTenantId, List<EntityKey> entityFields, List<EntityKey> latestValues) { |
466 | CustomerId customerId = new CustomerId(EntityId.NULL_UUID); | 386 | CustomerId customerId = new CustomerId(EntityId.NULL_UUID); |
467 | 387 | ||
468 | EntityKey key = new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"); | 388 | EntityKey key = new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"); |
469 | - EntityDataSortOrder sortOrder = | ||
470 | - new EntityDataSortOrder(key, EntityDataSortOrder.Direction.DESC); | 389 | + EntityDataSortOrder sortOrder = new EntityDataSortOrder(key, EntityDataSortOrder.Direction.DESC); |
471 | 390 | ||
472 | - EntityDataPageLink pageLink = | ||
473 | - new EntityDataPageLink( | ||
474 | - FastIotConstants.MagicNumber.ONE, FastIotConstants.MagicNumber.ZERO, null, sortOrder); | 391 | + EntityDataPageLink pageLink = new EntityDataPageLink(FastIotConstants.MagicNumber.ONE, FastIotConstants.MagicNumber.ZERO, null, sortOrder); |
475 | 392 | ||
476 | SingleEntityFilter singleEntityFilter = new SingleEntityFilter(); | 393 | SingleEntityFilter singleEntityFilter = new SingleEntityFilter(); |
477 | singleEntityFilter.setSingleEntity(entityId); | 394 | singleEntityFilter.setSingleEntity(entityId); |
478 | 395 | ||
479 | - EntityDataQuery query = | ||
480 | - new EntityDataQuery(singleEntityFilter, pageLink, entityFields, latestValues, null); | 396 | + EntityDataQuery query = new EntityDataQuery(singleEntityFilter, pageLink, entityFields, latestValues, null); |
481 | 397 | ||
482 | return entityService.findEntityDataByQuery(currentTenantId, customerId, query); | 398 | return entityService.findEntityDataByQuery(currentTenantId, customerId, query); |
483 | } | 399 | } |
484 | 400 | ||
485 | /** | 401 | /** |
402 | + * 查询实体当天遥测数据的统计信息 | ||
403 | + * | ||
404 | + * @param entityId 实体ID,例如:设备、用户、流量统计等 | ||
405 | + * @param currentTenantId 租户ID | ||
406 | + * @param statics 统计内容,包括需要统计的指标名、数据聚合的算法 | ||
407 | + * 统计的时间区间、数据聚合的时间窗口、 | ||
408 | + * @return | ||
409 | + * @throws ExecutionException | ||
410 | + * @throws InterruptedException | ||
411 | + */ | ||
412 | + private List<TsKvEntry> queryEntityTimeseries(EntityId entityId, TenantId currentTenantId, Map<String, Aggregation> statics) throws ExecutionException, InterruptedException { | ||
413 | + long startTs = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN).toInstant(ZoneOffset.of("+8")).toEpochMilli(); | ||
414 | + long endTs = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(); | ||
415 | + int interval = 7200000; | ||
416 | + int limit = (int) ((endTs - startTs) / interval) + FastIotConstants.MagicNumber.ONE; | ||
417 | + | ||
418 | + List<ReadTsKvQuery> queries = new ArrayList<>(); | ||
419 | + for (String key : statics.keySet()) { | ||
420 | + queries.add(new BaseReadTsKvQuery(key, startTs, endTs, interval, limit, statics.get(key))); | ||
421 | + } | ||
422 | + List<TsKvEntry> tsKv = timeseriesService.findAll(currentTenantId, entityId, queries).get(); | ||
423 | + return tsKv; | ||
424 | + } | ||
425 | + | ||
426 | + /** | ||
486 | * 设置客户返回信息 | 427 | * 设置客户返回信息 |
487 | * | 428 | * |
488 | * @param homePageLeftTopDTO 首页顶部返回 | 429 | * @param homePageLeftTopDTO 首页顶部返回 |
489 | * @param startTime 今日开始时间 | 430 | * @param startTime 今日开始时间 |
490 | * @param endTime 今日结束时间 | 431 | * @param endTime 今日结束时间 |
491 | */ | 432 | */ |
492 | - private void setCustomerInfoData( | ||
493 | - HomePageLeftTopDTO homePageLeftTopDTO, LocalDateTime startTime, LocalDateTime endTime) { | 433 | + private void setCustomerInfoData(HomePageLeftTopDTO homePageLeftTopDTO, LocalDateTime startTime, LocalDateTime endTime) { |
494 | List<UserDTO> userList = userMapper.getUserCountByRoleType(RoleEnum.CUSTOMER_USER); | 434 | List<UserDTO> userList = userMapper.getUserCountByRoleType(RoleEnum.CUSTOMER_USER); |
495 | int sumCount = userList != null ? userList.size() : FastIotConstants.MagicNumber.ZERO; | 435 | int sumCount = userList != null ? userList.size() : FastIotConstants.MagicNumber.ZERO; |
496 | 436 | ||
497 | int todayAdd = FastIotConstants.MagicNumber.ZERO; | 437 | int todayAdd = FastIotConstants.MagicNumber.ZERO; |
498 | if (userList != null && userList.size() > FastIotConstants.MagicNumber.ZERO) { | 438 | if (userList != null && userList.size() > FastIotConstants.MagicNumber.ZERO) { |
499 | - todayAdd += | ||
500 | - userList.stream() | ||
501 | - .filter( | ||
502 | - userDTO -> | ||
503 | - userDTO.getCreateTime().isAfter(startTime) | ||
504 | - && userDTO.getCreateTime().isBefore(endTime)) | ||
505 | - .count(); | 439 | + todayAdd += userList.stream().filter(userDTO -> userDTO.getCreateTime().isAfter(startTime) && userDTO.getCreateTime().isBefore(endTime)).count(); |
506 | } | 440 | } |
507 | BaseHomePageTop baseHomePageTop = new BaseHomePageTop(sumCount, todayAdd); | 441 | BaseHomePageTop baseHomePageTop = new BaseHomePageTop(sumCount, todayAdd); |
508 | homePageLeftTopDTO.setCustomerInfo(baseHomePageTop); | 442 | homePageLeftTopDTO.setCustomerInfo(baseHomePageTop); |
@@ -510,41 +444,31 @@ public class HomePageServiceImpl implements HomePageService { | @@ -510,41 +444,31 @@ public class HomePageServiceImpl implements HomePageService { | ||
510 | 444 | ||
511 | private SettableFuture<List<TsValue>> setFutures(List<CompletableFuture<TsValue>> tsFutures) { | 445 | private SettableFuture<List<TsValue>> setFutures(List<CompletableFuture<TsValue>> tsFutures) { |
512 | SettableFuture<List<TsValue>> listenableFuture = SettableFuture.create(); | 446 | SettableFuture<List<TsValue>> listenableFuture = SettableFuture.create(); |
513 | - CompletableFuture<List<TsValue>> entities = | ||
514 | - CompletableFuture.allOf(tsFutures.toArray(new CompletableFuture[tsFutures.size()])) | ||
515 | - .thenApply( | ||
516 | - v -> tsFutures.stream().map(CompletableFuture::join).collect(Collectors.toList())); | ||
517 | - entities.whenComplete( | ||
518 | - (tsValues, throwable) -> { | ||
519 | - if (throwable != null) { | ||
520 | - listenableFuture.setException(throwable); | ||
521 | - } else { | ||
522 | - listenableFuture.set(tsValues); | ||
523 | - } | ||
524 | - }); | 447 | + CompletableFuture<List<TsValue>> entities = CompletableFuture.allOf(tsFutures.toArray(new CompletableFuture[tsFutures.size()])).thenApply(v -> tsFutures.stream().map(CompletableFuture::join).collect(Collectors.toList())); |
448 | + entities.whenComplete((tsValues, throwable) -> { | ||
449 | + if (throwable != null) { | ||
450 | + listenableFuture.setException(throwable); | ||
451 | + } else { | ||
452 | + listenableFuture.set(tsValues); | ||
453 | + } | ||
454 | + }); | ||
525 | return listenableFuture; | 455 | return listenableFuture; |
526 | } | 456 | } |
527 | 457 | ||
528 | - private SettableFuture<List<TenantTransportMessageDTO>> settableFuture( | ||
529 | - List<CompletableFuture<TenantTransportMessageDTO>> tsFutures) { | 458 | + private SettableFuture<List<TenantTransportMessageDTO>> settableFuture(List<CompletableFuture<TenantTransportMessageDTO>> tsFutures) { |
530 | SettableFuture<List<TenantTransportMessageDTO>> listenableFuture = SettableFuture.create(); | 459 | SettableFuture<List<TenantTransportMessageDTO>> listenableFuture = SettableFuture.create(); |
531 | - CompletableFuture<List<TenantTransportMessageDTO>> entities = | ||
532 | - CompletableFuture.allOf(tsFutures.toArray(new CompletableFuture[tsFutures.size()])) | ||
533 | - .thenApply( | ||
534 | - v -> tsFutures.stream().map(CompletableFuture::join).collect(Collectors.toList())); | ||
535 | - entities.whenComplete( | ||
536 | - (tsValues, throwable) -> { | ||
537 | - if (throwable != null) { | ||
538 | - listenableFuture.setException(throwable); | ||
539 | - } else { | ||
540 | - listenableFuture.set(tsValues); | ||
541 | - } | ||
542 | - }); | 460 | + CompletableFuture<List<TenantTransportMessageDTO>> entities = CompletableFuture.allOf(tsFutures.toArray(new CompletableFuture[tsFutures.size()])).thenApply(v -> tsFutures.stream().map(CompletableFuture::join).collect(Collectors.toList())); |
461 | + entities.whenComplete((tsValues, throwable) -> { | ||
462 | + if (throwable != null) { | ||
463 | + listenableFuture.setException(throwable); | ||
464 | + } else { | ||
465 | + listenableFuture.set(tsValues); | ||
466 | + } | ||
467 | + }); | ||
543 | return listenableFuture; | 468 | return listenableFuture; |
544 | } | 469 | } |
545 | 470 | ||
546 | - private FutureCallback<List<TsValue>> getTsValueCallback( | ||
547 | - final DeferredResult<List<TsValue>> response) { | 471 | + private FutureCallback<List<TsValue>> getTsValueCallback(final DeferredResult<List<TsValue>> response) { |
548 | return new FutureCallback<>() { | 472 | return new FutureCallback<>() { |
549 | @Override | 473 | @Override |
550 | public void onSuccess(@Nullable List<TsValue> tsValues) { | 474 | public void onSuccess(@Nullable List<TsValue> tsValues) { |
@@ -558,8 +482,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -558,8 +482,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
558 | }; | 482 | }; |
559 | } | 483 | } |
560 | 484 | ||
561 | - private FutureCallback<List<TenantTransportMessageDTO>> getTransportMessageCallback( | ||
562 | - final DeferredResult<List<TenantTransportMessageDTO>> response) { | 485 | + private FutureCallback<List<TenantTransportMessageDTO>> getTransportMessageCallback(final DeferredResult<List<TenantTransportMessageDTO>> response) { |
563 | return new FutureCallback<>() { | 486 | return new FutureCallback<>() { |
564 | @Override | 487 | @Override |
565 | public void onSuccess(@Nullable List<TenantTransportMessageDTO> values) { | 488 | public void onSuccess(@Nullable List<TenantTransportMessageDTO> values) { |
@@ -568,8 +491,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -568,8 +491,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
568 | int length = values.size() - FastIotConstants.MagicNumber.ONE; | 491 | int length = values.size() - FastIotConstants.MagicNumber.ONE; |
569 | for (int i = FastIotConstants.MagicNumber.ZERO; i < length; i++) { | 492 | for (int i = FastIotConstants.MagicNumber.ZERO; i < length; i++) { |
570 | for (int j = FastIotConstants.MagicNumber.ZERO; j < length - i; j++) { | 493 | for (int j = FastIotConstants.MagicNumber.ZERO; j < length - i; j++) { |
571 | - if (values.get(j).getCount() | ||
572 | - < values.get(j + FastIotConstants.MagicNumber.ONE).getCount()) { | 494 | + if (values.get(j).getCount() < values.get(j + FastIotConstants.MagicNumber.ONE).getCount()) { |
573 | String name = values.get(j).getName(); | 495 | String name = values.get(j).getName(); |
574 | Long count = values.get(j).getCount(); | 496 | Long count = values.get(j).getCount(); |
575 | values.get(j).setName(values.get(j + FastIotConstants.MagicNumber.ONE).getName()); | 497 | values.get(j).setName(values.get(j + FastIotConstants.MagicNumber.ONE).getName()); |
@@ -579,11 +501,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -579,11 +501,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
579 | } | 501 | } |
580 | } | 502 | } |
581 | } | 503 | } |
582 | - values = | ||
583 | - values.size() > FastIotConstants.MagicNumber.TEN | ||
584 | - ? values.subList( | ||
585 | - FastIotConstants.MagicNumber.ZERO, FastIotConstants.MagicNumber.TEN) | ||
586 | - : values; | 504 | + values = values.size() > FastIotConstants.MagicNumber.TEN ? values.subList(FastIotConstants.MagicNumber.ZERO, FastIotConstants.MagicNumber.TEN) : values; |
587 | } | 505 | } |
588 | response.setResult(values); | 506 | response.setResult(values); |
589 | } | 507 | } |
@@ -595,8 +513,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -595,8 +513,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
595 | }; | 513 | }; |
596 | } | 514 | } |
597 | 515 | ||
598 | - private CompletableFuture<TsValue> findDeviceInfoByTs( | ||
599 | - String customerId, Long startTs, Long endTs, long ts, TrendType trend) { | 516 | + private CompletableFuture<TsValue> findDeviceInfoByTs(String customerId, Long startTs, Long endTs, long ts, TrendType trend) { |
600 | Integer value; | 517 | Integer value; |
601 | if (trend == TrendType.CUSTOMER_MESSAGE_STATISTICAL) { | 518 | if (trend == TrendType.CUSTOMER_MESSAGE_STATISTICAL) { |
602 | value = deviceMapper.findDeviceMessageInfoByTs(customerId, startTs, endTs); | 519 | value = deviceMapper.findDeviceMessageInfoByTs(customerId, startTs, endTs); |