diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/TaskServiceImpl.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/TaskServiceImpl.java index 0f8ea27..8470f6b 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/TaskServiceImpl.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/impl/TaskServiceImpl.java @@ -68,10 +68,18 @@ public class TaskServiceImpl extends ServiceImpl implements IT try { List res = new ArrayList<>(); res.add(taskId); + Task task = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Task::getTaskId, taskId)); + Task fatherTask = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Task::getTaskId, task.getTaskFatherId())); + Integer childrenCount = fatherTask.getChildrenCount() - 1; + fatherTask.setChildrenCount(childrenCount); + if (baseMapper.update(fatherTask, Wrappers.lambdaQuery().eq(Task::getTaskId, fatherTask.getTaskId())) != 1) { + throw new BadRequestException("删除失败"); + } while (true) { List list = baseMapper.selectList( Wrappers.lambdaQuery() .in(Task::getTaskFatherId, res)); + baseMapper.update(null, Wrappers.lambdaUpdate().in(Task::getTaskId, res).set(Task::getChildrenCount, 0)); baseMapper.delete(Wrappers.lambdaQuery().in(Task::getTaskId, res)); if (list == null || list.isEmpty()) break; res = list.stream().map(Task::getTaskId).collect(Collectors.toList());