Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
GeoFlyApi
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
GeoFly
GeoFlyApi
Commits
744cfdef
Commit
744cfdef
authored
Apr 10, 2025
by
gdj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wayline航线增加文件夹结构。
parent
15078c7f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
280 additions
and
4 deletions
+280
-4
sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+108
-4
sample/src/main/java/com/dji/sample/wayline/model/dto/WaylineFileDTO.java
+11
-0
sample/src/main/java/com/dji/sample/wayline/model/dto/WaylineFileTreeVO.java
+56
-0
sample/src/main/java/com/dji/sample/wayline/model/entity/WaylineFileEntity.java
+15
-0
sample/src/main/java/com/dji/sample/wayline/model/enums/WaylineFileTypeEnum.java
+42
-0
sample/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
+48
-0
sample/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
+0
-0
No files found.
sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
View file @
744cfdef
...
...
@@ -2,6 +2,7 @@ package com.dji.sample.wayline.controller;
import
com.dji.sample.common.model.CustomClaim
;
import
com.dji.sample.wayline.model.dto.WaylineFileDTO
;
import
com.dji.sample.wayline.model.dto.WaylineFileTreeVO
;
import
com.dji.sample.wayline.service.IWaylineFileService
;
import
com.dji.sdk.cloudapi.device.DeviceEnum
;
import
com.dji.sdk.cloudapi.wayline.*
;
...
...
@@ -9,10 +10,7 @@ import com.dji.sdk.cloudapi.wayline.api.IHttpWaylineService;
import
com.dji.sdk.common.HttpResultResponse
;
import
com.dji.sdk.common.PaginationData
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -168,4 +166,110 @@ public class WaylineFileController implements IHttpWaylineService {
return
isMark
?
HttpResultResponse
.
success
()
:
HttpResultResponse
.
error
();
}
/**
* Import kmz wayline files with parentId.
* @param file
* @return
*/
@PostMapping
(
"${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/uploadWithParentId"
)
public
HttpResultResponse
importKmzFileWithParentId
(
HttpServletRequest
request
,
MultipartFile
file
,
@RequestParam
(
name
=
"parent_id"
,
required
=
false
)
String
parentId
)
{
if
(
Objects
.
isNull
(
file
))
{
return
HttpResultResponse
.
error
(
"No file received."
);
}
CustomClaim
customClaim
=
(
CustomClaim
)
request
.
getAttribute
(
TOKEN_CLAIM
);
String
workspaceId
=
customClaim
.
getWorkspaceId
();
String
creator
=
customClaim
.
getUsername
();
waylineFileService
.
importKmzFile
(
file
,
workspaceId
,
creator
,
parentId
);
return
HttpResultResponse
.
success
();
}
/**
* add new directory
* @param workspaceId
* @param waylineFileDTO
* @return
*/
@PostMapping
(
PREFIX
+
"/workspaces/{workspace_id}/addDirectory"
)
public
HttpResultResponse
addDirectory
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestBody
WaylineFileDTO
waylineFileDTO
)
{
Integer
addDirId
=
waylineFileService
.
addDirectory
(
workspaceId
,
waylineFileDTO
);
return
addDirId
>
0
?
HttpResultResponse
.
success
()
:
HttpResultResponse
.
error
();
}
/**
* get directory tree
* @param workspaceId
* @return
*/
@GetMapping
(
PREFIX
+
"/workspaces/{workspace_id}/getDirectoryTree"
)
public
HttpResultResponse
getDirectoryTree
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
)
{
List
<
WaylineFileTreeVO
>
treeVOS
=
waylineFileService
.
getDirectoryTree
(
workspaceId
);
return
HttpResultResponse
.
success
(
treeVOS
);
}
/**
* get directory tree
* @param workspaceId
* @return
*/
@GetMapping
(
PREFIX
+
"/workspaces/{workspace_id}/getWaylineFileTree"
)
public
HttpResultResponse
getWaylineFileTree
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestParam
(
name
=
"waylineFileId"
)
String
id
)
{
List
<
WaylineFileTreeVO
>
treeVOS
=
waylineFileService
.
getWaylineFileTree
(
workspaceId
,
id
);
return
HttpResultResponse
.
success
(
treeVOS
);
}
/**
* get directory tree
* @param workspaceId
* @return
*/
@PostMapping
(
PREFIX
+
"/workspaces/{workspace_id}/updateParent"
)
public
HttpResultResponse
updateParent
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestBody
WaylineFileDTO
waylineFileDTO
)
{
waylineFileService
.
updateParentId
(
waylineFileDTO
.
getWaylineId
(),
waylineFileDTO
.
getParentId
());
return
HttpResultResponse
.
success
();
}
/**
* get directory tree
* @param workspaceId
* @return
*/
@DeleteMapping
(
PREFIX
+
"/workspaces/{workspace_id}/deleteDirectory"
)
public
HttpResultResponse
deleteDirectory
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestParam
(
name
=
"waylineFileId"
)
String
id
)
{
waylineFileService
.
deleteDirectory
(
workspaceId
,
id
);
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
* @param workspaceId
* @return
*/
@GetMapping
(
PREFIX
+
"/workspaces/{workspace_id}/getFileListByParentId"
)
public
HttpResultResponse
<
PaginationData
<
GetWaylineListResponse
>>
getFileListByParentId
(
@Valid
GetWaylineListRequest
request
,
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestParam
(
name
=
"parent_id"
,
defaultValue
=
"0"
)
String
parentId
,
HttpServletRequest
req
,
HttpServletResponse
rsp
)
{
PaginationData
<
GetWaylineListResponse
>
data
=
waylineFileService
.
getWaylinesByParam
(
workspaceId
,
parentId
,
request
);
return
HttpResultResponse
.
success
(
data
);
}
}
sample/src/main/java/com/dji/sample/wayline/model/dto/WaylineFileDTO.java
View file @
744cfdef
package
com
.
dji
.
sample
.
wayline
.
model
.
dto
;
import
com.fasterxml.jackson.annotation.JsonAlias
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
...
...
@@ -37,7 +38,17 @@ public class WaylineFileDTO {
private
String
objectKey
;
@JsonProperty
(
"user_name"
)
@JsonAlias
(
"username"
)
private
String
username
;
private
Long
updateTime
;
@JsonAlias
(
"parentId"
)
private
String
parentId
;
private
String
ancestors
;
@JsonAlias
(
"isDir"
)
private
Integer
isDir
;
}
sample/src/main/java/com/dji/sample/wayline/model/dto/WaylineFileTreeVO.java
0 → 100644
View file @
744cfdef
package
com
.
dji
.
sample
.
wayline
.
model
.
dto
;
import
com.fasterxml.jackson.annotation.JsonAlias
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author sean
* @version 0.3
* @date 2021/12/22
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
WaylineFileTreeVO
{
private
String
name
;
@JsonProperty
(
"id"
)
private
String
waylineId
;
private
String
droneModelKey
;
private
String
sign
;
private
List
<
String
>
payloadModelKeys
;
private
Boolean
favorited
;
private
List
<
Integer
>
templateTypes
;
private
String
objectKey
;
@JsonProperty
(
"user_name"
)
@JsonAlias
(
"username"
)
private
String
username
;
private
Long
updateTime
;
@JsonAlias
(
"parentId"
)
private
String
parentId
;
private
String
ancestors
;
@JsonAlias
(
"isDir"
)
private
Integer
isDir
;
private
List
<
WaylineFileTreeVO
>
children
;
}
sample/src/main/java/com/dji/sample/wayline/model/entity/WaylineFileEntity.java
View file @
744cfdef
...
...
@@ -59,4 +59,19 @@ public class WaylineFileEntity implements Serializable {
@TableField
(
value
=
"update_time"
,
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Long
updateTime
;
@TableField
(
"parent_id"
)
private
String
parentId
;
@TableField
(
"ancestors"
)
private
String
ancestors
;
/**
* 0 file 1 dir
*/
@TableField
(
"is_dir"
)
private
Integer
isDir
;
// @TableLogic
@TableField
(
"is_deleted"
)
private
Boolean
isDeleted
;
}
sample/src/main/java/com/dji/sample/wayline/model/enums/WaylineFileTypeEnum.java
0 → 100644
View file @
744cfdef
package
com
.
dji
.
sample
.
wayline
.
model
.
enums
;
import
com.fasterxml.jackson.annotation.JsonCreator
;
import
com.fasterxml.jackson.annotation.JsonValue
;
import
java.util.Arrays
;
import
java.util.Optional
;
/**
* @author guan
* @version 9.23
* @date 2025/3/21
*/
public
enum
WaylineFileTypeEnum
{
FILE
(
0
,
"file"
),
DIRECTORY
(
1
,
"directory"
);
int
val
;
String
type
;
WaylineFileTypeEnum
(
int
val
,
String
type
)
{
this
.
val
=
val
;
this
.
type
=
type
;
}
@JsonValue
public
int
getVal
()
{
return
val
;
}
@JsonCreator
(
mode
=
JsonCreator
.
Mode
.
DELEGATING
)
public
static
WaylineFileTypeEnum
find
(
Integer
val
)
{
return
Arrays
.
stream
(
values
()).
filter
(
fileTypeEnum
->
fileTypeEnum
.
val
==
val
).
findAny
().
get
();
}
public
static
Optional
<
WaylineFileTypeEnum
>
find
(
String
type
)
{
return
Arrays
.
stream
(
values
()).
filter
(
fileTypeEnum
->
fileTypeEnum
.
type
.
equals
(
type
)).
findAny
();
}
}
sample/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
View file @
744cfdef
package
com
.
dji
.
sample
.
wayline
.
service
;
import
com.dji.sample.wayline.model.dto.WaylineFileDTO
;
import
com.dji.sample.wayline.model.dto.WaylineFileTreeVO
;
import
com.dji.sdk.cloudapi.wayline.GetWaylineListRequest
;
import
com.dji.sdk.cloudapi.wayline.GetWaylineListResponse
;
import
com.dji.sdk.common.PaginationData
;
...
...
@@ -82,4 +83,51 @@ public interface IWaylineFileService {
* @return
*/
void
importKmzFile
(
MultipartFile
file
,
String
workspaceId
,
String
creator
);
/**
* Import kmz wayline file.
* @param file
* @param workspaceId
* @param creator
* @param fileParentId
* @return
*/
void
importKmzFile
(
MultipartFile
file
,
String
workspaceId
,
String
creator
,
String
fileParentId
);
/**
* add directory
* @param workspaceId
* @param waylineFileDTO
* @return
*/
Integer
addDirectory
(
String
workspaceId
,
WaylineFileDTO
waylineFileDTO
);
/**
* get directory tree
* @param workspaceId
*/
List
<
WaylineFileTreeVO
>
getDirectoryTree
(
String
workspaceId
);
/**
* get directory tree List<WaylineFileTreeVO> getDirectoryTree(String workspaceId);
* @param workspaceId
*/
List
<
WaylineFileTreeVO
>
getWaylineFileTree
(
String
workspaceId
,
String
waylineFileId
);
/**
* update file parentId
* @param waylineFileId
* @param parentId
*/
boolean
updateParentId
(
String
waylineFileId
,
String
parentId
);
/**
* del waylineFile with child
* @param workspaceId
* @param waylineFileId
* @return
*/
boolean
deleteDirectory
(
String
workspaceId
,
String
waylineFileId
);
PaginationData
<
GetWaylineListResponse
>
getWaylinesByParam
(
String
workspaceId
,
String
parentId
,
GetWaylineListRequest
param
);
}
sample/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
View file @
744cfdef
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment