From d4a2b7d43db6c79540df4ec1495b2815aa44b0fe Mon Sep 17 00:00:00 2001 From: liu Date: Thu, 20 Jun 2024 17:59:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=95=B0=E5=AD=97=E4=BA=BA?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HumanManageServiceImpl.java | 30 ++++++++++++------- .../manage/task/HumanManageTask.java | 3 ++ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/HumanManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/HumanManageServiceImpl.java index 73edbd9a..3949422a 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/HumanManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/HumanManageServiceImpl.java @@ -43,6 +43,13 @@ public class HumanManageServiceImpl implements HumanManageService { File imageFile = fileManageService.downloadFile(human.getImageFileId()); // 创建一个图片临时文件 log.info("提交文件生成,文件名:{}", FileUtil.getName(imageFile)); + generateSilent(human, imageFile); + generateDynamic(human, imageFile); + + humanService.updateById(human); + } + + private void generateSilent(Human human, File imageFile) throws Exception { HumanGenerateDTO silentDTO; try { String post = HttpUtil.post(humanBaseUrl + silent, Map.of("image", imageFile)); @@ -50,14 +57,6 @@ public class HumanManageServiceImpl implements HumanManageService { } catch (Exception e) { throw new BusinessException("生成数字人静态视频异常"); } - - HumanGenerateDTO dynamicDTO; - try { - String post = HttpUtil.post(humanBaseUrl + dynamic, Map.of("image", imageFile)); - dynamicDTO = JSONUtil.toBean(post, HumanGenerateDTO.class); - } catch (Exception e) { - throw new BusinessException("生成数字人动态视频异常"); - } // 保存静态视频 if (silentDTO.getCode() == 200) { if (StrUtil.isNotBlank(silentDTO.getVideo())) { @@ -69,6 +68,18 @@ public class HumanManageServiceImpl implements HumanManageService { human.setSilentTaskUid(silentDTO.getUid()); } + } + + private void generateDynamic(Human human, File imageFile) throws Exception { + HumanGenerateDTO dynamicDTO; + try { + String post = HttpUtil.post(humanBaseUrl + dynamic, Map.of("image", imageFile)); + dynamicDTO = JSONUtil.toBean(post, HumanGenerateDTO.class); + } catch (Exception e) { + throw new BusinessException("生成数字人动态视频异常"); + } + + if (dynamicDTO.getCode() == 200) { if (StrUtil.isNotBlank(dynamicDTO.getVideo())) { // 如果已经生成了视频,那么直接拿到这个视频 @@ -76,9 +87,8 @@ public class HumanManageServiceImpl implements HumanManageService { human.setDynamicVideoFileId(fileResource.getId()); } - human.setDynamicTaskUid(silentDTO.getUid()); + human.setDynamicTaskUid(dynamicDTO.getUid()); } - humanService.updateById(human); } private FileResource convertBase64ToFile(String prefixName, String imageFileName, String base64) throws Exception { diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/task/HumanManageTask.java b/virtual-patient-manage/src/main/java/com/supervision/manage/task/HumanManageTask.java index 37fff07c..50b2b216 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/task/HumanManageTask.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/task/HumanManageTask.java @@ -62,6 +62,9 @@ public class HumanManageTask { } catch (Exception e) { log.error("数字人保存静默视频失败", e); } + } else { + // TODO 如果没有UID,这时就需要重新获取图片,重新生成了 + } }