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; + } + /** * 更新数据对象。 *