| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package jnpf.base.model.dbtable.dto;
- import cn.hutool.core.util.ObjectUtil;
- import io.swagger.v3.oas.annotations.media.Schema;
- import jnpf.base.model.dbtable.form.DbFieldForm;
- import jnpf.base.model.dbtable.form.DbTableForm;
- import jnpf.database.constant.DbAliasConst;
- import jnpf.database.model.dbfield.DbFieldModel;
- import jnpf.database.model.dbtable.DbTableFieldModel;
- import jnpf.exception.DataException;
- import lombok.Data;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 建表参数对象
- *
- * @author JNPF开发平台组
- * @version V3.1.0
- * @copyright 引迈信息技术有限公司
- * @date 2021/3/12 15:31
- */
- @Data
- public class DbTableFieldDTO {
- @Schema(description = "表基本信息")
- private DbTableForm tableInfo;
- @Schema(description = "字段信息")
- private List<DbFieldForm> tableFieldList;
- /**
- * 获取表模型
- *
- * @param dbLinkId 数据库连接Id
- * @return 表模型
- */
- public DbTableFieldModel getCreDbTableModel(String dbLinkId){
- String table = this.getTableInfo().getNewTable();
- return toCommon(table, null, null, dbLinkId);
- }
- public DbTableFieldModel getUpDbTableModel(String dbLinkId){
- // 更新时用表
- String oldTable = this.getTableInfo().getTable();
- String newTable = this.getTableInfo().getNewTable();
- return toCommon(null, oldTable, newTable, dbLinkId);
- }
- private DbTableFieldModel toCommon(String table, String oldTable, String newTable, String dbLinkId) throws DataException {
- DbTableFieldModel dbTableModel = new DbTableFieldModel();
- DbTableForm dbTableForm = this.getTableInfo();
- // 数据连接Id
- dbTableModel.setDbLinkId(dbLinkId);
- // 创建表名
- dbTableModel.setTable(table);
- // 更新时表名
- dbTableModel.setUpdateOldTable(oldTable);
- dbTableModel.setUpdateNewTable(newTable);
- // 表注释
- dbTableModel.setComment(dbTableForm.getTableName());
- // 表字段集合
- List<DbFieldModel> list = new ArrayList<>();
- for (DbFieldForm dbFieldForm : this.getTableFieldList()) {
- // 字段
- DbFieldModel dbFieldModel = new DbFieldModel();
- // 字段名
- dbFieldModel.setField(dbFieldForm.getField());
- // 字段注释
- dbFieldModel.setComment(dbFieldForm.getFieldName());
- // 主键
- dbFieldModel.setIsPrimaryKey(dbFieldForm.getPrimaryKey() == 1);
- // 非空
- dbFieldModel.setNullSign(DbAliasConst.ALLOW_NULL.getSign(dbFieldForm.getAllowNull()));
- // 数据类型
- dbFieldModel.setLength(dbFieldForm.getDataLength());
- dbFieldModel.setDataType(dbFieldForm.getDataType());
- dbFieldModel.setIsAutoIncrement(ObjectUtil.equal(dbFieldForm.getAutoIncrement(), 1));
- if (dbFieldModel.getIsAutoIncrement() && (!"int".equals(dbFieldForm.getDataType()) && !"bigint".equals(dbFieldForm.getDataType()))) {
- throw new DataException("自增长ID字段数据类型必须为整形或长整型");
- }
- list.add(dbFieldModel);
- }
- dbTableModel.setDbFieldModelList(list);
- return dbTableModel;
- }
- }
|