fix: 完结任务必须先配置并启用第三方素材API

This commit is contained in:
Your Name 2026-01-07 00:31:32 +08:00
parent 724c1b8b8f
commit a520890284

View File

@ -288,39 +288,36 @@ public class TaskItemService {
throw new BusinessException(ResultCode.TASK_STATUS_ERROR, "只能完结进行中的子任务");
}
// 4. 检查是否启用第三方素材API验证
// 4. 检查第三方素材API配置并验证
String downloadUrl = null;
boolean externalApiEnabled = "true".equalsIgnoreCase(
systemConfigService.getConfigValue("external_asset_api_enabled", "false"));
if (externalApiEnabled) {
// 调用第三方素材API验证任务完成状态
String taskNo = item.getItemNo(); // 使用子任务编号作为任务号
try {
downloadUrl = externalAssetService.checkTaskCompletion(taskNo);
} catch (Exception e) {
log.warn("调用第三方素材API失败: {}", e.getMessage());
// API调用失败时,提示用户
throw new BusinessException(ResultCode.ERROR,
"素材API验证失败,请稍后重试或联系管理员");
}
if (downloadUrl == null) {
// 如果第三方API未返回下载链接,提示用户去上传素材
throw new BusinessException(ResultCode.ERROR,
"素材未提交,请先前往 3D.YYDD.AI 提交任务素材后再完结任务");
}
log.info("第三方素材API返回下载链接: {}", downloadUrl);
} else {
// 未启用第三方API,允许直接完结任务
log.info("第三方素材API未启用,直接完结任务: itemId={}", itemId);
// 如果有传入deliveryPath,则使用它
if (deliveryPath != null && !deliveryPath.trim().isEmpty()) {
downloadUrl = deliveryPath;
}
if (!externalApiEnabled) {
// 未启用第三方API,不允许完结任务
throw new BusinessException(ResultCode.ERROR,
"请先在系统设置中启用并配置第三方素材API后才能完结任务");
}
// 调用第三方素材API验证任务完成状态
String taskNo = item.getItemNo(); // 使用子任务编号作为任务号
try {
downloadUrl = externalAssetService.checkTaskCompletion(taskNo);
} catch (Exception e) {
log.warn("调用第三方素材API失败: {}", e.getMessage());
// API调用失败时,提示用户
throw new BusinessException(ResultCode.ERROR,
"素材API验证失败: " + e.getMessage());
}
if (downloadUrl == null || downloadUrl.trim().isEmpty()) {
// 如果第三方API未返回下载链接,提示用户去上传素材
throw new BusinessException(ResultCode.ERROR,
"素材未提交,请先前往 3D.YYDD.AI 提交任务素材后再完结任务");
}
log.info("第三方素材API返回下载链接: {}", downloadUrl);
// 5. 更新子任务状态
item.setStatus("completed");