From e9c3b36512c7691f0de5a61182bb2f80d019277a Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Wed, 8 Jul 2026 14:39:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(online):=20=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A1=A8=E5=AD=97=E6=AE=B5=E4=BF=9D=E5=AD=98=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 saveBySqlTable 方法用于保存新增数据表字段 - 添加字段注释逻辑处理,支持传入字段描述并设置默认值 - 集成 StringUtil 工具类进行字符串判空和比较操作 - 重构 OnlineFormController 中的字段创建逻辑,使用新方法替代原有实现 - 优化字段回填 columnId 到 widgetJson 的处理流程 --- .../online/controller/OnlineFormController.java | 14 ++----------- .../common/online/service/OnlineColumnService.java | 10 ++++++++++ .../service/impl/OnlineColumnServiceImpl.java | 23 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java b/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java index d075054..d64b2f6 100644 --- a/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java +++ b/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java @@ -793,23 +793,13 @@ public class OnlineFormController { for (String fieldName : validColumnNames) { SqlTableColumn sqlCol = columnMap.get(fieldName.toLowerCase()); if (sqlCol != null) { - OnlineColumn newCol = new OnlineColumn(); - newCol.setColumnName(sqlCol.getColumnName()); - newCol.setColumnType(sqlCol.getColumnType()); - newCol.setFullColumnType(sqlCol.getFullColumnType()); - if (sqlCol.getColumnDefault() != null) { - newCol.setColumnDefault(sqlCol.getColumnDefault().toString()); - } - newCol.setNullable(sqlCol.getNullable()); - newCol.setTableId(onlineTable.getTableId()); - onlineColumnService.save(newCol); - // 回填 columnId 到 widgetJson JSONObject widget = nameToWidget.get(fieldName); + long columnId = onlineColumnService.saveBySqlTable(sqlCol, onlineTable.getTableId(), widget.getString("showName")); if (widget != null) { JSONObject bindData2 = widget.getJSONObject("bindData"); if (bindData2 != null) { - bindData2.put("columnId", newCol.getColumnId()); + bindData2.put("columnId", columnId); bindData2.put("tableId", onlineTable.getTableId()); } } diff --git a/common/common-online/src/main/java/apelet/common/online/service/OnlineColumnService.java b/common/common-online/src/main/java/apelet/common/online/service/OnlineColumnService.java index 983a086..4832343 100644 --- a/common/common-online/src/main/java/apelet/common/online/service/OnlineColumnService.java +++ b/common/common-online/src/main/java/apelet/common/online/service/OnlineColumnService.java @@ -27,6 +27,16 @@ public interface OnlineColumnService extends IBaseService { List saveNewList(List columnList, Long onlineTableId); /** + * 保存新增数据表字段。 + * + * @param sqlTableColumn 新增数据表字段对象。 + * @param tableId 在线表对象的主键Id。 + * @param columnComment 字段名。 + * @return 插入的在线表字段数据。 + */ + long saveBySqlTable(SqlTableColumn sqlTableColumn, Long tableId, String columnComment); + + /** * 更新数据对象。 * * @param onlineColumn 更新的对象。 diff --git a/common/common-online/src/main/java/apelet/common/online/service/impl/OnlineColumnServiceImpl.java b/common/common-online/src/main/java/apelet/common/online/service/impl/OnlineColumnServiceImpl.java index c66e247..15c7a3c 100644 --- a/common/common-online/src/main/java/apelet/common/online/service/impl/OnlineColumnServiceImpl.java +++ b/common/common-online/src/main/java/apelet/common/online/service/impl/OnlineColumnServiceImpl.java @@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.Page; import com.google.common.base.CaseFormat; +import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -106,6 +107,28 @@ public class OnlineColumnServiceImpl extends BaseService imp return onlineColumnList; } + + @Override + public long saveBySqlTable(SqlTableColumn sqlTableColumn, Long tableId, String columnComment) { + OnlineColumn onlineColumn = new OnlineColumn(); + BeanUtil.copyProperties(sqlTableColumn, onlineColumn, false); + onlineColumn.setColumnId(idGenerator.nextLongId()); + onlineColumn.setTableId(tableId); + // 传了描述,并且不等于原先的描述,并且原先的为空或者为"null",就赋值 + if (StringUtil.isNotBlank(columnComment) && !StringUtil.equals(columnComment, onlineColumn.getColumnComment()) + && (StringUtil.isBlank(onlineColumn.getColumnComment()) || StringUtil.equals("null", onlineColumn.getColumnComment()))) { + onlineColumn.setColumnComment(columnComment); + } + if (StringUtil.isBlank(onlineColumn.getColumnComment())) { + onlineColumn.setColumnComment(onlineColumn.getColumnName()); + } + this.setDefault(sqlTableColumn, onlineColumn); + if (super.save(onlineColumn)) { + return onlineColumn.getColumnId(); + } + return 0; + } + /** * 更新数据对象。 *