hotfix: clazz hide

This commit is contained in:
devezhao 2025-04-15 20:36:20 +08:00
parent fcd1a00a69
commit 4cb521f029
5 changed files with 27 additions and 37 deletions

View file

@ -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;
}
}

View file

@ -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;
}

View file

@ -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 {

View file

@ -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() });
}
}
}

View file

@ -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) {