diff --git a/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/TodoService.java b/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/TodoService.java index 40678a3..20e3faa 100644 --- a/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/TodoService.java +++ b/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/TodoService.java @@ -41,19 +41,34 @@ public class TodoService extends ServiceImpl { public TodoGroupRes listTodo() { List todos = baseMapper.listTodo(AuthContext.getUserId()); TodoGroupRes res = TodoGroupRes.build(); - for (TodoEntity todo : todos) { - TodoGroupRes.TodoGroup group = todo.to(TodoGroupRes.TodoGroup.class); - if (TodoTypeEnum.DAY.getType().equals(todo.getTodoType())) { + + Map> map = todos.stream().collect(Collectors.groupingBy(TodoEntity::getTodoId)); + map.forEach((todoId, data) -> { + TodoGroupRes.TodoGroup group = data.get(0).to(TodoGroupRes.TodoGroup.class); + Map> taskStatusMap = data.stream().collect(Collectors.groupingBy(TodoEntity::getTaskStatus)); + int w = 0, p = 0, c = 0; + if (CollUtil.isNotEmpty(taskStatusMap.get(TaskStatusEnum.WAITING.name()))) { + w = taskStatusMap.get(TaskStatusEnum.WAITING.name()).get(0).getTaskCount(); + } + if (CollUtil.isNotEmpty(taskStatusMap.get(TaskStatusEnum.PROCESSING.name()))) { + p = taskStatusMap.get(TaskStatusEnum.PROCESSING.name()).get(0).getTaskCount(); + } + if (CollUtil.isNotEmpty(taskStatusMap.get(TaskStatusEnum.COMPLETED.name()))) { + c = taskStatusMap.get(TaskStatusEnum.COMPLETED.name()).get(0).getTaskCount(); + } + group.setTaskCountStat(String.format("%d|%d|%d", w, p, c)); + + if (TodoTypeEnum.DAY.getType().equals(data.get(0).getTodoType())) { res.getTodoDays().put(group.getTodoId(), group); } else { // 未完成的阶段性事项 - if (TodoStatusEnum.OPEN.getType().equals(todo.getTodoStatus())) { + if (TodoStatusEnum.OPEN.getType().equals(data.get(0).getTodoStatus())) { res.getTaskPhased().add(group); } else { res.getTaskPhasedClose().add(group); } } - } + }); return res; } diff --git a/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/pojo/TodoGroupRes.java b/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/pojo/TodoGroupRes.java index 05684c5..1f3bde1 100644 --- a/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/pojo/TodoGroupRes.java +++ b/blossom-backend/backend/src/main/java/com/blossom/backend/server/todo/pojo/TodoGroupRes.java @@ -55,6 +55,10 @@ public class TodoGroupRes { * 任务数量 */ private Integer taskCount; + /** + * 任务数量说明 + */ + private String taskCountStat; /** * 事项状态 1:完成 | 2:未完成 */ diff --git a/blossom-backend/backend/src/main/resources/mapper/TodoMapper.xml b/blossom-backend/backend/src/main/resources/mapper/TodoMapper.xml index bd1c30d..f58ca93 100644 --- a/blossom-backend/backend/src/main/resources/mapper/TodoMapper.xml +++ b/blossom-backend/backend/src/main/resources/mapper/TodoMapper.xml @@ -47,12 +47,12 @@