diff --git a/README.md b/README.md index d3c33e71..f11651ae 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,6 @@ Template.create("system_role", "角色", "role") .values("value", 1, 2) // 设置参数为 color APP.color = 'blue' HOST.color = 'green' .color("blue", "green") - .build(), + .build(); ``` diff --git a/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/CodeGenerator.java b/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/CodeGenerator.java index c0edc158..04daa8da 100644 --- a/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/CodeGenerator.java +++ b/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/CodeGenerator.java @@ -317,7 +317,7 @@ public class CodeGenerator { // convert 文件 new String[]{"/templates/orion-server-module-convert.java.vm", "${type}Convert.java", "convert"}, // cache dto 文件 - new String[]{"/templates/orion-server-module-cache-dto.java.vm", "${type}CacheDTO.java", "entity.dto.${bizPackage}"}, + new String[]{"/templates/orion-server-module-cache-dto.java.vm", "${type}CacheDTO.java", "entity.dto"}, // cache key define 文件 new String[]{"/templates/orion-server-module-cache-key-define.java.vm", "${type}CacheKeyDefine.java", "define"}, // -------------------- 后端 - provider -------------------- @@ -401,7 +401,6 @@ public class CodeGenerator { .append(AnsiForeground.BRIGHT_BLUE.and(AnsiFont.BOLD), "- vue 代码需要注意同一模块的 router 需要自行合并\n") .append(AnsiForeground.BRIGHT_BLUE.and(AnsiFont.BOLD), "- vue 枚举需要自行更改数据类型\n") .append(AnsiForeground.BRIGHT_BLUE.and(AnsiFont.BOLD), "- 菜单 sql 执行完成后 需要在菜单页面刷新缓存\n") - .append(AnsiForeground.BRIGHT_RED.and(AnsiFont.BOLD), "- 数据库实体字段长度限制为最大 65535\n") .toString(); System.out.print(line); } diff --git a/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/engine/VelocityTemplateEngine.java b/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/engine/VelocityTemplateEngine.java index cded1691..f1158ba5 100644 --- a/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/engine/VelocityTemplateEngine.java +++ b/orion-ops-launch/src/main/java/com/orion/ops/launch/generator/engine/VelocityTemplateEngine.java @@ -87,26 +87,9 @@ public class VelocityTemplateEngine extends AbstractTemplateEngine { p.setProperty("file.resource.loader.unicode", StringPool.TRUE); this.velocityEngine = new VelocityEngine(p); } - // 处理表结构 - this.getConfigBuilder().getTableInfoList().forEach(this::processTasble); return this; } - /** - * 处理表结构 - * - * @param tableInfo tableInfo - */ - private void processTasble(TableInfo tableInfo) { - for (TableField field : tableInfo.getFields()) { - TableField.MetaInfo metaInfo = field.getMetaInfo(); - // 限制字段长度最大为 65535 - if (metaInfo.getLength() > 65535) { - Fields.setFieldValue(metaInfo, "length", 65535); - } - } - } - @Override public void writer(@NotNull Map objectMap, @NotNull String templatePath, @NotNull File outputFile) throws Exception { Template template = velocityEngine.getTemplate(templatePath, ConstVal.UTF8); diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-create.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-create.java.vm index b1017708..706e1041 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-create.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-create.java.vm @@ -32,7 +32,9 @@ public class ${type}CreateRequest implements Serializable { #if("$!field.propertyName" != "id") #if("$field.propertyType" == "String") @NotBlank + #if("$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) + #end #else @NotNull #end diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-query.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-query.java.vm index d7f6ff09..26ae9d80 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-query.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-query.java.vm @@ -25,7 +25,7 @@ import java.math.*; public class ${type}QueryRequest extends PageRequest { #foreach($field in ${table.fields}) - #if("$field.propertyType" == "String") + #if("$field.propertyType" == "String" && "$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) #end #if("$!field.comment" != "") diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-update.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-update.java.vm index e66d5e58..5c4791d7 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-update.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-module-entity-request-update.java.vm @@ -31,7 +31,9 @@ public class ${type}UpdateRequest implements Serializable { #if("$field.propertyType" == "String") @NotBlank + #if("$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) + #end #else @NotNull #end diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm index a22d8d25..c0862706 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm @@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; /** * $!{table.comment} 服务实现类 diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm index 1f6adc88..58561c80 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * $!{table.comment} 对外服务实现类 diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-create.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-create.java.vm index 6f4345e7..d28c7f52 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-create.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-create.java.vm @@ -31,7 +31,9 @@ public class ${type}CreateDTO implements Serializable { #if("$!field.propertyName" != "id") #if("$field.propertyType" == "String") @NotBlank + #if("$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) + #end #else @NotNull #end diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-query.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-query.java.vm index c0cc5918..e8dff8c6 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-query.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-query.java.vm @@ -26,7 +26,7 @@ import java.math.*; public class ${type}QueryDTO implements Serializable { #foreach($field in ${table.fields}) - #if("$field.propertyType" == "String") + #if("$field.propertyType" == "String" && "$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) #end #if("$!field.comment" != "") diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-update.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-update.java.vm index 309cafa9..8c94f48b 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-update.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-provider-entity-dto-update.java.vm @@ -30,7 +30,9 @@ public class ${type}UpdateDTO implements Serializable { #if("$field.propertyType" == "String") @NotBlank + #if("$field.metaInfo.jdbcType" != "LONGVARCHAR") @Size(max = $field.metaInfo.length) + #end #else @NotNull #end diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-test-create-table.sql.vm b/orion-ops-launch/src/main/resources/templates/orion-server-test-create-table.sql.vm index 93471236..88090683 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-test-create-table.sql.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-test-create-table.sql.vm @@ -5,9 +5,13 @@ CREATE TABLE `${table.name}` `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id', #foreach($field in ${table.fields}) #if("$!field.propertyName" != "id") + #if("$field.metaInfo.jdbcType" == "TINYINT" || "$field.metaInfo.jdbcType" == "SMALLINT" || "$field.metaInfo.jdbcType" == "INTEGER" || "$field.metaInfo.jdbcType" == "BIGINT" || "$field.metaInfo.jdbcType" == "FLOAT" || "$field.metaInfo.jdbcType" == "DOUBLE" || "$field.metaInfo.jdbcType" == "NUMERIC" || "$field.metaInfo.jdbcType" == "LONGVARCHAR" || "$field.metaInfo.jdbcType" == "DATE" || "$field.metaInfo.jdbcType" == "TIME" || "$field.metaInfo.jdbcType" == "TIMESTAMP") + `${field.columnName}` ${field.metaInfo.jdbcType}#if(!$field.metaInfo.nullable) NOT NULL#end#if($null.isNull($field.metaInfo.defaultValue) || "$!{field.metaInfo.defaultValue}" == "") DEFAULT NULL#else DEFAULT#if(${field.propertyType} == 'String') '${field.metaInfo.defaultValue}'#else ${field.metaInfo.defaultValue}#end#end COMMENT '$!{field.metaInfo.remarks}', + #else `${field.columnName}` ${field.metaInfo.jdbcType}(${field.metaInfo.length})#if(!$field.metaInfo.nullable) NOT NULL#end#if($null.isNull($field.metaInfo.defaultValue) || "$!{field.metaInfo.defaultValue}" == "") DEFAULT NULL#else DEFAULT#if(${field.propertyType} == 'String') '${field.metaInfo.defaultValue}'#else ${field.metaInfo.defaultValue}#end#end COMMENT '$!{field.metaInfo.remarks}', #end #end + #end `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `creator` VARCHAR(64) DEFAULT NULL COMMENT '创建人', diff --git a/orion-ops-launch/src/main/resources/templates/orion-vue-views-types-form.rules.ts.vm b/orion-ops-launch/src/main/resources/templates/orion-vue-views-types-form.rules.ts.vm index 2e163a8c..9df7314e 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-vue-views-types-form.rules.ts.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-vue-views-types-form.rules.ts.vm @@ -1,7 +1,7 @@ import { FieldRule } from '@arco-design/web-vue'; #foreach($field in ${table.fields}) #if("$!field.propertyName" != "id") -#if(${field.propertyType} == 'String') +#if(${field.propertyType} == 'String' && "$field.metaInfo.jdbcType" != "LONGVARCHAR") export const ${field.propertyName} = [{ required: true, message: '请输入${field.comment}' diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyCreateRequest.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyCreateRequest.java index ecf4afb5..fadb35bb 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyCreateRequest.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyCreateRequest.java @@ -29,12 +29,10 @@ public class HostKeyCreateRequest implements Serializable { @Schema(description = "名称") private String name; - @Size(max = 65535) @Schema(description = "公钥文本") private String publicKey; @NotBlank - @Size(max = 65535) @Schema(description = "私钥文本") private String privateKey; diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyUpdateRequest.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyUpdateRequest.java index 4c9c9d9a..5ea2fc3c 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyUpdateRequest.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostKeyUpdateRequest.java @@ -34,12 +34,10 @@ public class HostKeyUpdateRequest implements UpdatePasswordAction { @Schema(description = "名称") private String name; - @Size(max = 65535) @Schema(description = "公钥文本") private String publicKey; @NotBlank - @Size(max = 65535) @Schema(description = "私钥文本") private String privateKey; diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/test/java/com/orion/ops/module/asset/api/impl/.gitkeep b/orion-ops-module-asset/orion-ops-module-asset-service/src/test/java/com/orion/ops/module/asset/api/impl/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/test/java/com/orion/ops/module/asset/service/impl/.gitkeep b/orion-ops-module-asset/orion-ops-module-asset-service/src/test/java/com/orion/ops/module/asset/service/impl/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/test/resources/application-unit-test.yaml b/orion-ops-module-asset/orion-ops-module-asset-service/src/test/resources/application-unit-test.yaml new file mode 100644 index 00000000..ff76bb9a --- /dev/null +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/test/resources/application-unit-test.yaml @@ -0,0 +1,26 @@ +spring: + main: + lazy-initialization: true + banner-mode: OFF + datasource: + druid: + name: orion-ops-pro + url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false;NON_KEYWORDS=value; + driver-class-name: org.h2.Driver + username: sa + password: + max-active: 1 + async-init: true + initial-size: 1 + test-while-idle: false + sql: + init: + schema-locations: + - classpath:/sql/create-table-h2-*.sql + redis: + host: 127.0.0.1 + port: 16379 + database: 0 + +mybatis-plus: + lazy-initialization: true diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/test/resources/sql/.gitkeep b/orion-ops-module-asset/orion-ops-module-asset-service/src/test/resources/sql/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/test/java/com/orion/ops/module/infra/api/impl/.gitkeep b/orion-ops-module-infra/orion-ops-module-infra-service/src/test/java/com/orion/ops/module/infra/api/impl/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/test/java/com/orion/ops/module/infra/service/impl/.gitkeep b/orion-ops-module-infra/orion-ops-module-infra-service/src/test/java/com/orion/ops/module/infra/service/impl/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/test/resources/sql/.gitkeep b/orion-ops-module-infra/orion-ops-module-infra-service/src/test/resources/sql/.gitkeep new file mode 100644 index 00000000..e69de29b