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 24348778..b45cee00 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 @@ -439,11 +439,21 @@ public class TaskTaskServiceImpl implements TaskService { } memberVideoEntity.setTaskId(taskEntity.getId()); } else { - log.info("重复task! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); - memberVideoEntity.setTaskId(list.getFirst().getId()); - VideoEntity video = videoMapper.findByTaskId(list.getFirst().getId()); + log.info("重复task,更新旧任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); + TaskRespVO existingTask = list.getFirst(); + // 更新旧任务:重置workerId为空,status为0,更新taskParams + TaskEntity taskUpdate = new TaskEntity(); + taskUpdate.setId(existingTask.getId()); + taskUpdate.setWorkerId(null); + taskUpdate.setStatus(0); + taskUpdate.setTaskParams(JacksonUtil.toJSONString(sourcesMap)); + taskMapper.update(taskUpdate); + videoTaskRepository.clearTaskCache(existingTask.getId()); + + memberVideoEntity.setTaskId(existingTask.getId()); + VideoEntity video = videoMapper.findByTaskId(existingTask.getId()); if (video != null) { - IsBuyRespVO isBuy = orderBiz.isBuy(list.getFirst().getScenicId(), face.getMemberId(), face.getId(), 0, video.getId()); + IsBuyRespVO isBuy = orderBiz.isBuy(existingTask.getScenicId(), face.getMemberId(), face.getId(), 0, video.getId()); if (isBuy.isBuy()) { memberVideoEntity.setIsBuy(1); memberVideoEntity.setOrderId(isBuy.getOrderId());