From 4cb521f0295bd62fd0dacb38a7ecc0667c40ccad Mon Sep 17 00:00:00 2001 From: devezhao Date: Tue, 15 Apr 2025 20:36:20 +0800 Subject: [PATCH] hotfix: clazz hide --- .../general/ClassificationManager.java | 39 ++++++------------- .../metadata/easymeta/EasyClassification.java | 4 +- .../service/general/RecentlyUsedHelper.java | 10 +++-- .../core/support/general/DataListWrapper.java | 7 ++-- .../general/RecentlyUsedSearchController.java | 4 +- 5 files changed, 27 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/rebuild/core/configuration/general/ClassificationManager.java b/src/main/java/com/rebuild/core/configuration/general/ClassificationManager.java index 45f3a227f..a57a0c22e 100644 --- a/src/main/java/com/rebuild/core/configuration/general/ClassificationManager.java +++ b/src/main/java/com/rebuild/core/configuration/general/ClassificationManager.java @@ -15,6 +15,7 @@ import com.rebuild.core.configuration.ConfigManager; import com.rebuild.core.metadata.EntityHelper; import com.rebuild.core.metadata.easymeta.EasyMetaFactory; import com.rebuild.core.metadata.impl.EasyFieldConfigProps; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import java.io.Serializable; @@ -47,7 +48,7 @@ public class ClassificationManager implements ConfigManager { } /** - * 获取全名称(包括父级,用 . 分割) + * 获取全名称(包括父级) * * @param itemId * @return @@ -61,39 +62,20 @@ public class ClassificationManager implements ConfigManager { * @param itemId * @return */ - public String getColor(ID itemId) { - Item item = getItem(itemId); - return item == null ? null : item.Color; - } - - /** - * @param itemId - * @return - */ - public String getCode(ID itemId) { - Item item = getItem(itemId); - return item == null ? null : item.Code; - } - - /** - * @param itemId - * @return - */ - private Item getItem(ID itemId) { - final String ckey = "ClassificationITEM38-" + itemId; + public Item getItem(ID itemId) { + final String ckey = "ClassificationITEM40-" + itemId; Item ditem = (Item) Application.getCommonsCache().getx(ckey); if (ditem != null) { return DELETED_ITEM.equals(ditem.Name) ? null : ditem; } Object[] o = Application.createQueryNoFilter( - "select name,fullName,code,color from ClassificationData where itemId = ?") + "select name,fullName,code,color,isHide from ClassificationData where itemId = ?") .setParameter(1, itemId) .unique(); - if (o != null) ditem = new Item((String) o[0], (String) o[1], (String) o[2], (String) o[3]); - + if (o != null) ditem = new Item((String) o[0], (String) o[1], (String) o[2], (String) o[3], ObjectUtils.toBool(o[4])); // 可能已删除 - if (ditem == null) ditem = new Item(DELETED_ITEM, null, null, null); + if (ditem == null) ditem = new Item(DELETED_ITEM, null, null, null, true); Application.getCommonsCache().putx(ckey, ditem); return DELETED_ITEM.equals(ditem.Name) ? null : ditem; @@ -188,18 +170,21 @@ public class ClassificationManager implements ConfigManager { } // Bean - static class Item implements Serializable { + @Getter + public static class Item implements Serializable { private static final long serialVersionUID = -1903227875771376652L; - Item(String name, String fullName, String code, String color) { + Item(String name, String fullName, String code, String color, boolean isHide) { this.Name = name; this.FullName = fullName; this.Code = code; this.Color = color; + this.Hide = isHide; } final String Name; final String FullName; final String Code; final String Color; + final boolean Hide; } } diff --git a/src/main/java/com/rebuild/core/metadata/easymeta/EasyClassification.java b/src/main/java/com/rebuild/core/metadata/easymeta/EasyClassification.java index 63e7b6179..e51d00d62 100644 --- a/src/main/java/com/rebuild/core/metadata/easymeta/EasyClassification.java +++ b/src/main/java/com/rebuild/core/metadata/easymeta/EasyClassification.java @@ -30,8 +30,8 @@ public class EasyClassification extends EasyReference { JSONObject map = (JSONObject) super.wrapValue(value); if (map != null) { map.remove("entity"); - String color = ClassificationManager.instance.getColor((ID) value); - if (color != null) map.put("color", color); + ClassificationManager.Item item = ClassificationManager.instance.getItem((ID) value); + if (item != null && item.getColor() != null) map.put("color", item.getColor()); } return map; } diff --git a/src/main/java/com/rebuild/core/service/general/RecentlyUsedHelper.java b/src/main/java/com/rebuild/core/service/general/RecentlyUsedHelper.java index b0c8b4afa..e33e54a25 100644 --- a/src/main/java/com/rebuild/core/service/general/RecentlyUsedHelper.java +++ b/src/main/java/com/rebuild/core/service/general/RecentlyUsedHelper.java @@ -9,6 +9,7 @@ package com.rebuild.core.service.general; import cn.devezhao.persist4j.engine.ID; import com.rebuild.core.Application; +import com.rebuild.core.configuration.general.ClassificationManager; import com.rebuild.core.metadata.EntityHelper; import com.rebuild.core.metadata.MetadataHelper; import com.rebuild.core.privileges.UserFilters; @@ -90,9 +91,12 @@ public class RecentlyUsedHelper { // 是否符合条件 if (checkFilter != null) { - if (!QueryHelper.isMatchFilter(raw, checkFilter)) { - continue; - } + if (!QueryHelper.isMatchFilter(raw, checkFilter)) continue; + } + // fix:4.0.2 + if (entityCode == EntityHelper.ClassificationData) { + ClassificationManager.Item item = ClassificationManager.instance.getItem(raw); + if (item == null || item.isHide()) continue; } try { diff --git a/src/main/java/com/rebuild/core/support/general/DataListWrapper.java b/src/main/java/com/rebuild/core/support/general/DataListWrapper.java index d2b7fed59..4e1c133d7 100644 --- a/src/main/java/com/rebuild/core/support/general/DataListWrapper.java +++ b/src/main/java/com/rebuild/core/support/general/DataListWrapper.java @@ -252,10 +252,11 @@ public class DataListWrapper { value = colorValue; } else if (easyField.getDisplayType() == DisplayType.CLASSIFICATION) { - String color = ClassificationManager.instance.getColor((ID) originValue); - if (StringUtils.isNotBlank(color)) { + ClassificationManager.Item item = ClassificationManager.instance.getItem((ID) originValue); + if (item != null && StringUtils.isNotBlank(item.getColor())) { value = JSONUtils.toJSONObject( - new String[]{ "text", "color" }, new Object[]{ value, color }); + new String[]{ "text", "color" }, + new Object[]{ value, item.getColor() }); } } } diff --git a/src/main/java/com/rebuild/web/general/RecentlyUsedSearchController.java b/src/main/java/com/rebuild/web/general/RecentlyUsedSearchController.java index 10ef1d2e9..235badb1a 100644 --- a/src/main/java/com/rebuild/web/general/RecentlyUsedSearchController.java +++ b/src/main/java/com/rebuild/web/general/RecentlyUsedSearchController.java @@ -87,10 +87,10 @@ public class RecentlyUsedSearchController extends BaseController { label = FieldValueHelper.NO_LABEL_PREFIX + id.toLiteral().toUpperCase(); } - String code = isClazz ? ClassificationManager.instance.getCode(id) : null; + ClassificationManager.Item item = isClazz ? ClassificationManager.instance.getItem(id) : null; data.add(JSONUtils.toJSONObject( new String[] { "id", "text", "code" }, - new Object[] { id, label, code })); + new Object[] { id, label, item == null ? null : item.getCode() })); } if (useGroupName != null) {