Commit 58ee4446 by zhangxingmin

push

parent 04375d70
package com.yd.communication.api.service.impl; package com.yd.communication.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ProjectEnum; import com.yd.common.enums.ProjectEnum;
import com.yd.common.enums.TenantEnum; import com.yd.common.enums.TenantEnum;
...@@ -37,6 +38,9 @@ public class ApiRecordingTaskServiceImpl implements ApiRecordingTaskService { ...@@ -37,6 +38,9 @@ public class ApiRecordingTaskServiceImpl implements ApiRecordingTaskService {
@Resource @Resource
private ApiOssFeignClient apiOssFeignClient; private ApiOssFeignClient apiOssFeignClient;
@Resource
private ObjectMapper objectMapper; // 注入 Jackson ObjectMapper
/** /**
* 开始录制 * 开始录制
* @param request * @param request
...@@ -96,42 +100,46 @@ public class ApiRecordingTaskServiceImpl implements ApiRecordingTaskService { ...@@ -96,42 +100,46 @@ public class ApiRecordingTaskServiceImpl implements ApiRecordingTaskService {
ApiUploadFileRequest uploadRequest = new ApiUploadFileRequest(); ApiUploadFileRequest uploadRequest = new ApiUploadFileRequest();
uploadRequest.setTenantBizId(TenantEnum.YD.getTenantBizId()); uploadRequest.setTenantBizId(TenantEnum.YD.getTenantBizId());
uploadRequest.setProjectBizId(ProjectEnum.SFP_CLIENT.getProjectBizId()); uploadRequest.setProjectBizId(ProjectEnum.SFP_CLIENT.getProjectBizId());
// 对象业务ID
uploadRequest.setObjectBizId(task.getBizId()); uploadRequest.setObjectBizId(task.getBizId());
// 对象类型:录制文件
uploadRequest.setObjectType("recording_task"); uploadRequest.setObjectType("recording_task");
// 对象所属表名:录制任务表
uploadRequest.setObjectTableName("recording_task"); uploadRequest.setObjectTableName("recording_task");
// 3. 调用 OSS Feign 客户端上传文件 // 3. 将 uploadRequest 转为 JSON 字符串
Result<ApiUploadResponse> uploadResult = apiOssFeignClient.uploadFileBody(file, uploadRequest); String requestJson;
try {
requestJson = objectMapper.writeValueAsString(uploadRequest);
} catch (Exception e) {
log.error("序列化请求参数失败", e);
throw new BusinessException("请求参数序列化失败");
}
// 4. 调用新的 Feign 接口(使用 JSON 字符串方式)
Result<ApiUploadResponse> uploadResult = apiOssFeignClient.uploadFileBodyWithJson(file, requestJson);
if (uploadResult == null || uploadResult.getCode() != 200) { if (uploadResult == null || uploadResult.getCode() != 200) {
String errorMsg = uploadResult != null ? uploadResult.getMsg() : "上传服务返回空"; String errorMsg = uploadResult != null ? uploadResult.getMsg() : "上传服务返回空";
log.error("上传文件到OSS失败: {}", errorMsg); log.error("上传文件到OSS失败: {}", errorMsg);
throw new BusinessException("上传文件失败: " + errorMsg); throw new BusinessException("上传文件失败: " + errorMsg);
} }
// 4. 获取上传结果 // 5. 获取上传结果
ApiUploadResponse uploadResponse = uploadResult.getData(); ApiUploadResponse uploadResponse = uploadResult.getData();
if (uploadResponse == null) { if (uploadResponse == null) {
throw new BusinessException("上传文件成功但未返回文件信息"); throw new BusinessException("上传文件成功但未返回文件信息");
} }
// 5. 更新录制任务 // 6. 更新录制任务
//文件URL
task.setFileUrl(uploadResponse.getUrl()); task.setFileUrl(uploadResponse.getUrl());
task.setFileSize(uploadResponse.getFileSize()); task.setFileSize(uploadResponse.getFileSize());
task.setStatus("3"); // 已停止 task.setStatus("3");
//文件扩展名
task.setFileFormat(uploadResponse.getFileType()); task.setFileFormat(uploadResponse.getFileType());
task.setStopTime(LocalDateTime.now()); task.setStopTime(LocalDateTime.now());
iRecordingTaskService.updateById(task); iRecordingTaskService.updateById(task);
// 6. 返回结果 // 7. 返回结果
Map<String, String> result = new HashMap<>(); Map<String, String> result = new HashMap<>();
result.put("taskId", task.getTaskId()); result.put("taskId", task.getTaskId());
result.put("fileUrl", task.getFileUrl()); result.put("fileUrl", task.getFileUrl());
result.put("fileKey", uploadResponse.getFileKey()); // 方便前端后续操作 result.put("fileKey", uploadResponse.getFileKey());
log.info("录制文件上传成功,fileUrl={}", task.getFileUrl()); log.info("录制文件上传成功,fileUrl={}", task.getFileUrl());
return Result.success(result); return Result.success(result);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment