|
|
@@ -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()));
|