From 042ec82489076d9a58e61cb196fbfd0dbefd51d9 Mon Sep 17 00:00:00 2001 From: xiaozzzi <42293085+xiaozzzi@users.noreply.github.com> Date: Sat, 20 Jan 2024 22:29:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=98=B6=E6=AE=B5=E6=80=A7=E4=BA=8B?= =?UTF-8?q?=E9=A1=B9=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=90=84=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/server/todo/TodoService.java | 25 +++++++++++++---- .../server/todo/pojo/TodoGroupRes.java | 4 +++ .../src/main/resources/mapper/TodoMapper.xml | 10 +++---- .../src/renderer/src/views/todo/TodoIndex.vue | 28 +++++++++++++------ .../renderer/src/views/todo/scripts/types.ts | 4 +++ .../src/views/todo/styles/task-progress.scss | 2 +- 6 files changed, 53 insertions(+), 20 deletions(-) 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 @@