Browse Source

取消负载控制验证

pull/6/head
吴远 1 month ago
parent
commit
0f425dd451
  1. 2
      dk-modules/sample/src/main/java/org/dromara/sample/control/service/IControlService.java
  2. 30
      dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java
  3. 25
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java

2
dk-modules/sample/src/main/java/org/dromara/sample/control/service/IControlService.java

@ -60,6 +60,8 @@ public interface IControlService {
* @param param * @param param
* @return * @return
*/ */
HttpResultResponse seizeAuthorityCheck(String sn, DroneAuthorityEnum authority, DronePayloadParam param);
HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param); HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param);
/** /**

30
dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java

@ -221,7 +221,7 @@ public class ControlServiceImpl implements IControlService {
@Override @Override
public HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param) { public HttpResultResponse seizeAuthorityCheck(String sn, DroneAuthorityEnum authority, DronePayloadParam param) {
TopicServicesResponse<ServicesReplyData> response; TopicServicesResponse<ServicesReplyData> response;
switch (authority) { switch (authority) {
case FLIGHT: case FLIGHT:
@ -248,6 +248,34 @@ public class ControlServiceImpl implements IControlService {
: HttpResultResponse.error(serviceReply.getResult()); : HttpResultResponse.error(serviceReply.getResult());
} }
@Override
public HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param) {
TopicServicesResponse<ServicesReplyData> response;
switch (authority) {
case FLIGHT:
if (deviceService.checkAuthorityFlight(sn)) {
return HttpResultResponse.success();
}
response = abstractControlService.flightAuthorityGrab(SDKManager.getDeviceSDK(sn));
break;
case PAYLOAD:
if (checkPayloadAuthority(sn, param.getPayloadIndex())) {
return HttpResultResponse.success();
}
response = abstractControlService.payloadAuthorityGrab(SDKManager.getDeviceSDK(sn),
new PayloadAuthorityGrabRequest().setPayloadIndex(new PayloadIndex(param.getPayloadIndex())));
break;
default:
return HttpResultResponse.error(CloudSDKErrorEnum.INVALID_PARAMETER);
}
ServicesReplyData serviceReply = response.getData();
return serviceReply.getResult().isSuccess() ?
HttpResultResponse.success()
: HttpResultResponse.error(serviceReply.getResult());
}
private Boolean checkPayloadAuthority(String sn, String payloadIndex) { private Boolean checkPayloadAuthority(String sn, String payloadIndex) {
Optional<DeviceDTO> dockOpt = deviceRedisService.getDeviceOnline(sn); Optional<DeviceDTO> dockOpt = deviceRedisService.getDeviceOnline(sn);
if (dockOpt.isEmpty()) { if (dockOpt.isEmpty()) {

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

@ -10,6 +10,7 @@ import org.dromara.common.web.core.BaseController;
import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO; import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import org.dromara.sample.manage.service.IDeviceProService; import org.dromara.sample.manage.service.IDeviceProService;
import org.dromara.sample.manage.service.IDeviceRedisService;
import org.dromara.sample.manage.service.IDeviceService; import org.dromara.sample.manage.service.IDeviceService;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -40,7 +41,7 @@ public class DeviceController {
@Autowired @Autowired
private IDeviceProService deviceProService; private IDeviceRedisService deviceRedisService;
/** /**
* 获取一个工作区中所有在线设备的列表 * 获取一个工作区中所有在线设备的列表
@ -130,6 +131,28 @@ public class DeviceController {
@PathVariable("workspace_id") String workspaceId, @PathVariable("workspace_id") String workspaceId,
@PathVariable("device_sn") String deviceSn) { @PathVariable("device_sn") String deviceSn) {
device.setDeviceSn(deviceSn); device.setDeviceSn(deviceSn);
Optional<DeviceDTO> deviceOnline = deviceRedisService.getDeviceOnline(deviceSn);
if(deviceOnline.isPresent()){
deviceOnline.get().setNickname(device.getNickname());
deviceOnline.get().setProId(device.getProId());
if(deviceOnline.get().getChildren() != null){
deviceOnline.get().getChildren().setProId(device.getProId());
deviceOnline.get().getChildren().setNickname(device.getNickname()+"-"+ deviceOnline.get().getChildren().getDeviceName());
deviceService.updateDevice(deviceOnline.get().getChildren());
}
deviceRedisService.setDeviceOnline(deviceOnline.get());
}else {
Optional<DeviceDTO> deviceBySn = deviceService.getDeviceBySn(device.getDeviceSn());
Optional<DeviceDTO> deviceByChildSn = deviceService.getDeviceBySn(device.getChildDeviceSn());
if(deviceByChildSn.isPresent()){
deviceByChildSn.get().setProId(device.getProId());
deviceByChildSn.get().setNickname(device.getNickname()+"-"+ deviceBySn.get().getChildren().getDeviceName());
deviceService.updateDevice(deviceByChildSn.get());
}
}
boolean isUpd = deviceService.updateDevice(device); boolean isUpd = deviceService.updateDevice(device);
return isUpd ? HttpResultResponse.success() : HttpResultResponse.error(); return isUpd ? HttpResultResponse.success() : HttpResultResponse.error();
} }

Loading…
Cancel
Save