You've already forked FrameTour-BE
refactor(task): 优化重复任务处理逻辑
- 修复重复任务时直接使用旧任务ID的问题 - 实现重复任务的更新机制:重置workerId为空,status为0 - 添加taskParams的更新功能 - 集成任务缓存清理机制 - 修正订单购买状态检查的参数传递
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user