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 4e16960..2cd20fb 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 @@ -213,7 +213,7 @@ public class TaskServiceImpl extends ServiceImpl implements IT private int upperBound(List data, long x) { int l = 0, r = data.size() - 1; - if(data.get(r).getTaskFatherId().equals(x)) + if (data.get(r).getTaskFatherId().equals(x)) return r; while (l < r) { int mid = (l + r) / 2; @@ -227,7 +227,7 @@ public class TaskServiceImpl extends ServiceImpl implements IT @Override public List listMyTasks(String token, Integer projectId) throws ForbiddenException { Integer staffId = TokenUtils.getStaffId(token); - if(projectGroupService.getProjectAccessLevel(token,projectId)==0){ + if (projectGroupService.getProjectAccessLevel(token, projectId) == 0) { throw new ForbiddenException("不可操作的项目"); } List resList = baseMapper.selectList(Wrappers.lambdaQuery() @@ -519,11 +519,22 @@ public class TaskServiceImpl extends ServiceImpl implements IT if (projectGroupService.compareProjectAccessLevel(projectId, token, transferredStaffId) > 0) { throw new ForbiddenException(ForbiddenException.UNABLE_TO_OPERATE); } - Long transferredTaskCount = baseMapper.selectCount(Wrappers.lambdaQuery().eq(Task::getTaskHolderId, transferredStaffId)); + Long transferredTaskCount = baseMapper.selectCount(Wrappers.lambdaQuery() + .eq(Task::getTaskHolderId, transferredStaffId) + .and(wrapper -> wrapper + .eq(Task::getTaskStatus, Task.STATUS_WAITING) + .or() + .eq(Task::getTaskStatus, Task.STATUS_PROCESSING) + )); int updatedTaskCount = baseMapper.update( null, Wrappers.lambdaUpdate() .eq(Task::getTaskHolderId, transferredStaffId) + .and(wrapper -> wrapper + .eq(Task::getTaskStatus, Task.STATUS_WAITING) + .or() + .eq(Task::getTaskStatus, Task.STATUS_PROCESSING) + ) .set(Task::getTaskHolderId, targetStaffId) ); return transferredTaskCount.intValue() == updatedTaskCount; diff --git a/src/test/java/cn/edu/hfut/rmdjzz/projectmanagement/SerializeTests.java b/src/test/java/cn/edu/hfut/rmdjzz/projectmanagement/SerializeTests.java index d1bdda6..116c833 100644 --- a/src/test/java/cn/edu/hfut/rmdjzz/projectmanagement/SerializeTests.java +++ b/src/test/java/cn/edu/hfut/rmdjzz/projectmanagement/SerializeTests.java @@ -24,7 +24,7 @@ public class SerializeTests { public void serializeTime() { String timestamp = objectMapper.writeValueAsString(LocalDateTime.now()); System.out.println(timestamp); - System.out.println(objectMapper.readValue(timestamp, LocalDateTime.class)); + System.out.println(objectMapper.readValue("1657693261", LocalDateTime.class)); } @SneakyThrows