fix: 部门视角下的累计积分统计逻辑 - 需求部门统计消耗积分,接单部门统计获得积分
This commit is contained in:
parent
008441a929
commit
74ce489724
@ -1964,18 +1964,44 @@ public class TaskService {
|
||||
Long todayNewCount = taskMapper.selectCount(todayNewQuery);
|
||||
|
||||
// 获取总积分
|
||||
LambdaQueryWrapper<Task> scoreQuery = new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "completed")
|
||||
.select(Task::getScoreReward);
|
||||
if (!isAdmin) {
|
||||
scoreQuery.eq(Task::getReceiverId, userId);
|
||||
int totalScore = 0;
|
||||
if (isDeptView && "demand".equals(deptType)) {
|
||||
// 需求部门视角:统计该部门发布任务消耗的总积分
|
||||
LambdaQueryWrapper<Task> scoreQuery = new LambdaQueryWrapper<Task>()
|
||||
.in(Task::getPublisherDeptId, deptAndChildIds)
|
||||
.select(Task::getScore);
|
||||
List<Task> 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<Task> scoreQuery = new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "completed")
|
||||
.in(Task::getReceiverDeptId, deptAndChildIds)
|
||||
.select(Task::getScoreReward);
|
||||
List<Task> 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<Task> scoreQuery = new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "completed")
|
||||
.select(Task::getScoreReward);
|
||||
if (!isAdmin) {
|
||||
scoreQuery.eq(Task::getReceiverId, userId);
|
||||
}
|
||||
List<Task> completedTasks = taskMapper.selectList(scoreQuery);
|
||||
totalScore = completedTasks.stream()
|
||||
.filter(t -> t.getScoreReward() != null)
|
||||
.mapToInt(t -> t.getScoreReward().intValue())
|
||||
.sum();
|
||||
}
|
||||
List<Task> completedTasks = taskMapper.selectList(scoreQuery);
|
||||
|
||||
int totalScore = completedTasks.stream()
|
||||
.filter(t -> t.getScoreReward() != null)
|
||||
.mapToInt(t -> t.getScoreReward().intValue())
|
||||
.sum();
|
||||
|
||||
// 获取当月发布的任务数
|
||||
Long publishedCount = 0L;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user