Browse Source

检索条件

S0025136190 1 year ago
parent
commit
14086e4249

+ 19 - 1
Backend/sample/src/main/java/com/dji/sample/manage/controller/DeviceController.java

@@ -3,7 +3,10 @@ package com.dji.sample.manage.controller;
 import com.dji.sample.manage.model.dto.DeviceDTO;
 import com.dji.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
 import com.dji.sample.manage.model.dto.DevicePayloadDTO;
+import com.dji.sample.manage.model.dto.DeviceTypeDTO;
+import com.dji.sample.manage.model.param.DeviceBoundQueryParam;
 import com.dji.sample.manage.model.param.DeviceOprLogsQueryParam;
+import com.dji.sample.manage.service.IDeviceDictionaryService;
 import com.dji.sample.manage.service.IDevicePayloadService;
 import com.dji.sample.manage.service.IDeviceService;
 import com.dji.sdk.common.HttpResultResponse;
@@ -34,6 +37,9 @@ public class DeviceController {
     @Autowired
     private IDevicePayloadService devicePayloadService;
 
+    @Autowired
+    private IDeviceDictionaryService deviceDictionaryService;
+
     /**
      * Get the topology list of all online devices in one workspace.
      * @param workspaceId
@@ -81,10 +87,11 @@ public class DeviceController {
      */
     @GetMapping("/{workspace_id}/devices/bound")
     public HttpResultResponse<PaginationData<DeviceDTO>> getBoundDevicesWithDomain(
+            DeviceBoundQueryParam deviceBoundQueryParam,
             @PathVariable("workspace_id") String workspaceId, Integer domain,
             @RequestParam(defaultValue = "1") Long page,
             @RequestParam(value = "page_size", defaultValue = "50") Long pageSize) {
-        PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain);
+        PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain,deviceBoundQueryParam);
 
         return HttpResultResponse.success(devices);
     }
@@ -158,4 +165,15 @@ public class DeviceController {
         List<DevicePayloadDTO> payloadList = devicePayloadService.getDevicePayloadEntities();
         return HttpResultResponse.success(payloadList);
     }
+
+    /**
+     * 获取拍摄负责信息
+     * @param workspaceId
+     * @return
+     */
+    @GetMapping("/{workspace_id}/getDeviceType")
+    public HttpResultResponse getDeviceType(@PathVariable("workspace_id") String workspaceId) {
+        List<DeviceTypeDTO> resultList = deviceDictionaryService.getDeviceType();
+        return HttpResultResponse.success(resultList);
+    }
 }

+ 2 - 2
Backend/sample/src/main/java/com/dji/sample/manage/controller/UserController.java

@@ -49,8 +49,8 @@ public class UserController {
     public HttpResultResponse<PaginationData<UserListDTO>> getUsers(@RequestParam(defaultValue = "1") Long page,
                                                                     @RequestParam(value = "page_size", defaultValue = "50") Long pageSize,
                                                                     @PathVariable("workspace_id") String workspaceId,
-                                                                    String username) {
-        PaginationData<UserListDTO> paginationData = userService.getUsersByWorkspaceId(page, pageSize, workspaceId,username);
+                                                                    String searchInfo) {
+        PaginationData<UserListDTO> paginationData = userService.getUsersByWorkspaceId(page, pageSize, workspaceId,searchInfo);
         return HttpResultResponse.success(paginationData);
     }
 

+ 24 - 0
Backend/sample/src/main/java/com/dji/sample/manage/model/dto/DeviceTypeDTO.java

@@ -0,0 +1,24 @@
+package com.dji.sample.manage.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @author huiqing.jiang
+ * @date 2024/8/16
+ * @version 0.1
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class DeviceTypeDTO {
+
+    private String deviceValue;
+
+    private String deviceName;
+
+}

+ 4 - 4
Backend/sample/src/main/java/com/dji/sample/manage/model/param/DeviceBoundQueryParam.java

@@ -22,11 +22,11 @@ public class DeviceBoundQueryParam {
     @JsonProperty("end_time")
     private Long endTime;
 
-    @JsonProperty("device_name")
-    private String deviceName;
+    @JsonProperty("device_type")
+    private String deviceType;
 
-    @JsonProperty("logs_information")
-    private String logsInformation;
+    @JsonProperty("search_info")
+    private String searchInfo;
 
 
 }

+ 4 - 0
Backend/sample/src/main/java/com/dji/sample/manage/service/IDeviceDictionaryService.java

@@ -1,7 +1,9 @@
 package com.dji.sample.manage.service;
 
 import com.dji.sample.manage.model.dto.DeviceDictionaryDTO;
+import com.dji.sample.manage.model.dto.DeviceTypeDTO;
 
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -21,4 +23,6 @@ public interface IDeviceDictionaryService {
      */
     Optional<DeviceDictionaryDTO> getOneDictionaryInfoByTypeSubType(Integer domain, Integer deviceType, Integer subType);
 
+    List<DeviceTypeDTO> getDeviceType();
+
 }

+ 3 - 1
Backend/sample/src/main/java/com/dji/sample/manage/service/IDeviceService.java

@@ -2,6 +2,7 @@ package com.dji.sample.manage.service;
 
 import com.dji.sample.common.model.CustomClaim;
 import com.dji.sample.component.websocket.model.BizCodeEnum;
+import com.dji.sample.manage.model.param.DeviceBoundQueryParam;
 import com.dji.sdk.common.AMap;
 import com.dji.sample.manage.model.dto.DeviceDTO;
 import com.dji.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
@@ -128,9 +129,10 @@ public interface IDeviceService {
      * @param page
      * @param pageSize
      * @param domain
+     * @param deviceBoundQueryParam
      * @return
      */
-    PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain);
+    PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain, DeviceBoundQueryParam deviceBoundQueryParam);
 
     DeviceDTO setChild(DeviceDTO device);
 

+ 2 - 2
Backend/sample/src/main/java/com/dji/sample/manage/service/IUserService.java

@@ -40,10 +40,10 @@ public interface IUserService {
     /**
      * Query information about all users in a workspace.
      * @param workspaceId   uuid
-     * @param username
+     * @param searchInfo
      * @return
      */
-    PaginationData<UserListDTO> getUsersByWorkspaceId(long page, long pageSize, String workspaceId,String username);
+    PaginationData<UserListDTO> getUsersByWorkspaceId(long page, long pageSize, String workspaceId,String searchInfo);
 
     HttpResultResponse saveApiUser(String clientId,String username, String password);
 

+ 26 - 0
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceDictionaryServiceImpl.java

@@ -1,15 +1,21 @@
 package com.dji.sample.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dji.sample.manage.dao.IDeviceDictionaryMapper;
 import com.dji.sample.manage.model.dto.DeviceDictionaryDTO;
+import com.dji.sample.manage.model.dto.DeviceTypeDTO;
 import com.dji.sample.manage.model.entity.DeviceDictionaryEntity;
+import com.dji.sample.manage.model.entity.DeviceEntity;
 import com.dji.sample.manage.service.IDeviceDictionaryService;
+import com.dji.sdk.cloudapi.device.DeviceDomainEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  *
@@ -39,6 +45,26 @@ public class DeviceDictionaryServiceImpl implements IDeviceDictionaryService {
                                         .last(" limit 1 "))));
     }
 
+    @Override
+    public List<DeviceTypeDTO> getDeviceType() {
+        QueryWrapper<DeviceDictionaryEntity> wrapper = new QueryWrapper<>();
+        wrapper.lambda().in(DeviceDictionaryEntity::getDomain, DeviceDomainEnum.DRONE.getDomain(),DeviceDomainEnum.DOCK.getDomain());
+        List<DeviceDictionaryEntity> entities = mapper.selectList(wrapper);
+        if(entities.size() > 0) {
+            List<DeviceTypeDTO> result = entities.stream()
+                    .map(entity -> {
+                        String combinedFields = entity.getDomain() + "-" + entity.getSubType() + "-" + entity.getDeviceType();
+                        DeviceTypeDTO combinedFieldsEntity = new DeviceTypeDTO();
+                        combinedFieldsEntity.setDeviceValue(combinedFields);
+                        combinedFieldsEntity.setDeviceName(entity.getDeviceName());
+                        return combinedFieldsEntity;
+                    })
+                    .collect(Collectors.toList());
+            return result;
+        }
+        return null;
+    }
+
     /**
      * Convert database entity objects into dictionary data transfer object.
      * @param entity

+ 1 - 0
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceOprLogsServiceImpl.java

@@ -56,6 +56,7 @@ public class DeviceOprLogsServiceImpl implements IDeviceOprLogsService {
                 .eq(DeviceOprLogsEntity::getWorkspaceId, workspaceId)
                 .between(Objects.nonNull(param.getBeginTime()) && Objects.nonNull(param.getEndTime()),
                         DeviceOprLogsEntity::getCreateTime, param.getBeginTime(), param.getEndTime())
+                .eq(param!=null && StringUtils.hasText(param.getDeviceName()),DeviceOprLogsEntity::getDeviceName,param.getDeviceName())
                 .and(StringUtils.hasText(param.getLogsInformation()),
                         wrapper -> wrapper .like( DeviceOprLogsEntity::getLogInfo, param.getLogsInformation())
                                 .or().like( DeviceOprLogsEntity::getDeviceSn, param.getLogsInformation())

+ 24 - 5
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java

@@ -1,6 +1,7 @@
 package com.dji.sample.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dji.sample.common.error.CommonErrorEnum;
@@ -10,6 +11,8 @@ import com.dji.sample.component.websocket.model.BizCodeEnum;
 import com.dji.sample.component.websocket.service.IWebSocketMessageService;
 import com.dji.sample.control.model.enums.DroneAuthorityEnum;
 import com.dji.sample.manage.dao.IDeviceMapper;
+import com.dji.sample.manage.model.param.DeviceBoundQueryParam;
+import com.dji.sample.media.model.MediaDirEntity;
 import com.dji.sdk.common.AMap;
 import com.dji.sample.manage.model.dto.*;
 import com.dji.sample.manage.model.entity.DeviceEntity;
@@ -487,13 +490,29 @@ public class DeviceServiceImpl implements IDeviceService {
 
     @Override
     public PaginationData<DeviceDTO> getBoundDevicesWithDomain(String workspaceId, Long page,
-                                                               Long pageSize, Integer domain) {
+                                                               Long pageSize, Integer domain, DeviceBoundQueryParam param) {
+
+        QueryWrapper<DeviceEntity> wrapper = new QueryWrapper<>();
+        wrapper.lambda().in(DeviceEntity::getDomain, DeviceDomainEnum.DRONE.getDomain(),DeviceDomainEnum.DOCK.getDomain())
+                .eq(DeviceEntity::getWorkspaceId, workspaceId)
+                .eq(DeviceEntity::getBoundStatus, true)
+                .ge(param != null && param.getBeginTime() != null, DeviceEntity::getCreateTime,param.getBeginTime())
+                .le(param != null && param.getEndTime() != null, DeviceEntity::getCreateTime,param.getEndTime())
+                .and(StringUtils.hasText(param.getSearchInfo()),
+                        wrapper2 -> wrapper2.like( DeviceEntity::getDeviceSn, param.getSearchInfo())
+                                .or().like( DeviceEntity::getNickname, param.getSearchInfo()));
+        if (param != null && StringUtils.hasText(param.getDeviceType())) {
+            String[] deviceType = param.getDeviceType().split("-");
+            String dom = deviceType[0];
+            String sub = deviceType[1];
+            String type = deviceType[2];
+            wrapper.lambda().eq(DeviceEntity::getDomain,dom )
+                    .eq(DeviceEntity::getSubType,sub )
+                    .eq(DeviceEntity::getDeviceType,type );
+        }
 
         Page<DeviceEntity> pagination = mapper.selectPage(new Page<>(page, pageSize),
-                new LambdaQueryWrapper<DeviceEntity>()
-                        .in(DeviceEntity::getDomain, DeviceDomainEnum.DRONE.getDomain(),DeviceDomainEnum.DOCK.getDomain())
-                        .eq(DeviceEntity::getWorkspaceId, workspaceId)
-                        .eq(DeviceEntity::getBoundStatus, true));
+                wrapper);
         List<DeviceDTO> devicesList = pagination.getRecords().stream().map(this::deviceEntityConvertToDTO)
                 .peek(device -> {
                     device.setStatus(deviceRedisService.checkDeviceOnline(device.getDeviceSn()));

+ 3 - 3
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java

@@ -199,15 +199,15 @@ public class UserServiceImpl implements IUserService {
     }
 
     @Override
-    public PaginationData<UserListDTO> getUsersByWorkspaceId(long page, long pageSize, String workspaceId,String username) {
+    public PaginationData<UserListDTO> getUsersByWorkspaceId(long page, long pageSize, String workspaceId,String searchInfo) {
         LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(UserEntity::getWorkspaceId, workspaceId);
         queryWrapper.and(wrapper -> {
             wrapper.eq(UserEntity::getUserType, UserTypeEnum.WEB.getVal());
             wrapper.or().eq(UserEntity::getUserType, UserTypeEnum.PILOT.getVal());
         });
-        if(username != null) {
-            queryWrapper.like(UserEntity::getUsername,username);
+        if(searchInfo != null) {
+            queryWrapper.like(UserEntity::getUsername,searchInfo);
         }
 
         Page<UserEntity> userEntityPage = mapper.selectPage(