From 74ce48972488f0f4456179b05750ab44c49cec97 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 8 Jan 2026 18:23:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=83=A8=E9=97=A8=E8=A7=86=E8=A7=92?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E7=B4=AF=E8=AE=A1=E7=A7=AF=E5=88=86=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E9=80=BB=E8=BE=91=20-=20=E9=9C=80=E6=B1=82=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=BB=9F=E8=AE=A1=E6=B6=88=E8=80=97=E7=A7=AF=E5=88=86?= =?UTF-8?q?=EF=BC=8C=E6=8E=A5=E5=8D=95=E9=83=A8=E9=97=A8=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E8=8E=B7=E5=BE=97=E7=A7=AF=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/TaskService.java | 48 ++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index d61f8de..96b7990 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -1964,18 +1964,44 @@ public class TaskService { Long todayNewCount = taskMapper.selectCount(todayNewQuery); // 获取总积分 - LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() - .eq(Task::getStatus, "completed") - .select(Task::getScoreReward); - if (!isAdmin) { - scoreQuery.eq(Task::getReceiverId, userId); + int totalScore = 0; + if (isDeptView && "demand".equals(deptType)) { + // 需求部门视角:统计该部门发布任务消耗的总积分 + LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() + .in(Task::getPublisherDeptId, deptAndChildIds) + .select(Task::getScore); + List publishedTasks = taskMapper.selectList(scoreQuery); + totalScore = publishedTasks.stream() + .filter(t -> t.getScore() != null) + .mapToInt(Task::getScore) + .sum(); + log.debug("需求部门积分统计: deptIds={}, totalScore={}", deptAndChildIds, totalScore); + } else if (isDeptView && "receiving".equals(deptType)) { + // 接单部门视角:统计该部门设计师获得的总积分 + LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() + .eq(Task::getStatus, "completed") + .in(Task::getReceiverDeptId, deptAndChildIds) + .select(Task::getScoreReward); + List completedTasks = taskMapper.selectList(scoreQuery); + totalScore = completedTasks.stream() + .filter(t -> t.getScoreReward() != null) + .mapToInt(t -> t.getScoreReward().intValue()) + .sum(); + log.debug("接单部门积分统计: deptIds={}, totalScore={}", deptAndChildIds, totalScore); + } else { + // 个人视角:统计当前用户获得的积分 + LambdaQueryWrapper scoreQuery = new LambdaQueryWrapper() + .eq(Task::getStatus, "completed") + .select(Task::getScoreReward); + if (!isAdmin) { + scoreQuery.eq(Task::getReceiverId, userId); + } + List completedTasks = taskMapper.selectList(scoreQuery); + totalScore = completedTasks.stream() + .filter(t -> t.getScoreReward() != null) + .mapToInt(t -> t.getScoreReward().intValue()) + .sum(); } - List completedTasks = taskMapper.selectList(scoreQuery); - - int totalScore = completedTasks.stream() - .filter(t -> t.getScoreReward() != null) - .mapToInt(t -> t.getScoreReward().intValue()) - .sum(); // 获取当月发布的任务数 Long publishedCount = 0L;