diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index 64df239c..24348778 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -402,12 +402,15 @@ public class TaskTaskServiceImpl implements TaskService { log.info("创建任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId()); TaskEntity taskEntity = null; + boolean isReuseOldTask = false; if (Integer.valueOf(0).equals(scenicConfig.getInteger("template_new_video_type"))) { log.info("景区{}启用:templateNewVideoType:全新视频原位替换", face.getScenicId()); taskReqQuery.setTemplateId(templateId); + taskReqQuery.setTaskParams(null); // 原位替换模式下,不按taskParams匹配 List templateTaskList = taskMapper.listEntity(taskReqQuery); if (!templateTaskList.isEmpty()) { taskEntity = templateTaskList.getFirst(); + isReuseOldTask = true; log.info("已有旧生成的视频:{}", taskEntity); MemberVideoEntity taskVideoRelation = videoMapper.queryRelationByMemberTask(face.getMemberId(), taskEntity.getId()); if (taskVideoRelation != null) { @@ -428,7 +431,12 @@ public class TaskTaskServiceImpl implements TaskService { taskEntity.setWorkerId(null); taskEntity.setStatus(0); taskEntity.setTaskParams(JacksonUtil.toJSONString(sourcesMap)); - taskMapper.add(taskEntity); + if (isReuseOldTask) { + taskMapper.update(taskEntity); + log.info("更新旧任务! taskId:{}", taskEntity.getId()); + } else { + taskMapper.add(taskEntity); + } memberVideoEntity.setTaskId(taskEntity.getId()); } else { log.info("重复task! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); @@ -590,6 +598,10 @@ public class TaskTaskServiceImpl implements TaskService { public void sendVideoGeneratedServiceNotification(Long taskId, Long memberId) { MemberVideoEntity item = videoMapper.queryRelationByMemberTask(memberId, taskId); MemberRespVO member = memberMapper.getById(memberId); + if (member == null || item == null) { + log.warn("sendVideoGeneratedServiceNotification member or item is null, memberId:{}, taskId:{}", memberId, taskId); + return; + } String openId = member.getOpenId(); MpConfigEntity scenicMp = scenicRepository.getScenicMpConfig(member.getScenicId()); if (StringUtils.isNotBlank(openId) && scenicMp != null) {