sean.zhou
2023-05-18 fc67c10698ab266a57916fef00828369e1c258de
src/main/java/com/dji/sample/manage/service/impl/LiveStreamServiceImpl.java
@@ -4,7 +4,6 @@
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.component.mqtt.model.CommonTopicResponse;
import com.dji.sample.component.mqtt.model.ServiceReply;
import com.dji.sample.component.mqtt.model.StateDataEnum;
import com.dji.sample.component.mqtt.service.IMessageSenderService;
import com.dji.sample.component.redis.RedisConst;
import com.dji.sample.component.redis.RedisOpsUtils;
@@ -16,10 +15,7 @@
import com.dji.sample.manage.model.param.DeviceQueryParam;
import com.dji.sample.manage.model.receiver.CapacityDeviceReceiver;
import com.dji.sample.manage.model.receiver.LiveCapacityReceiver;
import com.dji.sample.manage.service.ICapacityCameraService;
import com.dji.sample.manage.service.IDeviceService;
import com.dji.sample.manage.service.ILiveStreamService;
import com.dji.sample.manage.service.IWorkspaceService;
import com.dji.sample.manage.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -54,7 +50,7 @@
    private IMessageSenderService messageSender;
    @Autowired
    private RedisOpsUtils redisOps;
    private IDeviceRedisService deviceRedisService;
    @Override
    public List<CapacityDeviceDTO> getLiveCapacity(String workspaceId) {
@@ -68,7 +64,7 @@
        // Query the live capability of each drone.
        return devicesList.stream()
                .filter(device -> redisOps.checkExist(RedisConst.DEVICE_ONLINE_PREFIX + device.getDeviceSn()))
                .filter(device -> deviceRedisService.checkDeviceOnline(device.getDeviceSn()))
                .map(device -> CapacityDeviceDTO.builder()
                        .name(Objects.requireNonNullElse(device.getNickname(), device.getDeviceName()))
                        .sn(device.getDeviceSn())
@@ -82,7 +78,7 @@
        // Solve timing problems
        for (CapacityDeviceReceiver capacityDeviceReceiver : liveCapacityReceiver.getDeviceList()) {
            long last = (long) Objects.requireNonNullElse(
                    redisOps.get(StateDataEnum.LIVE_CAPACITY + RedisConst.DELIMITER + capacityDeviceReceiver.getSn()), 0L);
                    RedisOpsUtils.get(RedisConst.LIVE_CAPACITY + capacityDeviceReceiver.getSn()), 0L);
            if (last > timestamp) {
                return;
            }
@@ -129,7 +125,7 @@
                        .toString());
                break;
            case RTSP:
                String url = receiveReply.getInfo().toString();
                String url = receiveReply.getOutput().toString();
                this.resolveUrlUser(url, live);
                break;
            case UNKNOWN:
@@ -172,7 +168,7 @@
        String respTopic = THING_MODEL_PRE + PRODUCT + responseResult.getData().getDeviceSn() + SERVICES_SUF;
        ServiceReply receiveReply = this.publishLiveSetQuality(respTopic, liveParam);
        if (ResponseResult.CODE_SUCCESS == receiveReply.getResult()) {
        if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
            return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
        }
@@ -189,7 +185,7 @@
        if (ResponseResult.CODE_SUCCESS != responseResult.getCode()) {
            return responseResult;
        }
        if (DeviceDomainEnum.GATEWAY.getDesc().equals(responseResult.getData().getDomain())) {
        if (DeviceDomainEnum.GATEWAY.getVal() == responseResult.getData().getDomain()) {
            return ResponseResult.error(LiveErrorEnum.FUNCTION_NOT_SUPPORT);
        }
@@ -211,7 +207,7 @@
        response.setMethod(LiveStreamMethodEnum.LIVE_LENS_CHANGE.getMethod());
        response.setData(liveParam);
        return messageSender.publishWithReply(respTopic, response);
        return messageSender.publishWithReply(ServiceReply.class, respTopic, response);
    }
    /**
@@ -235,7 +231,7 @@
            return ResponseResult.error(LiveErrorEnum.NO_AIRCRAFT);
        }
        if (deviceOpt.get().getDomain().equals(DeviceDomainEnum.DOCK.getDesc())) {
        if (DeviceDomainEnum.DOCK.getVal() == deviceOpt.get().getDomain()) {
            return ResponseResult.success(deviceOpt.get());
        }
        List<DeviceDTO> gatewayList = deviceService.getDevicesByParams(
@@ -308,7 +304,7 @@
        response.setData(liveParam);
        response.setMethod(LiveStreamMethodEnum.LIVE_START_PUSH.getMethod());
        return messageSender.publishWithReply(topic, response);
        return messageSender.publishWithReply(ServiceReply.class, topic, response);
    }
    /**
@@ -327,7 +323,7 @@
        response.setMethod(LiveStreamMethodEnum.LIVE_SET_QUALITY.getMethod());
        response.setData(data);
        return messageSender.publishWithReply(respTopic, response);
        return messageSender.publishWithReply(ServiceReply.class, respTopic, response);
    }
    /**
@@ -344,7 +340,7 @@
        response.setData(data);
        response.setMethod(LiveStreamMethodEnum.LIVE_STOP_PUSH.getMethod());
        return messageSender.publishWithReply(topic, response);
        return messageSender.publishWithReply(ServiceReply.class, topic, response);
    }
}