package com.ard.zlm.service.impl;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.nacos.api.model.v2.ErrorCode;
|
import com.ard.zlm.api.domain.DownloadFileInfo;
|
import com.ard.zlm.config.RedisRpcConfig;
|
import com.ard.zlm.config.UserSetting;
|
import com.ard.zlm.domain.redis.RedisRpcRequest;
|
import com.ard.zlm.domain.redis.RedisRpcResponse;
|
import com.ard.zlm.service.IRedisRpcPlayService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* @FileName RedisRpcPlayServiceImpl
|
* @Description
|
* @Author fengcheng
|
* @date 2026-04-11
|
**/
|
@Slf4j
|
@Service
|
public class RedisRpcPlayServiceImpl implements IRedisRpcPlayService {
|
|
@Autowired
|
private RedisRpcConfig redisRpcConfig;
|
|
@Autowired
|
private UserSetting userSetting;
|
|
private RedisRpcRequest buildRequest(String uri, Object param) {
|
RedisRpcRequest request = new RedisRpcRequest();
|
request.setFromId(userSetting.getServerId());
|
request.setParam(param);
|
request.setUri(uri);
|
return request;
|
}
|
|
@Override
|
public DownloadFileInfo getRecordPlayUrl(String serverId, Long recordId) {
|
RedisRpcRequest request = buildRequest("cloudRecord/play", recordId);
|
RedisRpcResponse response = redisRpcConfig.request(request, userSetting.getPlayTimeout(), TimeUnit.SECONDS);
|
if (response != null && response.getStatusCode() == ErrorCode.SUCCESS.getCode()) {
|
return JSON.parseObject(response.getBody().toString(), DownloadFileInfo.class);
|
}
|
return null;
|
}
|
}
|