Commit 11a07eda640f5d2a1abbf9af6f458be3273348e4

Authored by chenjunyu_1481036421
1 parent 69960192

feat:OpenApi新增 设备历史数据查询接口

... ... @@ -47,6 +47,7 @@ import org.thingsboard.common.util.JacksonUtil;
47 47 import org.thingsboard.common.util.ThingsBoardThreadFactory;
48 48 import org.thingsboard.server.common.data.kv.AggregationParams;
49 49 import org.thingsboard.server.common.data.kv.IntervalType;
  50 +import org.thingsboard.server.common.data.yunteng.dto.TimeseriesDTO;
50 51 import org.thingsboard.server.common.msg.rule.engine.DeviceAttributesEventNotificationMsg;
51 52 import org.thingsboard.server.common.data.DataConstants;
52 53 import org.thingsboard.server.common.data.EntityType;
... ... @@ -291,6 +292,29 @@ public class TelemetryController extends BaseController {
291 292 (result, tenantId, entityId) -> getLatestTimeseriesValuesCallback(result, user, entityId, keysStr, useStrictDataTypes));
292 293 }
293 294
  295 + //thingskit start
  296 + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER', 'OPENAPI_USER')")
  297 + @RequestMapping("/getTimeseries")
  298 + @ApiOperation("OpenApi查询设备历史数据")
  299 + public DeferredResult<ResponseEntity> getTimeseries(
  300 + @RequestBody TimeseriesDTO queryMap)
  301 + throws ThingsboardException {
  302 + return getTimeseries(
  303 + "DEVICE",
  304 + null!=queryMap.getDeviceId()?queryMap.getDeviceId():null,
  305 + null!=queryMap.getKeys()?queryMap.getKeys():null,
  306 + null!=queryMap.getStartTime()?queryMap.getStartTime():null,
  307 + null!=queryMap.getEndTime()?queryMap.getEndTime():null,
  308 + null,
  309 + null!=queryMap.getInterval()?queryMap.getInterval():null,
  310 + null,
  311 + null!=queryMap.getLimit()?queryMap.getLimit():100,
  312 + null!=queryMap.getAgg()?queryMap.getAgg():null,
  313 + null!=queryMap.getSortOrder()?queryMap.getSortOrder():null,
  314 + false);
  315 + }
  316 + //thingskit end
  317 +
294 318 @ApiOperation(value = "Get time-series data (getTimeseries)",
295 319 notes = "Returns a range of time-series values for specified entity. " +
296 320 "Returns not aggregated data by default. " +
... ... @@ -301,7 +325,7 @@ public class TelemetryController extends BaseController {
301 325 + MARKDOWN_CODE_BLOCK_END
302 326 + "\n\n" + INVALID_ENTITY_ID_OR_ENTITY_TYPE_DESCRIPTION + TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,
303 327 produces = MediaType.APPLICATION_JSON_VALUE)
304   - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')")
  328 + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER','OPENAPI_USER')")
305 329 @RequestMapping(value = "/{entityType}/{entityId}/values/timeseries", method = RequestMethod.GET, params = {"keys", "startTs", "endTs"})
306 330 @ResponseBody
307 331 public DeferredResult<ResponseEntity> getTimeseries(
... ...
... ... @@ -45,6 +45,7 @@ public class DefaultAccessControlService implements AccessControlService {
45 45 authorityPermissions.put(Authority.SYS_ADMIN, sysAdminPermissions);
46 46 authorityPermissions.put(Authority.TENANT_ADMIN, tenantAdminPermissions);
47 47 authorityPermissions.put(Authority.CUSTOMER_USER, customerUserPermissions);
  48 + authorityPermissions.put(Authority.OPENAPI_USER, customerUserPermissions);
48 49 }
49 50
50 51 @Override
... ...
  1 +package org.thingsboard.server.common.data.yunteng.dto;
  2 +import lombok.Data;
  3 +
  4 +@Data
  5 +public class TimeseriesDTO {
  6 + private String deviceId;
  7 + private String keys;
  8 + private Long interval;
  9 + private String agg;
  10 + private String sortOrder;
  11 + private Long startTime;
  12 + private Long endTime;
  13 + private Integer limit;
  14 +}
... ...