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());
|
memberVideoEntity.setTaskId(taskEntity.getId());
|
||||||
} else {
|
} else {
|
||||||
log.info("重复task! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap);
|
log.info("重复task,更新旧任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap);
|
||||||
memberVideoEntity.setTaskId(list.getFirst().getId());
|
TaskRespVO existingTask = list.getFirst();
|
||||||
VideoEntity video = videoMapper.findByTaskId(list.getFirst().getId());
|
// 更新旧任务:重置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) {
|
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()) {
|
if (isBuy.isBuy()) {
|
||||||
memberVideoEntity.setIsBuy(1);
|
memberVideoEntity.setIsBuy(1);
|
||||||
memberVideoEntity.setOrderId(isBuy.getOrderId());
|
memberVideoEntity.setOrderId(isBuy.getOrderId());
|
||||||
|
|||||||
Reference in New Issue
Block a user