吴远 2 months ago
parent
commit
1cf4aa57f3
  1. 3
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java
  2. 2
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java
  3. 15
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  4. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java
  5. 4
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java
  6. 9
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java
  7. 6
      dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java
  8. 4
      dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java
  9. 3
      dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java
  10. 4
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
  11. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java
  12. 7
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java
  13. 6
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java
  14. 4
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java
  15. 7
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
  16. 3
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java
  17. 3
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java
  18. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java
  19. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
  20. 6
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java
  21. 5
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

3
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java

@ -70,9 +70,10 @@ public interface IHttpMediaService {
value = "{\"code\": 0, \"message\":\"success\", \"data\": \"media/DJI_20220831151616_0004_W_Waypoint4.JPG\"}"
)})))
@PostMapping(PREFIX + "/workspaces/{workspace_id}/upload-callback")
@PostMapping(PREFIX + "/workspaces/{workspace_id}/{pro_id}/upload-callback")
HttpResultResponse<String> mediaUploadCallback(
@PathVariable(name = "workspace_id") String workspaceId,
@PathVariable(name = "pro_id") Integer proId,
@Valid @RequestBody MediaUploadCallbackRequest request,
HttpServletRequest req, HttpServletResponse rsp);

2
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java

@ -48,7 +48,7 @@ public interface IHttpWaylineService {
HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList(
@Valid @ParameterObject GetWaylineListRequest request,
@PathVariable(name = "workspace_id") String workspaceId,
@PathVariable(name = "proId") Integer proId,
@PathVariable(name = "proIds") List<Integer> proIds,
HttpServletRequest req, HttpServletResponse rsp);
/**

15
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java

@ -9,6 +9,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import org.dromara.sample.manage.service.IDeviceProService;
import org.dromara.sample.manage.service.IDeviceService;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j;
@ -37,6 +38,10 @@ public class DeviceController {
@Autowired
private IDeviceService deviceService;
@Autowired
private IDeviceProService deviceProService;
/**
* 获取一个工作区中所有在线设备的列表
* Get the topology list of all online devices in one workspace.
@ -45,8 +50,8 @@ public class DeviceController {
@GetMapping("/{workspace_id}/devices")
@Operation(summary = "获取一个工作区中所有在线设备的列表。", description = "获取一个工作区中所有在线设备的列表")
public HttpResultResponse<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId,
@RequestParam(name = "nickname",required = false) String nickname) {
List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId,nickname);
@RequestParam(name = "nickname",required = false) String nickname,@RequestParam(name = "proIds",required = false) List<Integer> proIds) {
List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId,nickname,proIds);
return HttpResultResponse.success(devicesList);
}
@ -92,9 +97,9 @@ public class DeviceController {
@PathVariable("workspace_id") String workspaceId,Integer domain,
@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize,
@RequestParam(name = "nickname",required = false) String nickname) {
LoginUser loginUser = LoginHelper.getLoginUser();
PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain,nickname);
@RequestParam(name = "nickname",required = false) String nickname,
@RequestParam(name = "proIds",required = false) List<Integer> proIds) {
PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain,nickname,proIds);
return HttpResultResponse.success(devices);
}

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java

@ -35,4 +35,6 @@ public class DeviceQueryParam {
private boolean orderBy;
private boolean isAsc;
private List<Integer> proIds;
}

4
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java

@ -66,7 +66,7 @@ public interface IDeviceService {
* @param workspaceId
* @return
*/
List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname);
List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname,List<Integer> proIds);
/**
@ -129,7 +129,7 @@ public interface IDeviceService {
* @param domain
* @return
*/
PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain,String nickname);
PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain,String nickname,List<Integer> proIds);
/**
* Unbind device base on device's sn.

9
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.sample.manage.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -222,6 +223,8 @@ public class DeviceServiceImpl implements IDeviceService {
.eq(StringUtils.hasText(param.getWorkspaceId()),
DeviceEntity::getWorkspaceId, param.getWorkspaceId())
.eq(param.getBoundStatus() != null, DeviceEntity::getBoundStatus, param.getBoundStatus())
.in(ObjectUtil.isAllNotEmpty(param.getProIds()),
DeviceEntity::getDeviceSn, param.getProIds())
.orderBy(param.isOrderBy(),
param.isAsc(), DeviceEntity::getId))
.stream()
@ -230,11 +233,12 @@ public class DeviceServiceImpl implements IDeviceService {
}
@Override
public List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname) {
public List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname,List<Integer> proIds) {
List<DeviceDTO> devicesList = this.getDevicesByParams(
DeviceQueryParam.builder()
.workspaceId(workspaceId)
.domains(List.of(DeviceDomainEnum.REMOTER_CONTROL.getDomain(), DeviceDomainEnum.DOCK.getDomain()))
.proIds(proIds)
.build());
devicesList.stream()
@ -494,13 +498,14 @@ public class DeviceServiceImpl implements IDeviceService {
@Override
public PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page,
Long pageSize, Integer domain,String nickname) {
Long pageSize, Integer domain,String nickname,List<Integer> proIds) {
Page<DeviceEntity> pagination = mapper.selectPage(new Page<>(page, pageSize),
new LambdaQueryWrapper<DeviceEntity>()
.eq(DeviceEntity::getDomain, domain)
.eq(DeviceEntity::getWorkspaceId, workspaceId)
.eq(DeviceEntity::getBoundStatus, true)
.in(ObjectUtil.isAllNotEmpty(proIds),DeviceEntity::getProId, proIds)
.eq(org.dromara.common.core.utils.StringUtils.isNotEmpty(nickname),DeviceEntity::getNickname,nickname));
List<DeviceDTO> devicesList = pagination.getRecords().stream().map(this::deviceEntityConvertToDTO)
.peek(device -> {

6
dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java

@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.net.URL;
import java.util.List;
/**
* @author sean
@ -37,8 +38,9 @@ public class FileController {
@Operation(summary = "根据工作区id获取此工作区中所有媒体文件的信息。", description = "根据工作区id获取此工作区中所有媒体文件的信息。")
public HttpResultResponse<PaginationData<MediaFileDTO>> getFilesList(@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize,
@PathVariable(name = "workspace_id") String workspaceId) {
PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize);
@PathVariable(name = "workspace_id") String workspaceId,
@RequestParam(name = "deviceSns",required = false) List<Integer> proIds) {
PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize,proIds);
return HttpResultResponse.success(filesList);
}

4
dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java

@ -52,8 +52,8 @@ public class MediaController implements IHttpMediaService {
* @return
*/
@Override
public HttpResultResponse<String> mediaUploadCallback( String workspaceId, @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) {
mediaService.saveMediaFile(workspaceId, request);
public HttpResultResponse<String> mediaUploadCallback( String workspaceId,Integer proId, @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) {
mediaService.saveMediaFile(workspaceId, request,proId);
return HttpResultResponse.success(request.getObjectKey());
}

3
dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java

@ -111,5 +111,8 @@ public class MediaFileEntity implements Serializable {
@TableField("file_index")
private Integer fileIndex;
@TableField("pro_id")
private Integer proId;
}

4
dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java

@ -29,7 +29,7 @@ public interface IFileService {
* @param file
* @return
*/
Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask);
Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask,Integer proId);
/**
* Query information about all files in this workspace based on the workspace id.
@ -45,7 +45,7 @@ public interface IFileService {
* @param pageSize
* @return
*/
PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize);
PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize,List<Integer> proIds);
/**
* Get the download address of the file.

2
dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java

@ -26,7 +26,7 @@ public interface IMediaService {
* @param file
* @return
*/
Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file);
Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file,Integer proId);
/**
* Query tiny fingerprints about all files in this workspace based on the workspace id.

7
dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java

@ -1,6 +1,7 @@
package org.dromara.sample.media.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -65,10 +66,11 @@ public class FileServiceImpl implements IFileService {
}
@Override
public Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask) {
public Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask,Integer proId) {
MediaFileEntity fileEntity = this.fileUploadConvertToEntity(file,flightTask);
fileEntity.setWorkspaceId(workspaceId);
fileEntity.setFileId(UUID.randomUUID().toString());
fileEntity.setProId(proId);
fileEntity.setFileType(fileEntity.getFileName().substring( fileEntity.getFileName().lastIndexOf(".")+1));
if(!fileEntity.getFileType().equals("DAT")){
fileEntity.setFileStatus(fileEntity.getFileName().substring( fileEntity.getFileName().lastIndexOf("_")+1, fileEntity.getFileName().lastIndexOf(".")));
@ -91,11 +93,12 @@ public class FileServiceImpl implements IFileService {
}
@Override
public PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize) {
public PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize,List<Integer> proIds) {
Page<MediaFileEntity> pageData = mapper.selectPage(
new Page<MediaFileEntity>(page, pageSize),
new LambdaQueryWrapper<MediaFileEntity>()
.eq(MediaFileEntity::getWorkspaceId, workspaceId)
.in(ObjectUtil.isAllNotEmpty(proIds),MediaFileEntity::getProId, proIds)
.orderByDesc(MediaFileEntity::getId));
List<MediaFileDTO> records = pageData.getRecords()
.stream()

6
dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java

@ -79,8 +79,8 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
}
@Override
public Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file) {
return fileService.saveFile(workspaceId, file,null);
public Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file,Integer proId) {
return fileService.saveFile(workspaceId, file,null,proId);
}
@Override
@ -180,7 +180,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
file.setPath(objectKey.substring(Optional.of(objectKey.indexOf("mediafile"))
.filter(index -> index > 0).map(index -> index++).orElse(0),
objectKey.lastIndexOf("/")));
Integer fileFlag = fileService.saveFile(device.getWorkspaceId(), file, callback.getFlightTask());
Integer fileFlag = fileService.saveFile(device.getWorkspaceId(), file, callback.getFlightTask(),device.getProId());
return fileFlag> 0;
}

4
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java

@ -92,8 +92,8 @@ public class WaylineFileController implements IHttpWaylineService {
* @return
*/
@Override
public HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId, Integer proId, HttpServletRequest req, HttpServletResponse rsp) {
PaginationData<GetWaylineListResponse> data = waylineFileService.getWaylinesByParam(workspaceId, request,proId);
public HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId,List<Integer> proIds, HttpServletRequest req, HttpServletResponse rsp) {
PaginationData<GetWaylineListResponse> data = waylineFileService.getWaylinesByParam(workspaceId, request,proIds);
return HttpResultResponse.success(data);
}

7
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java

@ -24,6 +24,8 @@ import java.sql.SQLException;
import java.util.List;
import java.util.Set;
import static org.bouncycastle.asn1.x500.style.RFC4519Style.name;
/**
* @author sean
@ -67,8 +69,9 @@ public class WaylineJobController {
@Operation(summary = "查询工作区中的所有作业。。", description = "查询工作区中的所有作业。")
public HttpResultResponse<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize,
@PathVariable(name = "workspace_id") String workspaceId) {
PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize);
@PathVariable(name = "workspace_id") String workspaceId,
@RequestParam(name = "proId") List<Integer> proIds) {
PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,proIds);
return HttpResultResponse.success(data);
}

3
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java

@ -10,6 +10,7 @@ import org.dromara.common.sdk.cloudapi.wayline.TaskTypeEnum;
import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author sean
@ -72,4 +73,6 @@ public class WaylineJobDTO {
private String parentId;
private ProgressExtBreakPoint breakPoint;
private List<Integer> proIds;
}

3
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java

@ -94,4 +94,7 @@ public class WaylineJobEntity implements Serializable {
@TableField(exist = false)
private ProgressExtBreakPoint breakPoint;
@TableField("pro_id")
private Integer proId;
}

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java

@ -26,7 +26,7 @@ public interface IWaylineFileService {
* @param param
* @return
*/
PaginationData<GetWaylineListResponse> getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId);
PaginationData<GetWaylineListResponse> getWaylinesByParam(String workspaceId, GetWaylineListRequest param,List<Integer> proIds);
/**
* Query the information of this wayline file according to the wayline file id.

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java

@ -69,7 +69,7 @@ public interface IWaylineJobService {
* @param pageSize
* @return
*/
PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize);
PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List<Integer> proIds);
/**
* Query the wayline execution status of the dock.

6
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java

@ -78,7 +78,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
private RemoteFileService remoteFileService;
@Override
public PaginationData<GetWaylineListResponse> getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId) {
public PaginationData<GetWaylineListResponse> getWaylinesByParam(String workspaceId, GetWaylineListRequest param,List<Integer> proIds) {
// Paging Query
Page<WaylineFileEntity> page = mapper.selectPage(
new Page<WaylineFileEntity>(param.getPage(), param.getPageSize()),
@ -103,8 +103,8 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
.and(ObjectUtil.isNotEmpty(param.getDeviceSn()), wrapper -> {
wrapper.eq(WaylineFileEntity::getDeviceSn, param.getDeviceSn()).or();
})
.and(proId != null, wrapper -> {
wrapper.in(WaylineFileEntity::getProId, proId).or();
.and(ObjectUtil.isAllNotEmpty(proIds), wrapper -> {
wrapper.in(WaylineFileEntity::getProId, proIds).or();
})
.like(Objects.nonNull(param.getKey()), WaylineFileEntity::getName, param.getKey())
// There is a risk of SQL injection

5
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.sample.wayline.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -154,11 +155,13 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
}
@Override
public PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize) {
public PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List<Integer> proIds) {
Page<WaylineJobEntity> pageData = mapper.selectPage(
new Page<WaylineJobEntity>(page, pageSize),
new LambdaQueryWrapper<WaylineJobEntity>()
.eq(WaylineJobEntity::getWorkspaceId, workspaceId)
.eq(WaylineJobEntity::getWorkspaceId, workspaceId)
.in(ObjectUtil.isAllNotEmpty(proIds),WaylineJobEntity::getProId,proIds)
.orderByDesc(WaylineJobEntity::getId));
List<WaylineJobDTO> records = pageData.getRecords()
.stream()

Loading…
Cancel
Save