diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java index 5ff148bf..cb3c57c5 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java @@ -253,7 +253,12 @@ public class TodoRangeQueryService { .get(); for (GroupStat stat : stats) resp.addGroupStat(stat); + // 一个端可能会有重复分类 resp.setTotalStat(); + // 一个端不包含重复分类 + int uniqueExecutableCount = countStatByNodes(request, nodes, TodoType.EXECUTABLE); + int uniqueCopiedToMeCount = countStatByNodes(request, nodes, TodoType.COPIED_TO_ME); + resp.setUniqueTotalStat(new Stat(uniqueExecutableCount, uniqueCopiedToMeCount)); return resp; } catch (Exception e) { log.warn("分类统计异常, request={}", request, e); @@ -267,7 +272,7 @@ public class TodoRangeQueryService { public Integer countStat(MessageGroupNodeStatisticParam request) { PendingMessageStatisticResponseV2 nodeStat = nodeStatCache .getCacheResponseOrReload(request, () -> countStatGroupedImpl(request)); - Stat totalStat = nodeStat.getTotalStat(); + Stat totalStat = nodeStat.getUniqueTotalStat(); return totalStat == null ? 0 : totalStat.getPendingCount(); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/cache/NodeStatCache.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/cache/NodeStatCache.java index c36b79f3..c13baac9 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/cache/NodeStatCache.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/cache/NodeStatCache.java @@ -95,7 +95,7 @@ public class NodeStatCache { private static String buildCacheKey(MessageGroupNodeStatisticParam request) { StringBuffer buf = new StringBuffer(); - buf.append("msg-center:node-stat:v1"); + buf.append("msg-center:node-stat:v2"); Consumer appender = value -> { if (value != null) buf.append(":").append(value); diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageStatisticResponseV2.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageStatisticResponseV2.java index 0c20ae40..1c3d7f5e 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageStatisticResponseV2.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageStatisticResponseV2.java @@ -28,10 +28,15 @@ public class PendingMessageStatisticResponseV2 implements Serializable { private static final long serialVersionUID = 972200410809186003L; /** - * 统计情况总数 (各分类相加) + * 统计总数 (各分类相加) */ private Stat totalStat; + /** + * 统计总数 (一个端分类配置重复了也没有关系) + */ + private Stat uniqueTotalStat; + /** * 分类情况 */