From aab90914e97aaa7aa487bcbe42e8a4c32a22ccdd Mon Sep 17 00:00:00 2001 From: gyl <80454341+goten7@users.noreply.github.com> Date: Fri, 20 Oct 2023 13:50:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E4=BD=93=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=94=AF=E6=8C=81=E5=BF=BD=E7=95=A5=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E5=B1=9E=E6=80=A7=20(#254)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 实体对比方法支持忽略指定属性 * feat: 优化 --- .../java/org/hswebframework/web/bean/Diff.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hsweb-core/src/main/java/org/hswebframework/web/bean/Diff.java b/hsweb-core/src/main/java/org/hswebframework/web/bean/Diff.java index 08a9a2f37..6a40bb1f7 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/bean/Diff.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/bean/Diff.java @@ -1,16 +1,13 @@ package org.hswebframework.web.bean; import com.alibaba.fastjson.JSON; +import com.google.common.collect.Sets; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import lombok.ToString; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Getter @Setter @@ -24,13 +21,18 @@ public class Diff { private Object after; - public static List of(Object before, Object after) { + + public static List of(Object before, Object after, String... ignoreProperty) { List diffs = new ArrayList<>(); + Set ignores = Sets.newHashSet(ignoreProperty); Map beforeMap = FastBeanCopier.copy(before, HashMap::new); Map afterMap = FastBeanCopier.copy(after, HashMap::new); for (Map.Entry entry : afterMap.entrySet()) { + if (ignores.contains(entry.getKey())) { + continue; + } Object afterValue = entry.getValue(); String key = entry.getKey(); Object beforeValue = beforeMap.get(key);