From d41a0eb83a5e6acf3a5a67df817a36491fece052 Mon Sep 17 00:00:00 2001 From: "yang.yongquan" <3395816735@qq.com> Date: Mon, 4 Jul 2022 21:13:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=E5=92=8C?= =?UTF-8?q?=E5=AD=90=E4=BB=BB=E5=8A=A1=E7=9A=84=E5=88=A0=E9=99=A4=E5=92=8C?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=93=8D=E4=BD=9C=EF=BC=88=E5=BE=85=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ITaskService.java | 3 ++ .../service/impl/TaskServiceImpl.java | 54 +++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/ITaskService.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/ITaskService.java index cd0113a..7b254d4 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/ITaskService.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/service/ITaskService.java @@ -13,6 +13,9 @@ import java.util.List; */ public interface ITaskService extends IService { List getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException; + List> getTaskAndSubTask(Long taskId); + Boolean deleteTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException; + Boolean closeTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException; Boolean checkHolder(Integer staffId,Long taskId); Boolean checkHolder(String token,Long taskId); List getMyTaskList(String token,Integer projectId) throws BadRequestException; 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 ade0e7a..8e107d8 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 @@ -19,6 +19,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @author 张韬 @@ -36,6 +37,59 @@ public class TaskServiceImpl extends ServiceImpl implements IT return baseMapper.selectList(Wrappers.lambdaQuery().eq(Task::getTaskProjectId,projectId).eq(Task::getTaskFatherId,fatherId)); } + @Override + public List> getTaskAndSubTask(Long taskId) { + List> resList = new ArrayList<>(); + List res = new ArrayList<>(); + res.add(taskId); + resList.add(res); + while(true) { + List list = baseMapper.selectList(Wrappers.lambdaQuery().in(Task::getTaskFatherId, res)); + if(list == null || list.isEmpty()) break; + res = list.stream().map(Task::getTaskId).collect(Collectors.toList()); + resList.add(res); + } + return resList; + } + + @Override + public Boolean deleteTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException{ + if(projectGroupService.getUserLevelInGroup(token,projectId)==0) { + throw new BadRequestException("错误参数"); + } + if(!checkHolder(token, taskId)) { + throw new BadRequestException("错误父级参数"); + } + List> resList = getTaskAndSubTask(taskId); + try { + for (List list: resList) { + baseMapper.delete(Wrappers.lambdaQuery().in(Task::getTaskId, list)); + } + return true; + } catch (Exception e) { + return false; + } + } + + @Override + public Boolean closeTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException{ + if(projectGroupService.getUserLevelInGroup(token,projectId)==0) { + throw new BadRequestException("错误参数"); + } + if(!checkHolder(token, taskId)) { + throw new BadRequestException("错误父级参数"); + } + List> resList = getTaskAndSubTask(taskId); + try { + for (List list: resList) { + baseMapper.update(null, Wrappers.lambdaUpdate().in(Task::getTaskId, list).set(Task::getTaskType, "关闭")); + } + return true; + } catch (Exception e) { + return false; + } + } + @Override public Boolean checkHolder(Integer staffId,Long taskId){ try{