视频图片儿分析模型。

This commit is contained in:
spllzh
2025-10-12 09:37:43 +08:00
parent b047a3be90
commit 5f2c952a6e
33 changed files with 1935 additions and 104 deletions

View File

@@ -26,12 +26,12 @@ public class DetectVideoTemplateController {
private IDetectVideoTemplateService detectVideoTemplateService;
/**
* 视频模板检测接口
* 视频模板上传和检测接口
*/
@PostMapping("/uploadAndDetect")
@Operation(summary = "视频模板检测", description = "检测视频模板信息")
public ResponseEntity<Map<String, Object>> detectVideoTemplate(
@Parameter(description = "头像文件", required = true)
@Operation(summary = "视频模板上传和检测", description = "上传视频模板文件,生成短链接并进行模板检测")
public ResponseEntity<Map<String, Object>> uploadAndDetectVideoTemplate(
@Parameter(description = "视频模板文件", required = true)
@RequestParam("file") MultipartFile file,
@Parameter(description = "用户ID", required = false)
@RequestParam(value = "userId", required = false) String userId,
@@ -39,43 +39,61 @@ public class DetectVideoTemplateController {
@RequestParam(value = "ownerName", required = false) String ownerName,
@Parameter(description = "所属人电话", required = false)
@RequestParam(value = "ownerPhone", required = false) String ownerPhone,
@Parameter(description = "头像名称", required = false)
@RequestParam(value = "avatarName", required = false) String avatarName,
@Parameter(description = "模板名称", required = false)
@RequestParam(value = "templateName", required = false) String templateName,
@Parameter(description = "模型名称", required = false)
@RequestParam(value = "model", required = false) String model,
@Parameter(description = "短链接有效期(秒),默认1小时", required = false)
@RequestParam(value = "expiresInSeconds", defaultValue = "360000") int expiresInSeconds ){
@Parameter(description = "短链接有效期(秒),默认7天", required = false)
@RequestParam(value = "expiresInSeconds", defaultValue = "604800") int expiresInSeconds) {
Map<String, Object> result = new HashMap<>();
try {
log.info("开始处理视频模板上传和检测,文件名: {}, 大小: {} bytes, 用户ID: {}",
file.getOriginalFilename(), file.getSize(), userId);
// 执行视频模板检测
com.rj.entity.DetectVideoTemplate detectLog = detectVideoTemplateService.detectVideoTemplateAndSave("", ownerName, ownerPhone, avatarName, model);
// 执行视频模板上传和检测
com.rj.entity.DetectVideoTemplate detectLog = detectVideoTemplateService.uploadAndDetectVideoTemplate(
file, userId, ownerName, ownerPhone, templateName, model, expiresInSeconds);
// 构建响应结果
result.put("success", detectLog.getSuccess());
result.put("message", detectLog.getSuccess() ? "视频模板检测成功" : "视频模板检测失败");
result.put("videoUrl", "");
result.put("message", detectLog.getSuccess() ? "视频模板上传和检测成功" : "视频模板上传和检测失败");
result.put("originalFileName", file.getOriginalFilename());
result.put("fileSize", file.getSize());
result.put("videoUrl", detectLog.getVideoUrl());
result.put("tempUrl", detectLog.getTempUrl());
result.put("tempUrlExpiresAt", detectLog.getTempUrlExpiresAt());
result.put("requestId", detectLog.getRequestId());
result.put("taskId", detectLog.getTaskId());
result.put("taskStatus", detectLog.getTaskStatus());
result.put("templateId", detectLog.getTemplateId());
result.put("processingTimeMs", detectLog.getProcessingTimeMs());
result.put("userId", userId);
result.put("ownerName", detectLog.getOwnerName());
result.put("ownerPhone", detectLog.getOwnerPhone());
result.put("avatarName", detectLog.getAvatarName());
result.put("templateName", detectLog.getTemplateName());
result.put("model", detectLog.getModel());
result.put("expiresInSeconds", expiresInSeconds);
// 视频模板检测结果
result.put("videoTemplateDetection", detectLog.toString());
if (!detectLog.getSuccess()) {
result.put("errorMessage", detectLog.getErrorMessage());
log.warn("视频模板检测失败: {}", detectLog.getErrorMessage());
return ResponseEntity.badRequest().body(result);
} else {
log.info("视频模板检测成功模板ID: {}", detectLog.getTemplateId());
}
log.info("视频模板上传和检测处理完成文件URL: {}", detectLog.getVideoUrl());
return ResponseEntity.ok(result);
} catch (Exception e) {
log.error("视频模板检测失败: {}", e.getMessage(), e);
log.error("视频模板上传和检测失败: {}", e.getMessage(), e);
result.put("success", false);
result.put("message", "视频模板检测失败: " + e.getMessage());
result.put("message", "视频模板上传和检测失败: " + e.getMessage());
return ResponseEntity.internalServerError().body(result);
}
}
@@ -93,7 +111,7 @@ public class DetectVideoTemplateController {
String ownerName = requestBody.get("ownerName");
String ownerPhone = requestBody.get("ownerPhone");
String model = requestBody.get("model");
String avatarName = requestBody.get("avatarName");
String templateName = requestBody.get("templateName");
if (videoUrl == null || videoUrl.trim().isEmpty()) {
result.put("success", false);
@@ -104,17 +122,21 @@ public class DetectVideoTemplateController {
log.info("开始视频模板检测JSON视频URL: {}", videoUrl);
// 执行视频模板检测
com.rj.entity.DetectVideoTemplate detectLog = detectVideoTemplateService.detectVideoTemplateAndSave(videoUrl, ownerName, ownerPhone, avatarName, model);
com.rj.entity.DetectVideoTemplate detectLog = detectVideoTemplateService.detectVideoTemplateAndSave(videoUrl, ownerName, ownerPhone, templateName, model);
result.put("success", detectLog.getSuccess());
result.put("message", detectLog.getSuccess() ? "视频模板检测成功" : "视频模板检测失败");
result.put("videoUrl", videoUrl);
result.put("tempUrl", detectLog.getTempUrl());
result.put("tempUrlExpiresAt", detectLog.getTempUrlExpiresAt());
result.put("requestId", detectLog.getRequestId());
result.put("taskId", detectLog.getTaskId());
result.put("taskStatus", detectLog.getTaskStatus());
result.put("templateId", detectLog.getTemplateId());
result.put("processingTimeMs", detectLog.getProcessingTimeMs());
result.put("ownerName", detectLog.getOwnerName());
result.put("ownerPhone", detectLog.getOwnerPhone());
result.put("avatarName", detectLog.getAvatarName());
result.put("templateName", detectLog.getTemplateName());
result.put("model", detectLog.getModel());
if (!detectLog.getSuccess()) {
@@ -152,14 +174,14 @@ public class DetectVideoTemplateController {
@RequestParam(required = false) String ownerName,
@Parameter(description = "所属人电话", required = false)
@RequestParam(required = false) String ownerPhone,
@Parameter(description = "头像名称", required = false)
@RequestParam(required = false) String avatarName) {
@Parameter(description = "模板名称", required = false)
@RequestParam(required = false) String templateName) {
Map<String, Object> result = new HashMap<>();
try {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.rj.entity.DetectVideoTemplate> page =
detectVideoTemplateService.getPageList(current, size, success, startTime, endTime, ownerName, ownerPhone, avatarName);
detectVideoTemplateService.getPageList(current, size, success, startTime, endTime, ownerName, ownerPhone, templateName);
result.put("success", true);
result.put("message", "查询成功");