From d81d031832d1e098b09d991a1796e25d26bf5e2d Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Mon, 10 Mar 2025 11:09:07 +0800 Subject: [PATCH] 1 --- .../sdk/cloudapi/device/DeviceEnum.java | 12 +++- .../sdk/cloudapi/device/DeviceTypeEnum.java | 16 +++++- .../cloudapi/map/CreateMapElementRequest.java | 4 +- .../map/MapElementCreateWsResponse.java | 16 +++--- .../map/MapElementUpdateWsResponse.java | 16 +++--- .../sdk/cloudapi/map/MapGroupElement.java | 20 +++---- .../cloudapi/map/UpdateMapElementRequest.java | 4 +- .../sdk/cloudapi/map/api/IHttpMapService.java | 45 ++++++++------- .../media/MediaUploadCallbackRequest.java | 10 ++-- .../cloudapi/media/api/IHttpMediaService.java | 44 ++++++++++---- .../storage/StsCredentialsResponse.java | 12 ++-- .../storage/api/IHttpStorageService.java | 4 +- .../common/sdk/cloudapi/tsa/TopologyList.java | 6 +- .../sdk/cloudapi/tsa/api/IHttpTsaService.java | 5 +- .../wayline/GetWaylineListResponse.java | 40 ++++++------- .../wayline/api/IHttpWaylineService.java | 14 ++++- .../config/version/Dock2ThingVersionEnum.java | 2 +- .../config/version/Dock3ThingVersionEnum.java | 47 +++++++++++++++ .../config/version/DockThingVersionEnum.java | 4 +- .../config/version/DroneThingVersionEnum.java | 4 +- .../config/version/GatewayThingVersion.java | 3 + .../sdk/config/version/GatewayTypeEnum.java | 3 + .../sdk/mqtt/osd/OsdDeviceTypeEnum.java | 4 +- .../common/sdk/mqtt/state/StateRouter.java | 1 + .../manage/controller/DeviceController.java | 2 + .../controller/DeviceFirmwareController.java | 2 + .../controller/DeviceHmsController.java | 6 ++ .../controller/DeviceLogsController.java | 27 ++++++--- .../controller/LiveStreamController.java | 8 +++ .../controller/WorkspaceController.java | 1 + .../sample/manage/model/dto/DeviceDTO.java | 24 +++++++- .../manage/model/dto/DeviceFirmwareDTO.java | 13 ++++- .../model/dto/DeviceFirmwareNoteDTO.java | 3 +- .../sample/manage/model/dto/DeviceHmsDTO.java | 14 ++++- .../manage/model/dto/DeviceLogsDTO.java | 11 +++- .../manage/model/dto/DevicePayloadDTO.java | 6 ++ .../sample/manage/model/dto/LiveTypeDTO.java | 5 ++ .../manage/model/entity/DeviceEntity.java | 10 ++-- .../model/entity/DeviceFirmwareEntity.java | 7 ++- .../manage/model/entity/DeviceHmsEntity.java | 5 +- .../manage/model/entity/DeviceLogsEntity.java | 8 ++- .../model/enums/DeviceFirmwareStatusEnum.java | 4 ++ .../model/param/DeviceLogsCreateParam.java | 3 +- .../impl/DeviceFirmwareServiceImpl.java | 11 ++-- .../service/impl/DeviceHmsServiceImpl.java | 13 +++-- .../service/impl/DeviceLogsServiceImpl.java | 5 +- .../service/impl/DeviceServiceImpl.java | 12 ++-- .../map/controller/DeviceDataController.java | 7 +-- .../map/controller/FlightAreaController.java | 35 +++++++----- .../WorkspaceElementController.java | 9 ++- .../sample/map/model/dto/FlightAreaDTO.java | 6 +- .../sample/map/model/dto/FlightAreaWs.java | 6 +- .../sample/map/model/dto/GroupElementDTO.java | 6 +- .../map/model/entity/GroupElementEntity.java | 5 +- .../service/impl/FlightAreaServiceImpl.java | 16 +++--- .../media/controller/FileController.java | 21 ++++--- .../media/controller/MediaController.java | 26 +++++---- .../sample/media/model/MediaFileDTO.java | 13 ++++- .../sample/media/model/MediaFileEntity.java | 5 +- .../media/service/impl/FileServiceImpl.java | 3 +- .../storage/controller/StorageController.java | 6 +- .../controller/WaylineFileController.java | 57 +++++++++++-------- .../src/main/resources/application.properties | 4 +- pom.xml | 2 +- 64 files changed, 505 insertions(+), 258 deletions(-) create mode 100644 dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceEnum.java index c56f4cd..c3b8806 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceEnum.java @@ -1,9 +1,9 @@ package org.dromara.common.sdk.cloudapi.device; -import org.dromara.common.sdk.exception.CloudSDKException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.v3.oas.annotations.media.Schema; +import org.dromara.common.sdk.exception.CloudSDKException; import java.util.Arrays; @@ -69,6 +69,8 @@ public enum DeviceEnum { DOCK2(DeviceDomainEnum.DOCK, DeviceTypeEnum.DOCK2, DeviceSubTypeEnum.ZERO), + DOCK3(DeviceDomainEnum.DOCK, DeviceTypeEnum.DOCK3, DeviceSubTypeEnum.ZERO), + M3D(DeviceDomainEnum.DRONE, DeviceTypeEnum.M3D, DeviceSubTypeEnum.ZERO), M3TD(DeviceDomainEnum.DRONE, DeviceTypeEnum.M3D, DeviceSubTypeEnum.ONE), @@ -76,6 +78,14 @@ public enum DeviceEnum { M3D_CAMERA(DeviceDomainEnum.PAYLOAD, DeviceTypeEnum.M3D_CAMERA, DeviceSubTypeEnum.ZERO), M3TD_CAMERA(DeviceDomainEnum.PAYLOAD, DeviceTypeEnum.M3TD_CAMERA, DeviceSubTypeEnum.ZERO), + + M4D(DeviceDomainEnum.DRONE, DeviceTypeEnum.M4D, DeviceSubTypeEnum.ZERO), + + M4TD(DeviceDomainEnum.DRONE, DeviceTypeEnum.M4D, DeviceSubTypeEnum.ONE), + + M4D_CAMERA(DeviceDomainEnum.PAYLOAD, DeviceTypeEnum.M4D_CAMERA, DeviceSubTypeEnum.ZERO), + + M4TD_CAMERA(DeviceDomainEnum.PAYLOAD, DeviceTypeEnum.M4TD_CAMERA, DeviceSubTypeEnum.ZERO), ; @Schema(enumAsRef = true) diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceTypeEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceTypeEnum.java index 49bd0db..c7f8fba 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceTypeEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/device/DeviceTypeEnum.java @@ -1,9 +1,9 @@ package org.dromara.common.sdk.cloudapi.device; -import org.dromara.common.sdk.exception.CloudSDKException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.v3.oas.annotations.media.Schema; +import org.dromara.common.sdk.exception.CloudSDKException; import java.util.Arrays; @@ -57,15 +57,29 @@ public enum DeviceTypeEnum { RC_PRO(144), + M4E_CAMERA(88), + + M4M_CAMERA(89), + DOCK(1), DOCK2(2), + DOCK3(3), + M3D(91), M3D_CAMERA(80), M3TD_CAMERA(81), + + + M4D(100), + + M4D_CAMERA(98), + + M4TD_CAMERA(99), + TEST(1767) ; private final int type; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/CreateMapElementRequest.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/CreateMapElementRequest.java index 4867e8c..eb34fba 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/CreateMapElementRequest.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/CreateMapElementRequest.java @@ -16,10 +16,10 @@ public class CreateMapElementRequest { @NotNull @Pattern(regexp = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") - @Schema(description = "element id", format = "uuid") + @Schema(description = "元素id", format = "uuid") private String id; - @Schema(description = "element name", example = "PILOT 1") + @Schema(description = "元素name", example = "PILOT 1") @NotNull private String name; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementCreateWsResponse.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementCreateWsResponse.java index 2ca885b..a589a92 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementCreateWsResponse.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementCreateWsResponse.java @@ -8,6 +8,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; +import java.util.Date; + /** * @author sean @@ -35,14 +37,12 @@ public class MapElementCreateWsResponse extends BaseModel { @NotNull @Schema(description = "element create time", example = "123456789012") @JsonProperty(value = "create_time") - @Min(123456789012L) - private Long createTime; + private Date createTime; @NotNull @Schema(description = "element update time", example = "123456789012") @JsonProperty(value = "update_time") - @Min(123456789012L) - private Long updateTime; + private Date updateTime; @NotNull @Valid @@ -81,20 +81,20 @@ public class MapElementCreateWsResponse extends BaseModel { return this; } - public Long getCreateTime() { + public Date getCreateTime() { return createTime; } - public MapElementCreateWsResponse setCreateTime(Long createTime) { + public MapElementCreateWsResponse setCreateTime(Date createTime) { this.createTime = createTime; return this; } - public Long getUpdateTime() { + public Date getUpdateTime() { return updateTime; } - public MapElementCreateWsResponse setUpdateTime(Long updateTime) { + public MapElementCreateWsResponse setUpdateTime(Date updateTime) { this.updateTime = updateTime; return this; } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementUpdateWsResponse.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementUpdateWsResponse.java index 6f6336e..124fd3f 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementUpdateWsResponse.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapElementUpdateWsResponse.java @@ -8,6 +8,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; +import java.util.Date; + /** * @author sean * @version 1.7 @@ -34,14 +36,12 @@ public class MapElementUpdateWsResponse extends BaseModel { @NotNull @Schema(description = "element create time", example = "123456789012") @JsonProperty(value = "create_time") - @Min(123456789012L) - private Long createTime; + private Date createTime; @NotNull @Schema(description = "element update time", example = "123456789012") @JsonProperty(value = "update_time") - @Min(123456789012L) - private Long updateTime; + private Date updateTime; @NotNull @Valid @@ -80,20 +80,20 @@ public class MapElementUpdateWsResponse extends BaseModel { return this; } - public Long getCreateTime() { + public Date getCreateTime() { return createTime; } - public MapElementUpdateWsResponse setCreateTime(Long createTime) { + public MapElementUpdateWsResponse setCreateTime(Date createTime) { this.createTime = createTime; return this; } - public Long getUpdateTime() { + public Date getUpdateTime() { return updateTime; } - public MapElementUpdateWsResponse setUpdateTime(Long updateTime) { + public MapElementUpdateWsResponse setUpdateTime(Date updateTime) { this.updateTime = updateTime; return this; } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapGroupElement.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapGroupElement.java index 9c1b58b..fd8b556 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapGroupElement.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/MapGroupElement.java @@ -7,6 +7,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; +import java.util.Date; + /** * @author sean @@ -26,16 +28,14 @@ public class MapGroupElement { private String name; @NotNull - @Schema(description = "element create time", example = "123456789012") + @Schema(description = "element 创建时间", example = "123456789012") @JsonProperty(value = "create_time") - @Min(123456789012L) - private Long createTime; + private Date createTime; @NotNull - @Schema(description = "element update time", example = "123456789012") + @Schema(description = "element 更新时间", example = "123456789012") @JsonProperty(value = "update_time") - @Min(123456789012L) - private Long updateTime; + private Date updateTime; @NotNull @Valid @@ -73,20 +73,20 @@ public class MapGroupElement { return this; } - public Long getCreateTime() { + public Date getCreateTime() { return createTime; } - public MapGroupElement setCreateTime(Long createTime) { + public MapGroupElement setCreateTime(Date createTime) { this.createTime = createTime; return this; } - public Long getUpdateTime() { + public Date getUpdateTime() { return updateTime; } - public MapGroupElement setUpdateTime(Long updateTime) { + public MapGroupElement setUpdateTime(Date updateTime) { this.updateTime = updateTime; return this; } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/UpdateMapElementRequest.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/UpdateMapElementRequest.java index ee66716..520c8fa 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/UpdateMapElementRequest.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/UpdateMapElementRequest.java @@ -10,10 +10,10 @@ import jakarta.validation.constraints.NotNull; * @version 0.2 * @date 2021/12/1 */ -@Schema(description = "Update element request data") +@Schema(description = "更新元素请求数据") public class UpdateMapElementRequest { - @Schema(description = "element name", example = "PILOT 1") + @Schema(description = "元素name", example = "PILOT 1") @NotNull private String name; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/IHttpMapService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/IHttpMapService.java index fc12cef..ef5e396 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/IHttpMapService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/IHttpMapService.java @@ -21,12 +21,14 @@ import java.util.List; * @version 0.2 * @date 2021/11/29 */ -@Tag(name = "map interface") +@Tag(name = "地图界面") public interface IHttpMapService { String PREFIX = "map/api/v1"; /** + * 在第一次连接中,飞行员将发送此 HTTP 请求以获取组元素列表。同样,如果飞行员从WebSocket接收到组刷新指令, + * 它需要相同的接口来请求组元素列表。 * In the first connection, pilot will send out this http request to get the group element list. * Also, if pilot receives a group refresh instruction from WebSocket, * it needs the same interface to request the group element list. @@ -37,25 +39,23 @@ public interface IHttpMapService { * @param rsp * @return */ - @Operation(summary = "get map elements", description = "In the first connection, pilot will send out this http " + - "request to get the group element list. Also, if pilot receives a group refresh instruction from " + - "WebSocket, it needs the same interface to request the group element list.", + @Operation(summary = "获取地图元素", description = "在第一个连接中,试点将发送此http请求以获取组元素列表+此外,如果导引器从“+”WebSocket接收到组刷新指令,则需要相同的接口来请求组元素列表。", parameters = { - @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")), - @Parameter(name = "group_id", description = "element group id. The same element group can contain " + - "multiple map elements, which is equivalent to grouping map elements. " + - "When initiating the request, if the group id parameter is not included, " + - "the server needs to return all map elements. If the group id is specified, " + - "it only needs to return the set of elements in the specified element group", schema = @Schema(format = "uuid")), - @Parameter(name = "is_distributed", description = "Whether the element group is distributed.") + @Parameter(name = "workspace_id", description = "工作区标识id", schema = @Schema(format = "uuid")), + @Parameter(name = "group_id", description = "元素组 ID。同一个元素组可以包含多个地图元素这相当于对地图元素进行分组。" + + "在发起请求时,如果未包含 group_id 参数,服务器需要返回所有地图元素。如果指定了group_id," + + "它只需要返回指定元素组中的元素集", schema = @Schema(format = "uuid")), + @Parameter(name = "is_distributed", description = "元素组是否已分配:") }) @GetMapping(PREFIX + "/workspaces/element-groups") HttpResultResponse> getMapElements( + @PathVariable(name = "workspace_id") String workspaceId, @RequestParam(name = "group_id", required = false) String groupId, @RequestParam(name = "is_distributed", required = false) Boolean isDistributed, HttpServletRequest req, HttpServletResponse rsp); /** + * 当用户在PILOT/Web侧绘制点、线或多边形时。 * When user draws a point, line or polygon on the PILOT/Web side. * @param workspaceId * @param groupId @@ -64,14 +64,13 @@ public interface IHttpMapService { * @param rsp * @return */ - @Operation(summary = "create map element", description = "When user draws a point, line or polygon on the PILOT/Web side.", + @Operation(summary = "创建地图元素", description = "当用户在PILOT/Web侧绘制点、线或多边形时。", parameters = { - @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")), - @Parameter(name = "group_id", description = "element group id. The same element group can contain " + - "multiple map elements, which is equivalent to grouping map elements. " + - "When initiating the request, if the group id parameter is not included, " + - "the server needs to return all map elements. If the group id is specified, " + - "it only needs to return the set of elements in the specified element group", schema = @Schema(format = "uuid")) + @Parameter(name = "workspace_id", description = "工作区标识id", schema = @Schema(format = "uuid")), + @Parameter(name = "group_id", description = "元素组ID。同一个元素组可以包含" + + "多个地图元素,这相当于将地图元素分组。" + + "在发起请求时,如果未包含组 ID 参数," + + "服务器需要返回所有地图元素。如果指定了组ID,“它只需要返回指定元素组中的元素集", schema = @Schema(format = "uuid")) }) @PostMapping(PREFIX + "/workspaces/{workspace_id}/element-groups/{group_id}/elements") HttpResultResponse createMapElement( @@ -82,6 +81,7 @@ public interface IHttpMapService { /** + * 当用户在PILOT/Web侧编辑点、线或多边形时。 * When user edits a point, line or polygon on the PILOT/Web side. * @param workspaceId * @param elementId @@ -90,10 +90,10 @@ public interface IHttpMapService { * @param rsp * @return */ - @Operation(summary = "update map element", description = "When user edits a point, line or polygon on the PILOT/Web side.", + @Operation(summary = "更新地图元素", description = "当用户在PILOT/Web侧编辑点、线或多边形时。", parameters = { - @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")), - @Parameter(name = "element_id", description = "element id", schema = @Schema(format = "uuid")) + @Parameter(name = "workspace_id", description = "工作区标识id", schema = @Schema(format = "uuid")), + @Parameter(name = "element_id", description = "元素 id", schema = @Schema(format = "uuid")) }) @PutMapping(PREFIX + "/workspaces/{workspace_id}/elements/{element_id}") HttpResultResponse updateMapElement( @@ -104,12 +104,13 @@ public interface IHttpMapService { /** + * 当用户在PILOT/Web侧删除点、线或多边形时。 * When user delete a point, line or polygon on the PILOT/Web side. * @param workspaceId * @param elementId * @return */ - @Operation(summary = "delete map element", description = "When user delete a point, line or polygon on the PILOT/Web side.", + @Operation(summary = "删除map元素", description = "当用户在PILOT/Web侧删除点、线或多边形时。", parameters = { @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")), @Parameter(name = "element_id", description = "element id", schema = @Schema(format = "uuid")) diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/MediaUploadCallbackRequest.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/MediaUploadCallbackRequest.java index eaab50e..ca2de94 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/MediaUploadCallbackRequest.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/MediaUploadCallbackRequest.java @@ -11,7 +11,7 @@ import jakarta.validation.constraints.NotNull; * @version 0.2 * @date 2021/12/7 */ -@Schema(description = "media fast upload request data") +@Schema(description = "媒体快速上传请求数据") public class MediaUploadCallbackRequest { @NotNull @@ -19,19 +19,19 @@ public class MediaUploadCallbackRequest { private MediaFileExtension ext; @NotNull - @Schema(description = "media file fingerprint", example = "7F78C9F1999425CB61F10E1FE206009E") + @Schema(description = "媒体文件指纹", example = "7F78C9F1999425CB61F10E1FE206009E") private String fingerprint; @NotNull - @Schema(description = "media file name", example = "DJI_20220831151616_0004_W_Waypoint4.JPG") + @Schema(description = "媒体文件明皇朝", example = "DJI_20220831151616_0004_W_Waypoint4.JPG") private String name; - @Schema(description = "media file path. This value is empty if the photo was not taken in the wayline.", example = "DJI_202208311455_008_Waypoint1") + @Schema(description = "媒体文件地址", example = "DJI_202208311455_008_Waypoint1") private String path; @JsonProperty("object_key") @NotNull - @Schema(description = "The key of the object in the bucket", example = "media/DJI_20220831151616_0004_W_Waypoint4.JPG") + @Schema(description = "桶中文件的关链字", example = "media/DJI_20220831151616_0004_W_Waypoint4.JPG") private String objectKey; @Schema(type = "int") diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java index 4fd6018..b100045 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java @@ -23,26 +23,33 @@ import org.springframework.web.bind.annotation.RequestBody; * @version 0.2 * @date 2021/12/9 */ -@Tag(name = "media interface") +@Tag(name = "媒体接口") public interface IHttpMediaService { String PREFIX = "media/api/v1"; /** + * 检查文件是否已通过指纹上传。 * Check if the file has been uploaded by the fingerprint. * @param request * @param req * @param rsp * @return */ - @Operation(summary = "media fast upload", description = "Check if the file has been uploaded by the fingerprint.") - @PostMapping(PREFIX + "/workspace/fast-upload") + @Operation(summary = "媒体快速上传", description = "检查文件是否已通过指纹上传。", + parameters = { + @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")) + }) + @PostMapping(PREFIX + "/workspace/{workspace_id}/fast-upload") HttpResultResponse mediaFastUpload( + @PathVariable(name = "workspace_id") String workspaceId, @Valid @RequestBody MediaFastUploadRequest request, HttpServletRequest req, HttpServletResponse rsp); /** + * 当文件由飞行员上传到存储服务器时, + * 通过此接口报告文件的基本信息。 * When the file is uploaded to the storage server by pilot, * the basic information of the file is reported through this interface. * @param request @@ -50,9 +57,12 @@ public interface IHttpMediaService { * @param rsp * @return */ - @Operation(summary = "app reports file upload result", description = "When the file is uploaded to the storage server by pilot, " + - "the basic information of the file is reported through this interface.", - responses = @ApiResponse(responseCode = "200", description = "OK", + @Operation(summary = "应用程序报告文件上传结果", description = "当文件由飞行员上传到存储服务器时, " + + "通过此接口报告文件的基本信息。", + parameters = { + @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")) + }, + responses = @ApiResponse(responseCode = "200", description = "OK", content = @Content(mediaType = "application/json", examples = {@ExampleObject(name = "responseObjectKey", summary = "response object key", @@ -60,36 +70,46 @@ public interface IHttpMediaService { value = "{\"code\": 0, \"message\":\"success\", \"data\": \"media/DJI_20220831151616_0004_W_Waypoint4.JPG\"}" )}))) - @PostMapping(PREFIX + "/workspaces/upload-callback") + @PostMapping(PREFIX + "/workspaces/{workspace_id}/upload-callback") HttpResultResponse mediaUploadCallback( + @PathVariable(name = "workspace_id") String workspaceId, @Valid @RequestBody MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp); /** + * 根据工作区ID和微小指纹集合查询此工作区中已存在的文件。 + * 主体中只有一个 tiny_fingerprint参数。 * Query the files that already exist in this workspace based on the workspace id and the collection of tiny fingerprints. * @param request There is only one tiny_fingerprint parameter in the body. * @param req * @param rsp * @return */ - @Operation(summary = "checks whether the file fingerprint exists", description = "Query the files that already exist in this " + - "workspace based on the workspace id and the collection of tiny fingerprints.") + @Operation(summary = "检查文件指纹是否存在", description = "查询已经存在于此处的文件" + + "基于工作区ID和微小指纹集合的工作区。", parameters = { + @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")) + }) @PostMapping(PREFIX + "/workspaces/{workspace_id}/files/tiny-fingerprints") HttpResultResponse getExistFileTinyFingerprint( + @PathVariable(name = "workspace_id") String workspaceId, @Valid @RequestBody GetFileFingerprintRequest request, HttpServletRequest req, HttpServletResponse rsp); /** - * Report the upload status of the media files in the file group in real time. + * 实时报告文件组中媒体文件的上传状态。 * @param request * @param req * @param rsp * @return */ - @Operation(summary = "callback after the file group upload complete", description = "Report the upload status of " + - "the media files in the file group in real time.") + @Operation(summary = "文件组上传完成后回调", description = "报告上传状态" + + "实时更新文件组中的媒体文件。", + parameters = { + @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")) + }) @PostMapping(PREFIX + "/workspaces/{workspace_id}/group-upload-callback") HttpResultResponse folderUploadCallback( + @PathVariable(name = "workspace_id") String workspaceId, @Valid @RequestBody FolderUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp); diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/StsCredentialsResponse.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/StsCredentialsResponse.java index 5fe6389..8baeb8e 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/StsCredentialsResponse.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/StsCredentialsResponse.java @@ -13,33 +13,33 @@ import jakarta.validation.constraints.Pattern; * @version 0.2 * @date 2021/12/7 */ -@Schema(description = "Temporary credential data") +@Schema(description = "临时凭证数据") public class StsCredentialsResponse extends BaseModel { - @Schema(description = "bucket name", example = "bucket-api") + @Schema(description = "bucket桶名称", example = "bucket-api") @NotNull private String bucket; @NotNull @Valid - @Schema(description = "The token data of the temporary credential") + @Schema(description = "临时凭证的令牌数据") private CredentialsToken credentials; @NotNull - @Schema(description = "access domain name for external services", example = "https://oss-cn-hangzhou.aliyuncs.com") + @Schema(description = "访问域名以获取外部服务", example = "https://oss-cn-hangzhou.aliyuncs.com") @Pattern(regexp = "^http[s]?://.*$") private String endpoint; @NotNull @JsonProperty("object_key_prefix") - @Schema(description = "The folder path where the object needs to be stored.", example = "files/wayline") + @Schema(description = "对象需要存储的目录路径。", example = "files/wayline") private String objectKeyPrefix; @NotNull private OssTypeEnum provider; @NotNull - @Schema(description = "The region where the bucket is located.", example = "us-east-1") + @Schema(description = "桶所在的区域。", example = "us-east-1") private String region; public StsCredentialsResponse() { diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/api/IHttpStorageService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/api/IHttpStorageService.java index ce502a8..58811ee 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/api/IHttpStorageService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/storage/api/IHttpStorageService.java @@ -21,17 +21,19 @@ public interface IHttpStorageService { String PREFIX = "storage/api/v1"; /** + * 在DJIPilot中获取上传媒体和路线的临时凭据。 * Get temporary credentials for uploading the media and wayline in DJI Pilot. * @param req * @param rsp * @return */ - @Operation(summary = "Get STS Token", description = "Get temporary credentials for uploading the media and wayline in DJI Pilot.", + @Operation(summary = "获取STS、Token", description = "获取临时凭据以在DJl Pilot中上传媒体和路标", parameters = { @Parameter(name = "workspace_id", description = "workspace id", schema = @Schema(format = "uuid")) }) @PostMapping(PREFIX + "/workspaces/sts") HttpResultResponse getTemporaryCredential( + @PathVariable(name = "workspace_id") String workspaceId, HttpServletRequest req, HttpServletResponse rsp); } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/TopologyList.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/TopologyList.java index c704576..92dc15a 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/TopologyList.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/TopologyList.java @@ -11,14 +11,14 @@ import java.util.List; * @version 0.2 * @date 2021/12/8 */ -@Schema(description = "device topology list") +@Schema(description = "设备拓扑列表") public class TopologyList { - @Schema(description = "drone device topology collection") + @Schema(description = "无人机设备拓扑集台") @NotNull private List<@Valid DeviceTopology> hosts; - @Schema(description = "gateway device topology collection") + @Schema(description = "网关设备拓扑集合") @NotNull private List<@Valid DeviceTopology> parents; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/api/IHttpTsaService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/api/IHttpTsaService.java index 89796f8..23dfc3b 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/api/IHttpTsaService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/tsa/api/IHttpTsaService.java @@ -28,10 +28,7 @@ public interface IHttpTsaService { * @param rsp * @return */ - @Operation(summary = "obtain device topology list", description = "Get the topology list of all devices in the current user workspace for pilot display." + - "In the first connection, DJI Pilot 2 will call this interface to obtain the list topology of all devices." + - "Also, when Pilot receives a websocket command to notify the device of online, offline, and update, " + - "it will also call this interface to request the device topology list to be updated.") + @Operation(summary = "获取设备拓扑列表", description = "在第一次连接时,DPilot2将调用此接口以获取当前用户工作区中所有设备的拓扑列表。") @GetMapping(PREFIX + "/workspaces/devices/topologies") HttpResultResponse obtainDeviceTopologyList( HttpServletRequest req, HttpServletResponse rsp); diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListResponse.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListResponse.java index da69f9e..0f677ca 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListResponse.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListResponse.java @@ -10,6 +10,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; + +import java.util.Date; import java.util.List; /** @@ -17,14 +19,14 @@ import java.util.List; * @version 0.3 * @date 2021/12/22 */ -@Schema(description = "The data of the wayline file.") +@Schema(description = "航线文件的数据。") public class GetWaylineListResponse extends BaseModel { /** * wayline file name */ @NotNull - @Schema(description = "wayline file name", example = "waylineFile") + @Schema(description = "航线文件名称", example = "waylineFile") @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") private String name; @@ -33,7 +35,7 @@ public class GetWaylineListResponse extends BaseModel { */ @NotNull @Pattern(regexp = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") - @Schema(description = "wayline file id", format = "uuid") + @Schema(description = "航线文件id", format = "uuid") private String id; /** @@ -41,7 +43,7 @@ public class GetWaylineListResponse extends BaseModel { */ @NotNull @JsonProperty("drone_model_key") - @Schema(description = "drone device product enum", example = "0-67-0") + @Schema(description = "无人机设备产品枚举", example = "0-67-0") private DeviceEnum droneModelKey; private String sign; @@ -52,14 +54,14 @@ public class GetWaylineListResponse extends BaseModel { @NotNull @Size(min = 1) @JsonProperty("payload_model_keys") - @Schema(description = "payload device product enum", example = "[\"1-53-0\"]") + @Schema(description = "有效负载设备产品枚举", example = "[\"1-53-0\"]") private List payloadModelKeys; /** * Is the wayline file favorited? */ @NotNull - @Schema(description = "Is the wayline file favorited?") + @Schema(description = "路线文件是否被收藏?") private Boolean favorited; /** @@ -67,12 +69,12 @@ public class GetWaylineListResponse extends BaseModel { */ @NotNull @Size(min = 1) - @Schema(description = "wayline template collection", example = "[0]") + @Schema(description = "wayline 模板集合", example = "[0]") @JsonProperty("template_types") private List templateTypes; @NotNull - @Schema(description = "The key of the object in the bucket", example = "wayline/waylineFile.kmz") + @Schema(description = "桶中的对象键", example = "wayline/waylineFile.kmz") @JsonProperty("object_key") private String objectKey; @@ -81,29 +83,27 @@ public class GetWaylineListResponse extends BaseModel { */ @NotNull @JsonProperty("user_name") - @Schema(description = "uploader's username", example = "admin") + @Schema(description = "上传者的用户名", example = "admin") private String username; /** * update time (millisecond) */ @NotNull - @Min(123456789012L) - @Schema(description = "update time (millisecond). The field named `update time` must exist in the table.", example = "123456789012") + @Schema(description = "更新时间(毫秒)。名为`更新时间`的字段必须在表中存在", example = "123456789012") @JsonProperty("update_time") - private Long updateTime; + private Date updateTime; /** * create time (millisecond) */ @NotNull - @Min(123456789012L) - @Schema(description = "create time (millisecond). The field named `create time` must exist in the table.", example = "123456789012") + @Schema(description = "创建时间(毫秒)。名为`创建时间`的字段必须在表中存在。.", example = "123456789012") @JsonProperty("create_time") - private Long createTime; + private Date createTime; @JsonProperty("action_type") - @Parameter(name = "action_type", description = "wayline template type collection", example = "1") + @Parameter(name = "action_type", description = "路线模板类型集合", example = "1") private ActionTypeEnum actionType; public GetWaylineListResponse() { @@ -208,20 +208,20 @@ public class GetWaylineListResponse extends BaseModel { return this; } - public Long getUpdateTime() { + public Date getUpdateTime() { return updateTime; } - public GetWaylineListResponse setUpdateTime(Long updateTime) { + public GetWaylineListResponse setUpdateTime(Date updateTime) { this.updateTime = updateTime; return this; } - public Long getCreateTime() { + public Date getCreateTime() { return createTime; } - public GetWaylineListResponse setCreateTime(Long createTime) { + public GetWaylineListResponse setCreateTime(Date createTime) { this.createTime = createTime; return this; } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java index 6e9e540..ecea8f6 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java @@ -31,6 +31,8 @@ public interface IHttpWaylineService { String PREFIX = "wayline/api/v1"; /** + * 根据查询条件查询路径文件的基本数据。 + * Pilot中的查询条件字段是固定的。 * Query the basic data of the wayline file according to the query conditions. * The query condition field in pilot is fixed. * @param request get waylines params @@ -43,6 +45,7 @@ public interface IHttpWaylineService { @GetMapping(PREFIX + "/workspaces/waylines") HttpResultResponse> getWaylineList( @Valid @ParameterObject GetWaylineListRequest request, + @PathVariable(name = "workspace_id") String workspaceId, HttpServletRequest req, HttpServletResponse rsp); /** @@ -59,6 +62,7 @@ public interface IHttpWaylineService { @GetMapping(PREFIX + "/workspaces/{workspace_id}/waylines/{wayline_id}/url") void getWaylineFileDownloadAddress( @PathVariable(name = "wayline_id") String waylineId, + @PathVariable(name = "workspace_id") String workspaceId, HttpServletRequest req, HttpServletResponse rsp); /** @@ -75,8 +79,9 @@ public interface IHttpWaylineService { parameters = { @Parameter(name = "name", description = "wayline file name", required = true) }) - @GetMapping(PREFIX + "/workspaces/waylines/duplicate-names") + @GetMapping(PREFIX + "/workspaces/{workspace_id}/waylines/duplicate-names") HttpResultResponse> getDuplicatedWaylineName( + @PathVariable(name = "workspace_id") String workspaceId, @NotNull @Size(min = 1) @RequestParam(name = "name") List names, HttpServletRequest req, HttpServletResponse rsp); @@ -90,8 +95,9 @@ public interface IHttpWaylineService { */ @Operation(summary = "file upload result report", description = "When the wayline file is uploaded to the " + "storage server by pilot, the basic information of the file is reported through this interface.") - @PostMapping(PREFIX + "/workspaces/upload-callback") + @PostMapping(PREFIX + "/workspaces/{workspace_id}/upload-callback") HttpResultResponse fileUploadResultReport( + @PathVariable(name = "workspace_id") String workspaceId, @Valid @RequestBody WaylineUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp); @@ -106,8 +112,9 @@ public interface IHttpWaylineService { parameters = { @Parameter(name = "id", description = "wayline id", required = true) }) - @PostMapping(PREFIX + "/workspaces/favorites") + @PostMapping(PREFIX + "/workspaces/{workspace_id}/favorites") HttpResultResponse batchFavoritesWayline( + @PathVariable(name = "workspace_id") String workspaceId, @NotNull @Size(min = 1) @RequestParam(name = "id") List ids, HttpServletRequest req, HttpServletResponse rsp); @@ -124,6 +131,7 @@ public interface IHttpWaylineService { }) @DeleteMapping(PREFIX + "/workspaces/{workspace_id}/favorites") HttpResultResponse batchUnfavoritesWayline( + @PathVariable(name = "workspace_id") String workspaceId, @NotNull @Size(min = 1) @RequestParam(name = "id") List ids, HttpServletRequest req, HttpServletResponse rsp); } diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java index 2e130ed..c3750b1 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java @@ -1,7 +1,7 @@ package org.dromara.common.sdk.config.version; -import org.dromara.common.sdk.exception.CloudSDKVersionException; import com.fasterxml.jackson.annotation.JsonValue; +import org.dromara.common.sdk.exception.CloudSDKVersionException; import java.util.Arrays; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java new file mode 100644 index 0000000..9cfa70c --- /dev/null +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java @@ -0,0 +1,47 @@ +package org.dromara.common.sdk.config.version; + +import com.fasterxml.jackson.annotation.JsonValue; +import org.dromara.common.sdk.exception.CloudSDKVersionException; + +import java.util.Arrays; + +/** + * @author sean + * @version 1.7 + * @date 2023/9/7 + */ +public enum Dock3ThingVersionEnum implements IThingVersion { + + V1_1_2("1.1.2", CloudSDKVersionEnum.V1_0_1), + + V1_2_0("1.2.0", CloudSDKVersionEnum.V1_0_3), + + V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), + + V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3), + V1_3_1("1.3.1", CloudSDKVersionEnum.V1_3_1), + ; + + private final String thingVersion; + + private final CloudSDKVersionEnum cloudSDKVersion; + + Dock3ThingVersionEnum(String thingVersion, CloudSDKVersionEnum cloudSDKVersion) { + this.thingVersion = thingVersion; + this.cloudSDKVersion = cloudSDKVersion; + } + + @JsonValue + public String getThingVersion() { + return thingVersion; + } + + public CloudSDKVersionEnum getCloudSDKVersion() { + return cloudSDKVersion; + } + + public static Dock3ThingVersionEnum find(String thingVersion) { + return Arrays.stream(values()).filter(thingVersionEnum -> thingVersionEnum.thingVersion.equals(thingVersion)) + .findAny().orElseThrow(() -> new CloudSDKVersionException(thingVersion)); + } +} diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java index 11bfeb5..6c6cfb6 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java @@ -1,7 +1,7 @@ package org.dromara.common.sdk.config.version; -import org.dromara.common.sdk.exception.CloudSDKVersionException; import com.fasterxml.jackson.annotation.JsonValue; +import org.dromara.common.sdk.exception.CloudSDKVersionException; import java.util.Arrays; @@ -20,6 +20,8 @@ public enum DockThingVersionEnum implements IThingVersion { V1_1_3("1.1.3", CloudSDKVersionEnum.V1_0_2), + V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), + ; private final String thingVersion; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java index 92e14ff..e662a59 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java @@ -1,7 +1,7 @@ package org.dromara.common.sdk.config.version; -import org.dromara.common.sdk.exception.CloudSDKVersionException; import com.fasterxml.jackson.annotation.JsonValue; +import org.dromara.common.sdk.exception.CloudSDKVersionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,6 +25,8 @@ public enum DroneThingVersionEnum implements IThingVersion { V1_2_0("1.2.0", CloudSDKVersionEnum.V1_0_3), + V1_2_3("1.2.3", CloudSDKVersionEnum.V1_0_3), + V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3), V1_3_1("1.3.1", CloudSDKVersionEnum.V1_3_1), diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayThingVersion.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayThingVersion.java index 408b997..c561943 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayThingVersion.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayThingVersion.java @@ -21,6 +21,9 @@ public class GatewayThingVersion { case DOCK2: this.thingVersion = Dock2ThingVersionEnum.find(thingVersion); return; + case DOCK3: + this.thingVersion = Dock3ThingVersionEnum.find(thingVersion); + return; case RC: this.thingVersion = RcThingVersionEnum.find(thingVersion); return; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayTypeEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayTypeEnum.java index 525c18e..373d038 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayTypeEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/GatewayTypeEnum.java @@ -1,5 +1,6 @@ package org.dromara.common.sdk.config.version; + import org.dromara.common.sdk.cloudapi.device.DeviceEnum; import org.dromara.common.sdk.exception.CloudSDKException; @@ -17,6 +18,8 @@ public enum GatewayTypeEnum { DOCK(DeviceEnum.DOCK), DOCK2(DeviceEnum.DOCK2), + + DOCK3(DeviceEnum.DOCK3), ; private final DeviceEnum[] gateway; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/osd/OsdDeviceTypeEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/osd/OsdDeviceTypeEnum.java index 8ee2bb3..9a16d62 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/osd/OsdDeviceTypeEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/osd/OsdDeviceTypeEnum.java @@ -22,11 +22,11 @@ public enum OsdDeviceTypeEnum { RC(true, OsdRemoteControl.class, ChannelName.INBOUND_OSD_RC, GatewayTypeEnum.RC), - DOCK(true, OsdDock.class, ChannelName.INBOUND_OSD_DOCK, GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2), + DOCK(true, OsdDock.class, ChannelName.INBOUND_OSD_DOCK, GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2,GatewayTypeEnum.DOCK3), RC_DRONE(false, OsdRcDrone.class, ChannelName.INBOUND_OSD_RC_DRONE, GatewayTypeEnum.RC), - DOCK_DRONE(false, OsdDockDrone.class, ChannelName.INBOUND_OSD_DOCK_DRONE, GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2); + DOCK_DRONE(false, OsdDockDrone.class, ChannelName.INBOUND_OSD_DOCK_DRONE, GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2,GatewayTypeEnum.DOCK3); private final boolean gateway; diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/state/StateRouter.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/state/StateRouter.java index 7ad9268..cad0392 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/state/StateRouter.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/state/StateRouter.java @@ -81,6 +81,7 @@ public class StateRouter { return RcStateDataKeyEnum.find(keys).getClassType(); case DOCK: case DOCK2: + case DOCK3: return DockStateDataKeyEnum.find(keys).getClassType(); default: throw new CloudSDKException(CloudSDKErrorEnum.WRONG_DATA, "Unexpected value: " + SDKManager.getDeviceSDK(gatewaySn).getType()); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java index b131ea9..f09c015 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java @@ -2,6 +2,7 @@ package org.dromara.sample.manage.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; @@ -30,6 +31,7 @@ import java.util.Optional; @RestController @Slf4j @RequestMapping("${url.manage.prefix}${url.manage.version}/devices") +@Tag(name = "无人机设备模块") public class DeviceController { @Autowired diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFirmwareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFirmwareController.java index c684107..9175f86 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFirmwareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFirmwareController.java @@ -1,6 +1,7 @@ package org.dromara.sample.manage.controller; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -33,6 +34,7 @@ import java.util.stream.Collectors; @RestController @RequestMapping("${url.manage.prefix}${url.manage.version}/workspaces") @Validated +@Tag(name = "无人机设备固件模块") public class DeviceFirmwareController { @Autowired diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceHmsController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceHmsController.java index b6d268e..93771a7 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceHmsController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceHmsController.java @@ -1,5 +1,7 @@ package org.dromara.sample.manage.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.dromara.common.sdk.common.HttpResultResponse; import org.dromara.common.sdk.common.PaginationData; import org.dromara.sample.manage.model.dto.DeviceHmsDTO; @@ -22,6 +24,7 @@ import java.util.Set; @RestController @Slf4j @RequestMapping("${url.manage.prefix}${url.manage.version}/devices") +@Tag(name = "无人机设备hms模块") public class DeviceHmsController { @Autowired @@ -33,6 +36,7 @@ public class DeviceHmsController { * @return */ @GetMapping("/{workspace_id}/devices/hms") + @Operation(summary = "分页查询设备hms信息的页面。", description = "分页查询设备hms信息的页面。") public HttpResultResponse> getHmsInformation( @PathVariable("workspace_id") String workspaceId,DeviceHmsQueryParam param) { PaginationData devices = deviceHmsService.getDeviceHmsByParam(param); @@ -45,6 +49,7 @@ public class DeviceHmsController { * @param deviceSn * @return */ + @Operation(summary = "将未读hms消息更新为已读状态。", description = "将未读hms消息更新为已读状态。") @PutMapping("/{workspace_id}/devices/hms/{device_sn}") public HttpResultResponse updateReadHmsByDeviceSn(@PathVariable("device_sn") String deviceSn) { deviceHmsService.updateUnreadHms(deviceSn); @@ -57,6 +62,7 @@ public class DeviceHmsController { * @param deviceSn * @return */ + @Operation(summary = "获取单个设备的hms消息。", description = "获取单个设备的hms消息。") @GetMapping("/{workspace_id}/devices/hms/{device_sn}") public HttpResultResponse> getUnreadHmsByDeviceSn(@PathVariable("device_sn") String deviceSn) { PaginationData paginationData = deviceHmsService.getDeviceHmsByParam( diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceLogsController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceLogsController.java index b66e920..05be41b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceLogsController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceLogsController.java @@ -1,5 +1,7 @@ package org.dromara.sample.manage.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.satoken.utils.LoginHelper; @@ -29,6 +31,7 @@ import java.net.URL; @RestController @Slf4j @RequestMapping("${url.manage.prefix}${url.manage.version}/workspaces") +@Tag(name = "无人机设备日志模块") public class DeviceLogsController { @Autowired @@ -42,6 +45,7 @@ public class DeviceLogsController { * @return */ @GetMapping("/devices/{device_sn}/logs-uploaded") + @Operation(summary = "根据查询参数分页获取设备上传日志列表。", description = "根据查询参数分页获取设备上传日志列表。") public HttpResultResponse getUploadedLogs(DeviceLogsQueryParam param, @PathVariable("device_sn") String deviceSn) { PaginationData data = deviceLogsService.getUploadedLogs(deviceSn, param); @@ -55,8 +59,9 @@ public class DeviceLogsController { * @param param * @return */ - @GetMapping("/devices/{device_sn}/logs") - public HttpResultResponse getLogsBySn( + @Operation(summary = "获取可以实时上传的日志文件列表。", description = "获取可以实时上传的日志文件列表。") + @GetMapping("/{workspace_id}/devices/{device_sn}/logs") + public HttpResultResponse getLogsBySn(@PathVariable("workspace_id") String workspaceId, @PathVariable("device_sn") String deviceSn, DeviceLogsGetParam param) { return deviceLogsService.getRealTimeLogs(deviceSn, param.getDomainList()); @@ -67,8 +72,9 @@ public class DeviceLogsController { * Initiate a log upload request to the gateway. * @return */ + @Operation(summary = "向网关发起日志上传请求。", description = "向网关发起日志上传请求。") @PostMapping("/{workspace_id}/devices/{device_sn}/logs") - public HttpResultResponse uploadLogs(@PathVariable("device_sn") String deviceSn, + public HttpResultResponse uploadLogs(@PathVariable("workspace_id") String workspaceId,@PathVariable("device_sn") String deviceSn, HttpServletRequest request, @RequestBody DeviceLogsCreateParam param) { LoginUser loginUser = LoginHelper.getLoginUser(); @@ -80,8 +86,9 @@ public class DeviceLogsController { * Cancel logs file upload. * @return */ - @DeleteMapping("/devices/{device_sn}/logs") - public HttpResultResponse cancelUploadedLogs(@PathVariable("device_sn") String deviceSn, + @Operation(summary = "取消日志文件上传。", description = "取消日志文件上传。") + @DeleteMapping("/{workspace_id}/devices/{device_sn}/logs") + public HttpResultResponse cancelUploadedLogs(@PathVariable("workspace_id") String workspaceId,@PathVariable("device_sn") String deviceSn, @RequestBody FileUploadUpdateRequest param) { return deviceLogsService.pushUpdateFile(deviceSn, param); @@ -91,8 +98,9 @@ public class DeviceLogsController { * 删除上传历史记录。 * @return */ - @DeleteMapping("/devices/{device_sn}/logs/{logs_id}") - public HttpResultResponse deleteUploadedLogs(@PathVariable("device_sn") String deviceSn, + @Operation(summary = "删除上传历史记录。", description = "删除上传历史记录。") + @DeleteMapping("/{workspace_id}/devices/{device_sn}/logs/{logs_id}") + public HttpResultResponse deleteUploadedLogs(@PathVariable("workspace_id") String workspaceId,@PathVariable("device_sn") String deviceSn, @PathVariable("logs_id") String logsId) { deviceLogsService.deleteLogs(deviceSn, logsId); return HttpResultResponse.success(); @@ -106,8 +114,9 @@ public class DeviceLogsController { * @param logsId * @param response */ - @GetMapping("/logs/{logs_id}/url/{file_id}") - public HttpResultResponse getFileUrl(@PathVariable(name = "file_id") String fileId, + @Operation(summary = "根据航线文件id查询文件的下载地址。", description = "根据航线文件id查询文件的下载地址。") + @GetMapping("/{workspace_id}/logs/{logs_id}/url/{file_id}") + public HttpResultResponse getFileUrl(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "file_id") String fileId, @PathVariable(name = "logs_id") String logsId, HttpServletResponse response) { try { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/LiveStreamController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/LiveStreamController.java index 9a3f903..8a64c38 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/LiveStreamController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/LiveStreamController.java @@ -1,5 +1,7 @@ package org.dromara.sample.manage.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sdk.common.HttpResultResponse; @@ -23,6 +25,7 @@ import java.util.List; @RestController @Slf4j @RequestMapping("${url.manage.prefix}${url.manage.version}/live") +@Tag(name = "无人机直播模块") public class LiveStreamController { @Autowired @@ -38,6 +41,7 @@ public class LiveStreamController { * @return live capability 实时 */ @GetMapping("/capacity") + @Operation(summary = "当前用户工作区中所有无人机的实时能力数据。", description = "当前用户工作区中所有无人机的实时能力数据。") public HttpResultResponse> getLiveCapacity(HttpServletRequest request) { // Get information about the current user. LoginUser loginUser = LoginHelper.getLoginUser(); @@ -53,6 +57,7 @@ public class LiveStreamController { * @return */ @PostMapping("/streams/start") + @Operation(summary = "启用直播", description = "启用直播") public HttpResultResponse liveStart(@RequestBody LiveTypeDTO liveParam) { return liveStreamService.liveStart(liveParam); } @@ -64,6 +69,7 @@ public class LiveStreamController { * @return */ @PostMapping("/streams/stop") + @Operation(summary = "停止直播", description = "停止直播") public HttpResultResponse liveStop(@RequestBody LiveTypeDTO liveParam) { return liveStreamService.liveStop(liveParam.getVideoId()); } @@ -75,11 +81,13 @@ public class LiveStreamController { * @return */ @PostMapping("/streams/update") + @Operation(summary = "设置直播流的质量", description = "设置直播流的质量") public HttpResultResponse liveSetQuality(@RequestBody LiveTypeDTO liveParam) { return liveStreamService.liveSetQuality(liveParam); } @PostMapping("/streams/switch") + @Operation(summary = "设置直播流的广角、变焦、红外", description = "设置直播流的广角、变焦、红外") public HttpResultResponse liveLensChange(@RequestBody LiveTypeDTO liveParam) { return liveStreamService.liveLensChange(liveParam); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java index 0a87ec4..052e0b4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java @@ -28,6 +28,7 @@ import java.util.Optional; */ @RestController @RequestMapping("${url.manage.prefix}${url.manage.version}/workspaces") +@Tag(name = "无人机工作区模块") public class WorkspaceController extends BaseController { @Autowired diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java index d8ccc7c..325ff30 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java @@ -1,5 +1,6 @@ package org.dromara.sample.manage.model.dto; +import io.swagger.v3.oas.annotations.media.Schema; import org.dromara.common.sdk.cloudapi.device.ControlSourceEnum; import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum; import org.dromara.common.sdk.cloudapi.device.DeviceSubTypeEnum; @@ -26,51 +27,70 @@ import java.util.List; @Builder public class DeviceDTO { + @Schema(description = "设备SN:机场dock, 无人机drone, 遥控器remote_control") private String deviceSn; + @Schema(description = "设备名称:此参数对应于设备字典表中的设备名称。") private String deviceName; + @Schema(description = "当前设备所属的工作区。") private String workspaceId; + @Schema(description = "无人机的控制,A控制或B控制。。") private ControlSourceEnum controlSource; + @Schema(description = "备注。") private String deviceDesc; + @Schema(description = "飞机设备SN") private String childDeviceSn; + @Schema(description = "此参数对应于设备字典表中的域。") private DeviceDomainEnum domain; + @Schema(description = "此参数对应于设备字典表中的设备类型。") private DeviceTypeEnum type; + @Schema(description = "此参数对应于设备字典表中的子类型。") private DeviceSubTypeEnum subType; + @Schema(description = "有效负载信息") private List payloadsList; private DeviceIconUrl iconUrl; + @Schema(description = "确定设备是否在线") private Boolean status; + @Schema(description = "设备绑定到工作区时的状态。1:绑定;0:未绑定;") private Boolean boundStatus; + @Schema(description = "最后一次设备登录的时间。") private LocalDateTime loginTime; + @Schema(description = "设备绑定到工作区的时间。") private LocalDateTime boundTime; + @Schema(description = "设备自定义名称") private String nickname; - private String userId; - + @Schema(description = "设备的固件版本") private String firmwareVersion; + @Schema(description = "工作区名称") private String workspaceName; + @Schema(description = "无人机信息") private DeviceDTO children; + @Schema(description = "设备的固件版本升级状态") private DeviceFirmwareStatusEnum firmwareStatus; + @Schema(description = "升级的阶段") private Integer firmwareProgress; private String parentSn; + @Schema(description = "设备枚举") private String thingVersion; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareDTO.java index b4e6234..f8abc7b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareDTO.java @@ -1,11 +1,13 @@ package org.dromara.sample.manage.model.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDate; +import java.util.Date; import java.util.List; /** @@ -19,27 +21,36 @@ import java.util.List; @NoArgsConstructor public class DeviceFirmwareDTO { + @Schema(description = "固件uuid") private String firmwareId; + @Schema(description = "固件包的文件名,包括文件后缀") private String fileName; + @Schema(description = "根据官方固件版本进行格式化。00.00.0000") private String productVersion; + @Schema(description = "桶中固件包的对象键。") private String objectKey; + @Schema(description = "固件包的大小。") private Long fileSize; private String fileMd5; private List deviceName; + @Schema(description = "固件包的发布说明。") private String releaseNote; - private LocalDate releasedTime; + @Schema(description = "固件包的发布日期。") + private Date releasedTime; + @Schema(description = "固件包的可用性。1:可用;0:不可用") private Boolean firmwareStatus; private String workspaceId; + @Schema(description = "创建人姓名") private String username; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareNoteDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareNoteDTO.java index 8669805..32d2d13 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareNoteDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceFirmwareNoteDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDate; +import java.util.Date; /** * @author sean @@ -24,5 +25,5 @@ public class DeviceFirmwareNoteDTO { private String releaseNote; - private LocalDate releasedTime; + private Date releasedTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceHmsDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceHmsDTO.java index f718d5c..8335546 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceHmsDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceHmsDTO.java @@ -1,11 +1,13 @@ package org.dromara.sample.manage.model.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; +import java.util.Date; /** * @author sean @@ -20,25 +22,33 @@ public class DeviceHmsDTO implements Cloneable { private String hmsId; + @Schema(description = "设备报告 HMS 消息时的tid。") private String tid; + @Schema(description = "当设备报告 hms消息时的bid") private String bid; + @Schema(description = "SN码") private String sn; + @Schema(description = "HMS等级。0:注意;1:警告;2:警告") private Integer level; + @Schema(description = "哪个模块的消息。0:飞行任务;1:设备管理;2:媒体;3:HMS") private Integer module; + @Schema(description = "Hms消息的密钥,根据该密钥获取消息文本。") private String key; + @Schema(description = "Chinese 异常日志") private String messageZh; + @Schema(description = "English 异常日志") private String messageEn; - private LocalDateTime createTime; + private Date createTime; - private LocalDateTime updateTime; + private Date updateTime; @Override public DeviceHmsDTO clone() { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceLogsDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceLogsDTO.java index 1913ec1..b1e31b1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceLogsDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceLogsDTO.java @@ -1,5 +1,6 @@ package org.dromara.sample.manage.model.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -7,6 +8,7 @@ import lombok.NoArgsConstructor; import org.dromara.common.sdk.cloudapi.tsa.TopologyList; import java.time.LocalDateTime; +import java.util.Date; import java.util.List; /** @@ -22,18 +24,23 @@ public class DeviceLogsDTO { private String logsId; - private LocalDateTime happenTime; + @Schema(description = "日志记录问题发生的时间。") + private Date happenTime; + @Schema(description = "创建人") private String userName; private String logsInformation; - private LocalDateTime createTime; + private Date createTime; + @Schema(description = "1:上传中;2:完成;3:取消;4:失败;") private Integer status; + @Schema(description = "设备拓扑列表") private TopologyList deviceTopo; + @Schema(description = "日志进度") private List logsProgress; private LogsFileUploadListDTO deviceLogs; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DevicePayloadDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DevicePayloadDTO.java index 7df3b37..cd4e074 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DevicePayloadDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DevicePayloadDTO.java @@ -1,5 +1,6 @@ package org.dromara.sample.manage.model.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -18,15 +19,20 @@ import org.dromara.common.sdk.cloudapi.device.PayloadIndex; @AllArgsConstructor public class DevicePayloadDTO { + @Schema(description = "设备有效载荷的sn值。") private String payloadSn; + @Schema(description = "载荷模型。此参数对应于设备字典表中的设备名称。") private String payloadName; + @Schema(description = "有效载荷在设备上的位置。") private Integer index; private String payloadDesc; + @Schema(description = "控制状态A控B控") private ControlSourceEnum controlSource; + @Schema(description = "有效载荷在设备上的位置。") private PayloadIndex payloadIndex; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/LiveTypeDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/LiveTypeDTO.java index 45af6ae..44dba2f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/LiveTypeDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/LiveTypeDTO.java @@ -2,6 +2,7 @@ package org.dromara.sample.manage.model.dto; import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.sdk.cloudapi.device.VideoId; import org.dromara.common.sdk.cloudapi.livestream.LensChangeVideoTypeEnum; @@ -17,15 +18,19 @@ import org.dromara.common.sdk.cloudapi.livestream.VideoQualityEnum; @Data public class LiveTypeDTO { + @Schema(description = "直播协议类型(1:RTMP,2:GB28181,4:WebRTC)") @JsonProperty("url_type") private UrlTypeEnum urlType; + @Schema(description = "直播视频流的ID({sn}/{camera_index}/{video_index})") @JsonProperty("video_id") private VideoId videoId; + @Schema(description = "直播质量(0:自适应,1:流畅,2:标清,3:高清,4:超清)") @JsonProperty("video_quality") private VideoQualityEnum videoQuality; + @Schema(description = "镜头参数(wide:广角,zoom:变焦,ir:红外)") private LensChangeVideoTypeEnum videoType; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java index f7a178c..21bb2e1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java @@ -5,8 +5,11 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; /** @@ -68,9 +71,6 @@ public class DeviceEntity implements Serializable { @TableField(value = "url_select") private String urlSelect; - @TableField(value = "user_id") - private String userId; - @TableField(value = "nickname") private String nickname; @@ -84,9 +84,9 @@ public class DeviceEntity implements Serializable { private Boolean boundStatus; @TableField(value = "bound_time") - private Long boundTime; + private LocalDateTime boundTime; @TableField(value = "login_time") - private Long loginTime; + private LocalDateTime loginTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java index 8cebea2..887bd7a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean @@ -50,7 +51,7 @@ public class DeviceFirmwareEntity implements Serializable { private String releaseNote; @TableField("release_date") - private Long releaseDate; + private Date releaseDate; @TableField("status") private Boolean status; @@ -62,9 +63,9 @@ public class DeviceFirmwareEntity implements Serializable { private String username; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceHmsEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceHmsEntity.java index de05c78..8f0f83d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceHmsEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceHmsEntity.java @@ -10,6 +10,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean @@ -56,10 +57,10 @@ public class DeviceHmsEntity implements Serializable, Cloneable { private String messageEn; @TableField("create_time") - private Long createTime; + private Date createTime; @TableField("update_time") - private Long updateTime; + private Date updateTime; @Override public DeviceHmsEntity clone() { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceLogsEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceLogsEntity.java index fef081c..571dce8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceLogsEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceLogsEntity.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; /** * @author sean @@ -38,15 +40,15 @@ public class DeviceLogsEntity implements Serializable { private String deviceSn; @TableField("happen_time") - private Long happenTime; + private Date happenTime; @TableField("status") private Integer status; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/enums/DeviceFirmwareStatusEnum.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/enums/DeviceFirmwareStatusEnum.java index 64a2a72..f3bed17 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/enums/DeviceFirmwareStatusEnum.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/enums/DeviceFirmwareStatusEnum.java @@ -14,21 +14,25 @@ import java.util.Arrays; public enum DeviceFirmwareStatusEnum { /** + * 不需要升级 * no need to upgrade */ NOT_UPGRADE(1), /** + * 需要升级 * to upgraded */ NORMAL_UPGRADE(2), /** + * 需要一致性升级 * A consistency upgrade is required. */ CONSISTENT_UPGRADE(3), /** + * 升级期间 * during upgrade */ UPGRADING(4), diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceLogsCreateParam.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceLogsCreateParam.java index c00ae62..53044de 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceLogsCreateParam.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceLogsCreateParam.java @@ -3,6 +3,7 @@ package org.dromara.sample.manage.model.param; import lombok.Data; import org.dromara.common.sdk.cloudapi.log.FileUploadStartFile; +import java.util.Date; import java.util.List; /** @@ -15,7 +16,7 @@ public class DeviceLogsCreateParam { private String logsInformation; - private Long happenTime; + private Date happenTime; private List files; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFirmwareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFirmwareServiceImpl.java index b1afba3..491658f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFirmwareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFirmwareServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.oss.core.OssClient; import org.dromara.common.oss.factory.OssFactory; import org.dromara.common.redis.config.RedisConst; @@ -268,9 +269,7 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement date = date.substring(0, index); } return Optional.of(DeviceFirmwareDTO.builder() - .releasedTime(LocalDate.parse( - date, - DateTimeFormatter.ofPattern(FirmwareFileProperties.FILENAME_RELEASE_DATE_FORMAT))) + .releasedTime(DateUtils.dateTime(FirmwareFileProperties.FILENAME_RELEASE_DATE_FORMAT,date) ) // delete the string v. .productVersion(filenameArr[FirmwareFileProperties.FILENAME_VERSION_INDEX].substring(1)) .build()); @@ -296,7 +295,7 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement .firmwareVersion(dto.getProductVersion()) .objectKey(dto.getObjectKey()) .releaseDate(Objects.nonNull(dto.getReleasedTime()) ? - dto.getReleasedTime().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli() : null) + dto.getReleasedTime() : null) .releaseNote(dto.getReleaseNote()) .status(dto.getFirmwareStatus()) .workspaceId(dto.getWorkspaceId()) @@ -311,7 +310,7 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement return DeviceFirmwareNoteDTO.builder() .deviceName(entity.getDeviceName()) .productVersion(entity.getFirmwareVersion()) - .releasedTime(LocalDate.ofInstant(Instant.ofEpochMilli(entity.getReleaseDate()), ZoneId.systemDefault())) + .releasedTime(entity.getReleaseDate()) .releaseNote(entity.getReleaseNote()) .build(); } @@ -328,7 +327,7 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement .firmwareId(entity.getFirmwareId()) .fileName(entity.getFileName()) .productVersion(entity.getFirmwareVersion()) - .releasedTime(LocalDate.ofInstant(Instant.ofEpochMilli(entity.getReleaseDate()), ZoneId.systemDefault())) + .releasedTime(entity.getReleaseDate()) .releaseNote(entity.getReleaseNote()) .firmwareStatus(entity.getStatus()) .workspaceId(entity.getWorkspaceId()) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceHmsServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceHmsServiceImpl.java index e115030..a1eedb0 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceHmsServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceHmsServiceImpl.java @@ -1,8 +1,10 @@ package org.dromara.sample.manage.service.impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum; import org.dromara.common.sdk.cloudapi.hms.*; import org.dromara.common.sdk.cloudapi.hms.api.AbstractHmsService; @@ -71,8 +73,8 @@ public class DeviceHmsServiceImpl extends AbstractHmsService implements IDeviceH DeviceHmsEntity entity = DeviceHmsEntity.builder() .bid(response.getBid()) .tid(response.getTid()) - .createTime(response.getTimestamp()) - .updateTime(0L) + .createTime(new Date(response.getTimestamp())) + .updateTime(null) .sn(sn) .build(); // Query all unread hms messages of the device in redis. @@ -134,7 +136,7 @@ public class DeviceHmsServiceImpl extends AbstractHmsService implements IDeviceH @Override public void updateUnreadHms(String deviceSn) { - mapper.update(DeviceHmsEntity.builder().updateTime(System.currentTimeMillis()).build(), + mapper.update(DeviceHmsEntity.builder().updateTime(new Date()).build(), new LambdaUpdateWrapper() .eq(DeviceHmsEntity::getSn, deviceSn) .eq(DeviceHmsEntity::getUpdateTime, 0L)); @@ -149,9 +151,8 @@ public class DeviceHmsServiceImpl extends AbstractHmsService implements IDeviceH return DeviceHmsDTO.builder() .bid(entity.getBid()) .tid(entity.getTid()) - .createTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault())) - .updateTime(entity.getUpdateTime().intValue() == 0 ? - null : LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getUpdateTime()), ZoneId.systemDefault())) + .createTime(entity.getCreateTime()) + .updateTime(entity.getUpdateTime()) .sn(entity.getSn()) .hmsId(entity.getHmsId()) .key(entity.getHmsKey()) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceLogsServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceLogsServiceImpl.java index ebe25f2..ebcef21 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceLogsServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceLogsServiceImpl.java @@ -298,9 +298,8 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice return DeviceLogsDTO.builder() .logsId(entity.getLogsId()) - .createTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault())) - .happenTime(Objects.isNull(entity.getHappenTime()) ? - null : LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getHappenTime()), ZoneId.systemDefault())) + .createTime(entity.getCreateTime()) + .happenTime(entity.getHappenTime()) .status(entity.getStatus()) .logsInformation(entity.getLogsInfo()) .userName(entity.getUsername()) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java index 0f8bef4..4f5bc3f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java @@ -288,7 +288,6 @@ public class DeviceServiceImpl implements IDeviceService { .setUserCallsign(device.getNickname()) .setBoundStatus(device.getBoundStatus()) .setModel(device.getDeviceName()) - .setUserId(device.getUserId()) .setDomain(device.getDomain()) .setGatewaySn(device.getParentSn()); } @@ -367,10 +366,9 @@ public class DeviceServiceImpl implements IDeviceService { .setSelectIconUrl(entity.getUrlSelect())) .boundStatus(entity.getBoundStatus()) .loginTime(entity.getLoginTime() != null ? - LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getLoginTime()), ZoneId.systemDefault()) + entity.getLoginTime() : null) - .boundTime(entity.getBoundTime() != null ? - LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getBoundTime()), ZoneId.systemDefault()) + .boundTime(entity.getBoundTime() != null ?entity.getBoundTime() : null) .nickname(entity.getNickname()) .firmwareVersion(entity.getFirmwareVersion()) @@ -498,7 +496,6 @@ public class DeviceServiceImpl implements IDeviceService { DeviceDTO device = DeviceDTO.builder() .deviceSn(deviceSn) .workspaceId("") - .userId("") .boundStatus(false) .build(); this.updateDevice(device); @@ -657,7 +654,6 @@ public class DeviceServiceImpl implements IDeviceService { .map(ControlSourceEnum::getControlSource).orElse(null)) .deviceName(dto.getDeviceName()) .version(dto.getThingVersion()) - .userId(dto.getUserId()) .nickname(dto.getNickname()) .workspaceId(dto.getWorkspaceId()) .boundStatus(dto.getBoundStatus()) @@ -665,9 +661,9 @@ public class DeviceServiceImpl implements IDeviceService { .deviceType(Optional.ofNullable(dto.getType()).map(DeviceTypeEnum::getType).orElse(null)) .subType(Optional.ofNullable(dto.getSubType()).map(DeviceSubTypeEnum::getSubType).orElse(null)) .loginTime(dto.getLoginTime() != null ? - dto.getLoginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : null) + dto.getLoginTime() : null) .boundTime(dto.getBoundTime() != null ? - dto.getBoundTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : null) + dto.getBoundTime() : null) .childSn(dto.getChildDeviceSn()) .firmwareVersion(dto.getFirmwareVersion()) .compatibleStatus(dto.getFirmwareStatus() == null ? null : diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java index 9b6c27a..15bbaf8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java @@ -26,9 +26,8 @@ public class DeviceDataController { @Autowired private IDeviceDataService deviceDataService; - @GetMapping("/device-status") - public HttpResultResponse> getDeviceFlightAreaStatus() { - LoginUser loginUser = LoginHelper.getLoginUser(); - return HttpResultResponse.success(deviceDataService.getDevicesDataStatus(loginUser.getTenantId())); + @GetMapping("/{workspace_id}/device-status") + public HttpResultResponse> getDeviceFlightAreaStatus(@PathVariable(name = "workspace_id") String workspaceId) { + return HttpResultResponse.success(deviceDataService.getDevicesDataStatus(workspaceId)); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/FlightAreaController.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/FlightAreaController.java index 3bc5fd2..6ada77e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/FlightAreaController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/FlightAreaController.java @@ -1,5 +1,7 @@ package org.dromara.sample.map.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import org.dromara.common.satoken.utils.LoginHelper; @@ -23,43 +25,46 @@ import java.util.List; */ @RestController @RequestMapping("${url.map.prefix}${url.map.version}/workspaces") +@Tag(name = "无人机区域文件模块") public class FlightAreaController { @Autowired private IFlightAreaService flightAreaService; @GetMapping("/{workspace_id}/flight-areas") - public HttpResultResponse> getFlightAreas() { - LoginUser loginUser = LoginHelper.getLoginUser(); - return HttpResultResponse.success(flightAreaService.getFlightAreaList(loginUser.getTenantId())); + @Operation(summary = "获取区域信息", description = "获取区域信息") + public HttpResultResponse> getFlightAreas(@PathVariable(name = "workspace_id") String workspaceId) { + return HttpResultResponse.success(flightAreaService.getFlightAreaList(workspaceId)); } - @PostMapping("/flight-area") - public HttpResultResponse createFlightArea(@Valid @RequestBody PostFlightAreaParam param, HttpServletRequest req) { + @PostMapping("/{workspace_id}/flight-area") + @Operation(summary = "创建区域信息", description = "创建区域信息") + public HttpResultResponse createFlightArea(@PathVariable(name = "workspace_id") String workspaceId, + @Valid @RequestBody PostFlightAreaParam param, HttpServletRequest req) { LoginUser loginUser = LoginHelper.getLoginUser(); - flightAreaService.createFlightArea(loginUser.getTenantId(), loginUser.getUsername(), param); + flightAreaService.createFlightArea(workspaceId, loginUser.getUsername(), param); return HttpResultResponse.success(); } @DeleteMapping("/flight-area/{area_id}") - public HttpResultResponse deleteFlightArea(@PathVariable(name = "area_id") String areaId) { - LoginUser loginUser = LoginHelper.getLoginUser(); - flightAreaService.deleteFlightArea(loginUser.getTenantId(), areaId); + @Operation(summary = "删除区域信息", description = "删除区域信息") + public HttpResultResponse deleteFlightArea(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "area_id") String areaId) { + flightAreaService.deleteFlightArea(workspaceId, areaId); return HttpResultResponse.success(); } @PutMapping("/flight-area/{area_id}") - public HttpResultResponse updateFlightArea(@PathVariable(name = "area_id") String areaId, + @Operation(summary = "更新区域信息", description = "更新区域信息") + public HttpResultResponse updateFlightArea(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "area_id") String areaId, @RequestBody PutFlightAreaParam param) { - LoginUser loginUser = LoginHelper.getLoginUser(); - flightAreaService.updateFlightArea(loginUser.getTenantId(), areaId, param); + flightAreaService.updateFlightArea(workspaceId, areaId, param); return HttpResultResponse.success(); } @PostMapping("/{workspace_id}/flight-area/sync") - public HttpResultResponse syncFlightArea(@RequestBody @Valid SyncFlightAreaParam param) { - LoginUser loginUser = LoginHelper.getLoginUser(); - flightAreaService.syncFlightArea(loginUser.getTenantId(), param.getDeviceSns()); + @Operation(summary = "同步区域信息到机场端", description = "同步区域信息到机场端") + public HttpResultResponse syncFlightArea(@PathVariable(name = "workspace_id") String workspaceId,@RequestBody @Valid SyncFlightAreaParam param) { + flightAreaService.syncFlightArea(workspaceId, param.getDeviceSns()); return HttpResultResponse.success(); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/WorkspaceElementController.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/WorkspaceElementController.java index 936f207..ca2cb87 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/WorkspaceElementController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/WorkspaceElementController.java @@ -1,5 +1,7 @@ package org.dromara.sample.map.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; @@ -27,6 +29,7 @@ import java.util.List; * @date 2021/11/29 */ @RestController +@Tag(name = "工作区元素表模块") public class WorkspaceElementController implements IHttpMapService { @Autowired @@ -40,6 +43,7 @@ public class WorkspaceElementController implements IHttpMapService { * @return */ @DeleteMapping("${url.map.prefix}${url.map.version}/workspaces/element-groups/{group_id}/elements") + @Operation(summary = "根据组id删除此组中的所有元素信息", description = "根据组id删除此组中的所有元素信息") public HttpResultResponse deleteAllElementByGroupId(@PathVariable(name = "group_id") String groupId) { LoginUser loginUser = LoginHelper.getLoginUser(); return elementService.deleteAllElementByGroupId(loginUser.getTenantId(), groupId); @@ -57,9 +61,8 @@ public class WorkspaceElementController implements IHttpMapService { * @return */ @Override - public HttpResultResponse> getMapElements( String groupId, Boolean isDistributed, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - List groupsList = elementService.getAllGroupsByWorkspaceId(loginUser.getTenantId(), groupId, isDistributed); + public HttpResultResponse> getMapElements( String workspaceId, String groupId, Boolean isDistributed, HttpServletRequest req, HttpServletResponse rsp) { + List groupsList = elementService.getAllGroupsByWorkspaceId(workspaceId, groupId, isDistributed); return HttpResultResponse.>success(groupsList); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaDTO.java index cae7c19..d857034 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaDTO.java @@ -6,6 +6,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.dromara.common.sdk.cloudapi.flightarea.GeofenceTypeEnum; +import java.util.Date; + /** * @author sean * @version 1.9 @@ -29,7 +31,7 @@ public class FlightAreaDTO { private String username; - private Long createTime; + private Date createTime; - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaWs.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaWs.java index d46add3..968e650 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaWs.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/FlightAreaWs.java @@ -4,6 +4,8 @@ import org.dromara.common.sdk.cloudapi.flightarea.GeofenceTypeEnum; import org.dromara.sample.map.model.enums.FlightAreaOpertaionEnum; import lombok.*; +import java.util.Date; + /** * @author sean * @version 1.9 @@ -29,8 +31,8 @@ public class FlightAreaWs { private String username; - private Long createTime; + private Date createTime; - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/GroupElementDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/GroupElementDTO.java index a206da7..b78bee6 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/GroupElementDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/dto/GroupElementDTO.java @@ -8,6 +8,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.dromara.common.sdk.cloudapi.map.ElementResource; +import java.util.Date; + /** * @author sean * @version 0.2 @@ -26,10 +28,10 @@ public class GroupElementDTO { private String name; @JsonProperty(value = "create_time") - private Long createTime; + private Date createTime; @JsonProperty(value = "update_time") - private Long updateTime; + private Date updateTime; private ElementResource resource; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupElementEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupElementEntity.java index 0efea21..553b018 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupElementEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupElementEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean @@ -48,8 +49,8 @@ public class GroupElementEntity implements Serializable { private Boolean clampToGround; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java index 1da1fa1..e2a26be 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/map/service/impl/FlightAreaServiceImpl.java @@ -103,7 +103,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements public void createFlightArea(String workspaceId, String username, PostFlightAreaParam param) { Optional groupOpt = groupService.getCustomGroupByWorkspaceId(workspaceId); if (groupOpt.isEmpty()) { - throw new RuntimeException("The custom flight area group does not exist, please create it first."); + throw new RuntimeException("自定义飞行区域组不存在,请先创建。"); } ElementGeometryType geometry = param.getContent().getGeometry(); String type = geometry.getType(); @@ -135,7 +135,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements int id = flightAreaPropertyServices.saveProperty(property); if (id <= 0) { - throw new RuntimeException("Failed to save flight area properties."); + throw new RuntimeException("无法保存飞行区域属性。"); } flightAreaFileService.setNonLatestByWorkspaceId(workspaceId); @@ -146,8 +146,8 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements .username(username) .type(param.getType()) .name(param.getName()) - .updateTime(System.currentTimeMillis()) - .createTime(System.currentTimeMillis()) + .updateTime(new Date()) + .createTime(new Date()) .content(FlightAreaContent.builder().geometry(geometry).properties(param.getContent().getProperties()).build()) .status(true) .build()); @@ -182,7 +182,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements } int id = flightAreaPropertyServices.deleteProperty(areaId); if (id <= 0) { - throw new RuntimeException("Failed to delete the flight area property."); + throw new RuntimeException("无法删除飞行区域属性。"); } flightAreaFileService.setNonLatestByWorkspaceId(workspaceId); WebSocketUtils.publishAll( BizCodeEnum.FLIGHT_AREAS_UPDATE.getCode(), @@ -218,7 +218,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements int id = flightAreaPropertyServices.updateProperty(FlightAreaPropertyUpdate.builder() .elementId(areaId).status(param.getStatus()).radius(radius).build()); if (id <= 0) { - throw new RuntimeException("Failed to update flight area properties."); + throw new RuntimeException("未能更新飞行区域属性。"); } flightAreaFileService.setNonLatestByWorkspaceId(workspaceId); Optional areaOpt = getFlightAreaByAreaId(areaId); @@ -242,7 +242,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements public TopicEventsResponse flightAreasSyncProgress(TopicEventsRequest request, MessageHeaders headers) { Optional deviceOpt = deviceRedisService.getDeviceOnline(request.getGateway()); if (deviceOpt.isEmpty()) { - log.warn("method: flight_areas_sync_progress. Dock is offline."); + log.warn("方法:flight_areas_sync_progress。Dock 已离线。"); return null; } @@ -270,7 +270,7 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements public TopicEventsResponse flightAreasDroneLocation(TopicEventsRequest request, MessageHeaders headers) { Optional deviceOpt = deviceRedisService.getDeviceOnline(request.getGateway()); if (deviceOpt.isEmpty()) { - log.warn("method: flight_areas_drone_location. Dock is offline."); + log.warn("方法:flight areas_drone_locations。码头离线。"); return null; } if (request.getData().getDroneLocations().isEmpty()) { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java index 1f6f24e..f0c332c 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java @@ -1,5 +1,7 @@ package org.dromara.sample.media.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sdk.common.HttpResultResponse; @@ -20,6 +22,7 @@ import java.net.URL; */ @RestController @RequestMapping("${url.media.prefix}${url.media.version}/files") +@Tag(name = "无人机媒体文件模块") public class FileController { @Autowired @@ -30,11 +33,12 @@ public class FileController { * Get information about all the media files in this workspace based on the workspace id. * @return */ - @GetMapping("/files") + @GetMapping("/{workspace_id}/files") + @Operation(summary = "根据工作区id获取此工作区中所有媒体文件的信息。", description = "根据工作区id获取此工作区中所有媒体文件的信息。") public HttpResultResponse> getFilesList(@RequestParam(defaultValue = "1") Long page, - @RequestParam(name = "page_size", defaultValue = "10") Long pageSize) { - LoginUser loginUser = LoginHelper.getLoginUser(); - PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(loginUser.getTenantId(), page, pageSize); + @RequestParam(name = "page_size", defaultValue = "10") Long pageSize, + @PathVariable(name = "workspace_id") String workspaceId) { + PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize); return HttpResultResponse.success(filesList); } @@ -46,11 +50,12 @@ public class FileController { * @param fileId * @param response */ - @GetMapping("/file/{file_id}/url") - public void getFileUrl(@PathVariable(name = "file_id") String fileId, HttpServletResponse response) { - LoginUser loginUser = LoginHelper.getLoginUser(); + @Operation(summary = "根据媒体文件id查询文件的下载地址。", description = "根据媒体文件id查询文件的下载地址,。") + @GetMapping("/{workspace_id}/file/{file_id}/url") + public void getFileUrl(@PathVariable(name = "workspace_id") String workspaceId, + @PathVariable(name = "file_id") String fileId, HttpServletResponse response) { try { - URL url = fileService.getObjectUrl(loginUser.getTenantId(), fileId); + URL url = fileService.getObjectUrl(workspaceId, fileId); response.sendRedirect(url.toString()); } catch (IOException e) { e.printStackTrace(); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java index 0d48b97..2fe3bc4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java @@ -1,5 +1,6 @@ package org.dromara.sample.media.controller; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; @@ -12,6 +13,7 @@ import org.dromara.sample.media.service.IMediaService; import lombok.extern.slf4j.Slf4j; import org.dromara.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -23,53 +25,55 @@ import java.util.List; */ @Slf4j @RestController +@Tag(name = "媒体接口") public class MediaController implements IHttpMediaService { @Autowired private IMediaService mediaService; /** + * 检查文件是否已通过指纹上传。 * Check if the file has been uploaded by the fingerprint. * @param request * @return */ @Override - public HttpResultResponse mediaFastUpload( @Valid MediaFastUploadRequest request, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - boolean isExist = mediaService.fastUpload(loginUser.getTenantId(), request.getFingerprint()); + public HttpResultResponse mediaFastUpload( String workspaceId,@Valid MediaFastUploadRequest request, HttpServletRequest req, HttpServletResponse rsp) { + boolean isExist = mediaService.fastUpload(workspaceId, request.getFingerprint()); return isExist ? HttpResultResponse.success() : HttpResultResponse.error(request.getFingerprint() + "don't exist."); } /** + * 当文件由Pilot上传到存储服务器时,文件的基本信息通过此接口报告。 * When the file is uploaded to the storage server by pilot, * the basic information of the file is reported through this interface. * @param request * @return */ @Override - public HttpResultResponse mediaUploadCallback( @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - mediaService.saveMediaFile(loginUser.getTenantId(), request); + public HttpResultResponse mediaUploadCallback( String workspaceId, @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { + mediaService.saveMediaFile(workspaceId, request); return HttpResultResponse.success(request.getObjectKey()); } /** + * 根据工作区ID和一组小指纹查询此工作区中已存在的文件。 + * 请求体中只有一个tiny_fingerprint参数。 + * 但是不建议使用 Map 来接收参数。 * Query the files that already exist in this workspace based on the workspace id and the collection of tiny fingerprints. * @param request There is only one tiny_fingerprint parameter in the body. * But it is not recommended to use Map to receive the parameter. * @return */ @Override - public HttpResultResponse getExistFileTinyFingerprint(@Valid GetFileFingerprintRequest request, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - List existingList = mediaService.getExistTinyFingerprints(loginUser.getTenantId(), request.getTinyFingerprints()); + public HttpResultResponse getExistFileTinyFingerprint( String workspaceId, @Valid GetFileFingerprintRequest request, HttpServletRequest req, HttpServletResponse rsp) { + List existingList = mediaService.getExistTinyFingerprints(workspaceId, request.getTinyFingerprints()); return HttpResultResponse.success(new GetFileFingerprintResponse().setTinyFingerprints(existingList)); } @Override - public HttpResultResponse folderUploadCallback( @Valid FolderUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); + public HttpResultResponse folderUploadCallback(String workspaceId, @Valid FolderUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { return null; } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java index 18dd636..1753835 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java @@ -1,11 +1,13 @@ package org.dromara.sample.media.model; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; +import java.util.Date; /** * @author sean @@ -20,25 +22,34 @@ public class MediaFileDTO { private String fileId; + @Schema(description = "文件名") private String fileName; + @Schema(description = "文件的路径") private String filePath; + @Schema(description = "文件所属的工作区") private String objectKey; + @Schema(description = "文件所属的工作区") private String subFileType; + @Schema(description = "文件所属的工作区") private Boolean isOriginal; + @Schema(description = "创建文件的无人机的sn。") private String drone; + @Schema(description = "创建文件的无人机有效载荷的名称。") private String payload; + @Schema(description = "文件的小指纹。此属性仅适用于由Pilot上传的媒体文件") private String tinnyFingerprint; + @Schema(description = "文件的指纹。此属性仅适用于由Pilot上传的媒体文件。") private String fingerprint; - private LocalDateTime createTime; + private Date createTime; private String jobId; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java index d90f04e..e86035e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; /** * @author sean @@ -60,9 +61,9 @@ public class MediaFileEntity implements Serializable { private String jobId; @TableField(value = "create_time", fill = FieldFill.INSERT) - private Long createTime; + private Date createTime; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - private Long updateTime; + private Date updateTime; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java index 6a77a49..0479393 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java @@ -162,8 +162,7 @@ public class FileServiceImpl implements IFileService { .objectKey(entity.getObjectKey()) .tinnyFingerprint(entity.getTinnyFingerprint()) .payload(entity.getPayload()) - .createTime(LocalDateTime.ofInstant( - Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault())) + .createTime(entity.getCreateTime()) .drone(entity.getDrone()) .jobId(entity.getJobId()); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/storage/controller/StorageController.java b/dk-modules/sample/src/main/java/org/dromara/sample/storage/controller/StorageController.java index c3376b9..f251885 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/storage/controller/StorageController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/storage/controller/StorageController.java @@ -1,5 +1,6 @@ package org.dromara.sample.storage.controller; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.satoken.utils.LoginHelper; @@ -19,18 +20,19 @@ import org.springframework.web.bind.annotation.RestController; * @date 2021/12/29 */ @RestController +@Tag(name="凭证信息") public class StorageController implements IHttpStorageService { @Autowired private IStorageService storageService; /** + * 获取临时凭据以在DJI Pilot中上传媒体和路标。 * Get temporary credentials for uploading the media and wayline in DJI Pilot. * @return */ @Override - public HttpResultResponse getTemporaryCredential( HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); + public HttpResultResponse getTemporaryCredential(String workspaceId, HttpServletRequest req, HttpServletResponse rsp) { StsCredentialsResponse stsCredentials = storageService.getSTSCredentials(); return HttpResultResponse.success(stsCredentials); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java index b10a78f..db4995d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java @@ -1,6 +1,7 @@ package org.dromara.sample.wayline.controller; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; @@ -36,53 +37,57 @@ import java.util.stream.Collectors; * @date 2021/12/22 */ @RestController +@Tag(name="凭证信息") public class WaylineFileController implements IHttpWaylineService { @Autowired private IWaylineFileService waylineFileService; /** + * 根据waylineID删除工作区中的wayline文件。 * Delete the wayline file in the workspace according to the wayline id. * @param waylineId * @return */ - @DeleteMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/waylines/{wayline_id}") - public HttpResultResponse deleteWayline(@PathVariable(name = "wayline_id") String waylineId) { - LoginUser loginUser = LoginHelper.getLoginUser(); - boolean isDel = waylineFileService.deleteByWaylineId(loginUser.getTenantId(), waylineId); + @DeleteMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/{wayline_id}") + public HttpResultResponse deleteWayline(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "wayline_id") String waylineId) { + boolean isDel = waylineFileService.deleteByWaylineId(workspaceId, waylineId); return isDel ? HttpResultResponse.success() : HttpResultResponse.error("航线删除失败"); } /** + * 导入kmz航路文件。 * Import kmz wayline files. * @param file * @return */ - @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/waylines/file/upload") - public HttpResultResponse importKmzFile(HttpServletRequest request, MultipartFile file) { + @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/upload") + public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file) { if (Objects.isNull(file)) { - return HttpResultResponse.error("No file received."); + return HttpResultResponse.error("未收到文件。"); } LoginUser loginUser = LoginHelper.getLoginUser(); String creator = loginUser.getUsername(); - waylineFileService.importKmzFile(file, loginUser.getTenantId(), creator); + waylineFileService.importKmzFile(file, workspaceId, creator); return HttpResultResponse.success(); } /** + * 根据查询条件查询路线文件的基本数据。 + * 试点中的查询条件字段是固定的。 * Query the basic data of the wayline file according to the query conditions. * The query condition field in pilot is fixed. * @param request * @return */ @Override - public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - PaginationData data = waylineFileService.getWaylinesByParam(loginUser.getTenantId(), request); + public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId, HttpServletRequest req, HttpServletResponse rsp) { + PaginationData data = waylineFileService.getWaylinesByParam(workspaceId, request); return HttpResultResponse.success(data); } /** + * 根据 wayline 文件 ID 查询文件的下载地址,并直接重定向到此地址进行下载。 * Query the download address of the file according to the wayline file id, * and redirect to this address directly for download. * @param waylineId @@ -90,10 +95,9 @@ public class WaylineFileController implements IHttpWaylineService { * @param rsp */ @Override - public void getWaylineFileDownloadAddress( String waylineId, HttpServletRequest req, HttpServletResponse rsp) { + public void getWaylineFileDownloadAddress( String workspaceId,String waylineId, HttpServletRequest req, HttpServletResponse rsp) { try { - LoginUser loginUser = LoginHelper.getLoginUser(); - URL url = waylineFileService.getObjectUrl(loginUser.getTenantId(), waylineId); + URL url = waylineFileService.getObjectUrl(workspaceId, waylineId); rsp.sendRedirect(url.toString()); } catch (IOException | SQLException e) { @@ -102,27 +106,30 @@ public class WaylineFileController implements IHttpWaylineService { } /** + * 检查名称是否已经存在,根据方式名称必须确保方式名称的唯一性。 + * 当上传路径线时,将调用此接口,并且必须可用。 * Checking whether the name already exists according to the wayline name must ensure the uniqueness of the wayline name. * This interface will be called when uploading waylines and must be available. * @param names * @return */ @Override - public HttpResultResponse> getDuplicatedWaylineName(@NotNull @Size(min = 1) List names, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - List existNamesList = waylineFileService.getDuplicateNames(loginUser.getTenantId(), names); + public HttpResultResponse> getDuplicatedWaylineName(String workspaceId,@NotNull @Size(min = 1) List names, HttpServletRequest req, HttpServletResponse rsp) { + List existNamesList = waylineFileService.getDuplicateNames(workspaceId, names); return HttpResultResponse.success(existNamesList); } /** + * 当航线文件由飞行员上传到存储服务器时, + * 通过此接口报告文件的基本信息。 * When the wayline file is uploaded to the storage server by pilot, * the basic information of the file is reported through this interface. * @param request * @return */ @Override - public HttpResultResponse fileUploadResultReport( @Valid WaylineUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { + public HttpResultResponse fileUploadResultReport(String workspaceId, @Valid WaylineUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { LoginUser loginUser = LoginHelper.getLoginUser(); WaylineUploadCallbackMetadata metadata = request.getMetadata(); @@ -136,38 +143,40 @@ public class WaylineFileController implements IHttpWaylineService { .droneModelKey(metadata.getDroneModelKey().getDevice()) .build(); - int id = waylineFileService.saveWaylineFile(loginUser.getTenantId(), file); + int id = waylineFileService.saveWaylineFile(workspaceId, file); return id <= 0 ? HttpResultResponse.error() : HttpResultResponse.success(); } /** + * 根据 wayline 文件 id 收藏 wayline 文件。 * Favorite the wayline file according to the wayline file id. * @param ids wayline file id * @return */ @Override - public HttpResultResponse batchFavoritesWayline( @NotNull @Size(min = 1) List ids, HttpServletRequest req, HttpServletResponse rsp) { + public HttpResultResponse batchFavoritesWayline(String workspaceId, @NotNull @Size(min = 1) List ids, HttpServletRequest req, HttpServletResponse rsp) { LoginUser loginUser = LoginHelper.getLoginUser(); - boolean isMark = waylineFileService.markFavorite(loginUser.getTenantId(), ids, true); + boolean isMark = waylineFileService.markFavorite(workspaceId, ids, true); return isMark ? HttpResultResponse.success() : HttpResultResponse.error(); } /** + * 根据 wayline 文件 id 删除该 wayline 文件的收藏夹。 * Delete the favorites of this wayline file based on the wayline file id. * @param ids wayline file id * @return */ @Override - public HttpResultResponse batchUnfavoritesWayline(@NotNull @Size(min = 1) List ids, HttpServletRequest req, HttpServletResponse rsp) { - LoginUser loginUser = LoginHelper.getLoginUser(); - boolean isMark = waylineFileService.markFavorite(loginUser.getTenantId(), ids, false); + public HttpResultResponse batchUnfavoritesWayline(String workspaceId,@NotNull @Size(min = 1) List ids, HttpServletRequest req, HttpServletResponse rsp) { + boolean isMark = waylineFileService.markFavorite(workspaceId, ids, false); return isMark ? HttpResultResponse.success() : HttpResultResponse.error(); } /** + * 导入 kmz wayline 文件。 * Import kmz wayline files. * @return */ diff --git a/dk-visual/nacos/src/main/resources/application.properties b/dk-visual/nacos/src/main/resources/application.properties index 972740f..44fe8a3 100644 --- a/dk-visual/nacos/src/main/resources/application.properties +++ b/dk-visual/nacos/src/main/resources/application.properties @@ -40,9 +40,9 @@ spring.sql.init.platform=mysql db.num=1 ### Connect URL of DB: -db.url.0=jdbc:mysql://127.0.0.1:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true +db.url.0=jdbc:mysql://114.235.183.147:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true db.user.0=root -db.password.0=123456 +db.password.0=dkcy@yf ### the maximum retry times for push nacos.config.push.maxRetryTime=50 diff --git a/pom.xml b/pom.xml index 23aa72a..2eff724 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ dev - 114.235.183.147:8848 + 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP nacos