From 306eb6d823e0bf83e2c085c48b36a3bf9819a0ed Mon Sep 17 00:00:00 2001 From: gitee Date: Wed, 24 Sep 2025 10:06:30 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LiveDigitalServiceImpl.java | 17 ++++- ...veDigitalAvatarManageApplicationTests.java | 65 +++++++++++-------- 2 files changed, 55 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/supervision/livedigitalavatarmanage/service/impl/LiveDigitalServiceImpl.java b/src/main/java/com/supervision/livedigitalavatarmanage/service/impl/LiveDigitalServiceImpl.java index 5692f4d..ec87652 100644 --- a/src/main/java/com/supervision/livedigitalavatarmanage/service/impl/LiveDigitalServiceImpl.java +++ b/src/main/java/com/supervision/livedigitalavatarmanage/service/impl/LiveDigitalServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.supervision.livedigitalavatarmanage.constant.PromptTemplate; +import com.supervision.livedigitalavatarmanage.constant.TaskStautsEnum; import com.supervision.livedigitalavatarmanage.domain.AsyncTaskResult; import com.supervision.livedigitalavatarmanage.dto.AsyncTaskResultDTO; import com.supervision.livedigitalavatarmanage.dto.ScriptKeyPointsDTO; @@ -100,7 +101,21 @@ public class LiveDigitalServiceImpl implements LiveDigitalService { @Override public AsyncTaskResultDTO> querySalespitchTaskResult(String taskId) { AsyncTaskResult asyncTaskResult = asyncTaskResultService.getById(taskId); - return new AsyncTaskResultDTO<>(asyncTaskResult, new TypeReference<>() {}); + + AsyncTaskResultDTO> resultDTO = new AsyncTaskResultDTO<>(asyncTaskResult, new TypeReference<>() { + }); + if (TaskStautsEnum.SUCCESS.getCode() == asyncTaskResult.getStatus() && CollUtil.isNotEmpty(resultDTO.getResultData())){ + // 根据scriptTypeOrderNum + List sorted = resultDTO.getResultData().stream() + .peek(sp -> { + if (sp.getScriptTypeOrderNum() == null){ + sp.setScriptTypeOrderNum(0); + } + }) + .sorted(Comparator.comparing(SalesPitchResVo::getScriptTypeOrderNum)).toList(); + resultDTO.setResultData(sorted); + } + return resultDTO; } class SalesPitchTask implements Callable> { diff --git a/src/test/java/com/supervision/livedigitalavatarmanage/LiveDigitalAvatarManageApplicationTests.java b/src/test/java/com/supervision/livedigitalavatarmanage/LiveDigitalAvatarManageApplicationTests.java index 61179b0..fb94e91 100644 --- a/src/test/java/com/supervision/livedigitalavatarmanage/LiveDigitalAvatarManageApplicationTests.java +++ b/src/test/java/com/supervision/livedigitalavatarmanage/LiveDigitalAvatarManageApplicationTests.java @@ -54,9 +54,9 @@ class LiveDigitalAvatarManageApplicationTests { groupMap.put(scriptType, list1); } - List>> result = new ArrayList<>(); - for (int i = 0; i < 5; i++) { - List> objects = new ArrayList<>(); + List>>> result = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + List>> objects = new ArrayList<>(); for (String scriptType : scriptTypes) { List>> lists = groupMap.get(scriptType); if (null == lists) { @@ -64,35 +64,48 @@ class LiveDigitalAvatarManageApplicationTests { } int i1 = RandomUtil.randomInt(0, lists.size()); List> maps = lists.get(i1); - objects.addAll(maps); + objects.add(maps); } result.add(objects); } - for (List> mapList : result) { + for (List>> mapList : result) { String scriptId = StrUtil.uuid(); - int i = 0; - int index = 0; - String current = ""; - for (Map mao : mapList) { - String scriptKeyPoint = mao.get("scriptKeyPoint"); - String exampleTemplate = mao.get("exampleTemplate"); - String scriptType = mao.get("scriptType"); - if (StrUtil.equals(scriptKeyPoint, current)){ - index ++; - }else { - current = scriptKeyPoint; - index = 0; + int scriptTypeNum = -1; + for (List> maos : mapList) { + int scriptKeyPointNum = 0; + + String currentScriptType = ""; + for (int i1 = 0; i1 < maos.size(); i1++) { + Map mao = maos.get(i1); + String scriptKeyPoint = mao.get("scriptKeyPoint"); + String exampleTemplate = mao.get("exampleTemplate"); + String scriptType = mao.get("scriptType"); + + // 合并相同的关键点 + if (i1 < maos.size() - 1){ + String nextScriptKeyPoint = maos.get(i1 + 1).get("scriptKeyPoint"); + if (StrUtil.equals(scriptKeyPoint, nextScriptKeyPoint)){ + maos.get(i1 + 1).put("exampleTemplate", exampleTemplate + " " + maos.get(i1 + 1).get("exampleTemplate")); + continue; + } + } + if (StrUtil.equals(scriptType, currentScriptType)){ + scriptKeyPointNum ++; + }else { + currentScriptType = scriptType; + scriptKeyPointNum = 0; + scriptTypeNum ++; + } + ScriptKeypoints keypoints = new ScriptKeypoints(); + keypoints.setScriptType(scriptType); + keypoints.setKeyPoint(scriptKeyPoint); + keypoints.setScriptId(scriptId); + keypoints.setScriptTypeOrderNum(scriptTypeNum); + keypoints.setKeyPointOrderNum(scriptKeyPointNum); + keypoints.setKeyPointExample(exampleTemplate); + scriptKeypointsService.save(keypoints); } - ScriptKeypoints keypoints = new ScriptKeypoints(); - keypoints.setScriptType(scriptType); - keypoints.setKeyPoint(scriptKeyPoint); - keypoints.setScriptId(scriptId); - keypoints.setScriptTypeOrderNum(i); - keypoints.setKeyPointOrderNum(index); - keypoints.setKeyPointExample(exampleTemplate); - scriptKeypointsService.save(keypoints); - i ++; } }