From ce9423cbefab9ed9bd6983bcd557eb85648fe64c Mon Sep 17 00:00:00 2001 From: liweiyi <190785909@qq.com> Date: Tue, 4 Mar 2025 23:30:34 +0800 Subject: [PATCH] bug fixed --- .../com/chestnut/exmodel/service/ExModelService.java | 5 +++-- .../xmodel/service/impl/ModelDataServiceImpl.java | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/chestnut-cms/chestnut-cms-exmodel/src/main/java/com/chestnut/exmodel/service/ExModelService.java b/chestnut-cms/chestnut-cms-exmodel/src/main/java/com/chestnut/exmodel/service/ExModelService.java index 30f2a52c..571c169d 100644 --- a/chestnut-cms/chestnut-cms-exmodel/src/main/java/com/chestnut/exmodel/service/ExModelService.java +++ b/chestnut-cms/chestnut-cms-exmodel/src/main/java/com/chestnut/exmodel/service/ExModelService.java @@ -16,6 +16,7 @@ package com.chestnut.exmodel.service; import com.chestnut.common.utils.NumberUtils; +import com.chestnut.common.utils.ObjectUtils; import com.chestnut.contentcore.domain.CmsCatalog; import com.chestnut.contentcore.domain.CmsContent; import com.chestnut.contentcore.service.ICatalogService; @@ -79,8 +80,8 @@ public class ExModelService { List list = new ArrayList<>(); metaModel.getFields().forEach(f -> { Object fv = data.get(f.getCode()); - if(Objects.isNull(fv) || fv.toString().isEmpty()) { - fv = f.getDefaultValue(); + if(Objects.isNull(fv)) { + fv = ObjectUtils.nonNullOrElseAsString(f.getDefaultValue(), Object::toString); } XModelFieldDataDTO dto = XModelFieldDataDTO.newInstance(f, fv); list.add(dto); diff --git a/chestnut-modules/chestnut-meta/src/main/java/com/chestnut/xmodel/service/impl/ModelDataServiceImpl.java b/chestnut-modules/chestnut-meta/src/main/java/com/chestnut/xmodel/service/impl/ModelDataServiceImpl.java index d78b0b6a..a3d49d40 100644 --- a/chestnut-modules/chestnut-meta/src/main/java/com/chestnut/xmodel/service/impl/ModelDataServiceImpl.java +++ b/chestnut-modules/chestnut-meta/src/main/java/com/chestnut/xmodel/service/impl/ModelDataServiceImpl.java @@ -209,10 +209,13 @@ public class ModelDataServiceImpl implements IModelDataService { sqlBuilder.eq(pkField.getFieldName(), pkValues.get(pkField.getCode())); } Map map = sqlBuilder.selectOne(); - if (map == null) { - return Map.of(); - } Map dataMap = new HashMap<>(); + if (map == null) { + model.getFields().forEach(f -> { + dataMap.put(f.getCode(), getControlType(f.getControlType()).stringAsValue(StringUtils.EMPTY)); + }); + return dataMap; + } // 固定字段 mmt.getFixedFields().forEach(f -> { Object v = map.get(f.getFieldName());