From 7cef55b51f7c3e5f345392f0ae26050a3646a197 Mon Sep 17 00:00:00 2001 From: guqing <38999863+guqing@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:32:05 +0800 Subject: [PATCH] fix: new tags showing null post count on theme (#7049) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind improvement /area core /milestone 2.20.x #### What this PR does / why we need it: 修复新创建的标签在主题端展示关联文章数量为 null 的问题 #### Which issue(s) this PR fixes: Fixes #7042 #### Does this PR introduce a user-facing change? ```release-note 修复新创建的标签在主题端展示关联文章数量为 null 的问题 ``` --- .../java/run/halo/app/core/reconciler/TagReconciler.java | 9 ++++++++- .../main/java/run/halo/app/theme/finders/vo/TagVo.java | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/run/halo/app/core/reconciler/TagReconciler.java b/application/src/main/java/run/halo/app/core/reconciler/TagReconciler.java index 466059790..dec3af3d6 100644 --- a/application/src/main/java/run/halo/app/core/reconciler/TagReconciler.java +++ b/application/src/main/java/run/halo/app/core/reconciler/TagReconciler.java @@ -52,10 +52,17 @@ public class TagReconciler implements Reconciler { String newPattern = tagPermalinkPolicy.pattern(); annotations.put(Constant.PERMALINK_PATTERN_ANNO, newPattern); - String permalink = tagPermalinkPolicy.permalink(tag); var status = tag.getStatusOrDefault(); + String permalink = tagPermalinkPolicy.permalink(tag); status.setPermalink(permalink); + if (status.getPostCount() == null) { + status.setPostCount(0); + } + if (status.getVisiblePostCount() == null) { + status.setVisiblePostCount(0); + } + // Update the observed version. status.setObservedVersion(tag.getMetadata().getVersion() + 1); diff --git a/application/src/main/java/run/halo/app/theme/finders/vo/TagVo.java b/application/src/main/java/run/halo/app/theme/finders/vo/TagVo.java index fc1e4c997..7272490cd 100644 --- a/application/src/main/java/run/halo/app/theme/finders/vo/TagVo.java +++ b/application/src/main/java/run/halo/app/theme/finders/vo/TagVo.java @@ -1,5 +1,7 @@ package run.halo.app.theme.finders.vo; +import static org.apache.commons.lang3.ObjectUtils.defaultIfNull; + import lombok.Builder; import lombok.Value; import run.halo.app.core.extension.content.Tag; @@ -33,7 +35,7 @@ public class TagVo implements ExtensionVoOperator { .metadata(tag.getMetadata()) .spec(spec) .status(status) - .postCount(tag.getStatusOrDefault().getVisiblePostCount()) + .postCount(defaultIfNull(status.getVisiblePostCount(), 0)) .build(); } }