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
a63bf42e
Commit
a63bf42e
authored
Apr 29, 2026
by
gdj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加固件查询接口和固件操作日志。
parent
f6f7e715
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
78 additions
and
3 deletions
+78
-3
sample/src/main/java/com/dji/sample/manage/controller/DeviceController.java
+18
-2
sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java
+24
-0
sample/src/main/java/com/dji/sample/manage/model/dto/DeviceFirmwareDTO.java
+8
-0
sample/src/main/java/com/dji/sample/manage/model/enums/OperateRecordTypeEnum.java
+7
-1
sample/src/main/java/com/dji/sample/manage/service/IDeviceFirmwareService.java
+9
-0
sample/src/main/java/com/dji/sample/manage/service/impl/DeviceFirmwareServiceImpl.java
+12
-0
No files found.
sample/src/main/java/com/dji/sample/manage/controller/DeviceController.java
View file @
a63bf42e
package
com
.
dji
.
sample
.
manage
.
controller
;
import
com.dji.sample.manage.model.dto.*
;
import
com.dji.sample.manage.model.enums.OperateRecordTypeEnum
;
import
com.dji.sample.manage.model.param.DeviceSearchParam
;
import
com.dji.sample.manage.service.IDeviceDictionaryService
;
import
com.dji.sample.manage.service.IOperateRecordService
;
import
com.dji.sample.manage.service.IDeviceService
;
import
com.dji.sdk.common.HttpResultResponse
;
import
com.dji.sdk.common.PaginationData
;
...
...
@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Optional
;
...
...
@@ -33,6 +36,9 @@ public class DeviceController {
@Autowired
private
IDeviceDictionaryService
deviceDictionaryService
;
@Autowired
private
IOperateRecordService
operateRecordService
;
/**
* Get the topology list of all online devices in one workspace.
* @param workspaceId
...
...
@@ -136,9 +142,19 @@ public class DeviceController {
* @return
*/
@PostMapping
(
"/{workspace_id}/devices/ota"
)
public
HttpResultResponse
createOtaJob
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
public
HttpResultResponse
createOtaJob
(
HttpServletRequest
request
,
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@RequestBody
List
<
DeviceFirmwareUpgradeDTO
>
upgradeDTOS
)
{
return
deviceService
.
createDeviceOtaJob
(
workspaceId
,
upgradeDTOS
);
HttpResultResponse
response
=
deviceService
.
createDeviceOtaJob
(
workspaceId
,
upgradeDTOS
);
// 下发成功后记录操作日志(operate_record)
if
(
response
!=
null
&&
response
.
getCode
()
==
0
&&
upgradeDTOS
!=
null
)
{
for
(
DeviceFirmwareUpgradeDTO
dto
:
upgradeDTOS
)
{
operateRecordService
.
record
(
request
,
OperateRecordTypeEnum
.
FIRMWARE_UPGRADE
,
dto
.
getSn
(),
dto
);
}
}
return
response
;
}
/**
...
...
sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java
View file @
a63bf42e
...
...
@@ -4,10 +4,12 @@ import com.dji.sample.common.model.CustomClaim;
import
com.dji.sample.manage.model.dto.DeviceFirmwareDTO
;
import
com.dji.sample.manage.model.dto.DeviceFirmwareNoteDTO
;
import
com.dji.sample.manage.model.dto.FirmwareFileProperties
;
import
com.dji.sample.manage.model.enums.OperateRecordTypeEnum
;
import
com.dji.sample.manage.model.param.DeviceFirmwareQueryParam
;
import
com.dji.sample.manage.model.param.DeviceFirmwareUpdateParam
;
import
com.dji.sample.manage.model.param.DeviceFirmwareUploadParam
;
import
com.dji.sample.manage.service.IDeviceFirmwareService
;
import
com.dji.sample.manage.service.IOperateRecordService
;
import
com.dji.sdk.common.HttpResultResponse
;
import
com.dji.sdk.common.PaginationData
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -37,6 +39,9 @@ public class DeviceFirmwareController {
@Autowired
private
IDeviceFirmwareService
service
;
@Autowired
private
IOperateRecordService
operateRecordService
;
/**
* Get the latest firmware version information for this device model.
* @param deviceNames
...
...
@@ -89,10 +94,29 @@ public class DeviceFirmwareController {
String
creator
=
customClaim
.
getUsername
();
service
.
importFirmwareFile
(
workspaceId
,
creator
,
param
,
file
);
// 记录操作日志(operate_record)
operateRecordService
.
record
(
request
,
OperateRecordTypeEnum
.
FIRMWARE_UPLOAD
,
null
,
param
);
return
HttpResultResponse
.
success
();
}
/**
* Get firmware detail by firmwareId.
* @param workspaceId
* @param firmwareId
* @return
*/
@GetMapping
(
"/{workspace_id}/firmwares/{firmware_id}"
)
public
HttpResultResponse
<
DeviceFirmwareDTO
>
getFirmwareDetail
(
@PathVariable
(
"workspace_id"
)
String
workspaceId
,
@PathVariable
(
"firmware_id"
)
String
firmwareId
)
{
return
service
.
getFirmwareDetail
(
workspaceId
,
firmwareId
)
.
map
(
HttpResultResponse:
:
success
)
.
orElse
(
HttpResultResponse
.
error
(
"Firmware not found."
));
}
/**
* Change the firmware availability status.
* @param workspaceId
* @param firmwareId
...
...
sample/src/main/java/com/dji/sample/manage/model/dto/DeviceFirmwareDTO.java
View file @
a63bf42e
package
com
.
dji
.
sample
.
manage
.
model
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
...
...
@@ -42,4 +44,10 @@ public class DeviceFirmwareDTO {
private
String
workspaceId
;
private
String
username
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updateTime
;
}
sample/src/main/java/com/dji/sample/manage/model/enums/OperateRecordTypeEnum.java
View file @
a63bf42e
...
...
@@ -29,7 +29,13 @@ public enum OperateRecordTypeEnum {
SEIZE_FLIGHT_AUTHORITY
(
"SEIZE_FLIGHT_AUTHORITY"
,
"夺取飞行控制权"
),
SEIZE_PAYLOAD_AUTHORITY
(
"SEIZE_PAYLOAD_AUTHORITY"
,
"夺取负载控制权"
),
PAYLOAD_COMMANDS
(
"PAYLOAD_COMMANDS"
,
"负载控制指令"
),
RTK_CALIBRATION
(
"RTK_CALIBRATION"
,
"RTK标定"
);
RTK_CALIBRATION
(
"RTK_CALIBRATION"
,
"RTK标定"
),
// -- FIRMWARE
FIRMWARE_UPLOAD
(
"FIRMWARE_UPLOAD"
,
"上传固件"
),
FIRMWARE_UPGRADE
(
"FIRMWARE_UPGRADE"
,
"下发固件升级"
),
;
private
final
String
type
;
private
final
String
description
;
...
...
sample/src/main/java/com/dji/sample/manage/service/IDeviceFirmwareService.java
View file @
a63bf42e
...
...
@@ -73,6 +73,15 @@ public interface IDeviceFirmwareService {
void
importFirmwareFile
(
String
workspaceId
,
String
creator
,
DeviceFirmwareUploadParam
param
,
MultipartFile
file
);
/**
* Get firmware detail by firmwareId.
*
* @param workspaceId
* @param firmwareId
* @return
*/
Optional
<
DeviceFirmwareDTO
>
getFirmwareDetail
(
String
workspaceId
,
String
firmwareId
);
/**
* Save the file information of the firmware.
* @param firmware
* @param deviceNames
...
...
sample/src/main/java/com/dji/sample/manage/service/impl/DeviceFirmwareServiceImpl.java
View file @
a63bf42e
...
...
@@ -46,6 +46,7 @@ import java.io.InputStream;
import
java.nio.charset.StandardCharsets
;
import
java.time.Instant
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
...
...
@@ -167,6 +168,15 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement
}
@Override
public
Optional
<
DeviceFirmwareDTO
>
getFirmwareDetail
(
String
workspaceId
,
String
firmwareId
)
{
return
Optional
.
ofNullable
(
entity2Dto
(
mapper
.
selectOne
(
new
LambdaQueryWrapper
<
DeviceFirmwareEntity
>()
.
eq
(
DeviceFirmwareEntity:
:
getWorkspaceId
,
workspaceId
)
.
eq
(
DeviceFirmwareEntity:
:
getFirmwareId
,
firmwareId
),
null
)));
}
@Override
public
Boolean
checkFileExist
(
String
workspaceId
,
String
fileMd5
)
{
return
RedisOpsUtils
.
checkExist
(
RedisConst
.
FILE_UPLOADING_PREFIX
+
workspaceId
+
fileMd5
)
||
mapper
.
selectCount
(
new
LambdaQueryWrapper
<
DeviceFirmwareEntity
>()
...
...
@@ -337,6 +347,8 @@ public class DeviceFirmwareServiceImpl extends AbstractFirmwareService implement
.
firmwareStatus
(
entity
.
getStatus
())
.
workspaceId
(
entity
.
getWorkspaceId
())
.
username
(
entity
.
getUsername
())
.
createTime
(
entity
.
getCreateTime
()
!=
null
?
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
entity
.
getCreateTime
()),
ZoneId
.
systemDefault
())
:
null
)
.
updateTime
(
entity
.
getUpdateTime
()
!=
null
?
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
entity
.
getUpdateTime
()),
ZoneId
.
systemDefault
())
:
null
)
.
build
();
}
...
...
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