Former-commit-id: a208254976e4420a3bcb131774cce90a3f2319a9
master
wangbing 5 years ago
parent c794d11019
commit a3cb6feba6

@ -12,7 +12,7 @@ public enum FieldType {
Double(0),// Double(0),//
Date(0),//日期时间 Date(0),//日期时间
BigDecimal(0),//高精度 BigDecimal(0),//高精度
Dict(0),//字典 Dict(20),//字典
String_1(1),//字符1 String_1(1),//字符1
String_10(10),//字符10 String_10(10),//字符10
String_var(20, false),//字符20 String_var(20, false),//字符20

@ -184,6 +184,8 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictAjax.java"), option + "/java/action/ajax/system/DictAjax.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictAjax.java"), option + "/java/action/ajax/system/DictAjax.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictItemAjax.java"), option + "/java/action/ajax/system/DictItemAjax.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictItemAjax.java"), option + "/java/action/ajax/system/DictItemAjax.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FileAjax.java"), option + "/java/action/ajax/system/FileAjax.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FileAjax.java"), option + "/java/action/ajax/system/FileAjax.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "ResourceAjax.java"), option + "/java/action/ajax/system/ResourceAjax.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "TokensAjax.java"), option + "/java/action/ajax/system/TokensAjax.java", ctx);
for (Module module : project.getModules()) { for (Module module : project.getModules()) {
File m = Tool.createPath(ajax.getAbsolutePath(), module.getModuleName()); File m = Tool.createPath(ajax.getAbsolutePath(), module.getModuleName());
@ -208,6 +210,8 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictApi.java"), option + "/java/action/api/system/DictApi.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictApi.java"), option + "/java/action/api/system/DictApi.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictItemApi.java"), option + "/java/action/api/system/DictItemApi.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "DictItemApi.java"), option + "/java/action/api/system/DictItemApi.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FileApi.java"), option + "/java/action/api/system/FileApi.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "FileApi.java"), option + "/java/action/api/system/FileApi.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "ResourceApi.java"), option + "/java/action/api/system/ResourceApi.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "TokensApi.java"), option + "/java/action/api/system/TokensApi.java", ctx);
for (Module module : project.getModules()) { for (Module module : project.getModules()) {
File m = Tool.createPath(api.getAbsolutePath(), module.getModuleName()); File m = Tool.createPath(api.getAbsolutePath(), module.getModuleName());
@ -469,6 +473,8 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "Dict.java"), option + "/java/module/system/ent/Dict.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "Dict.java"), option + "/java/module/system/ent/Dict.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "DictItem.java"), option + "/java/module/system/ent/DictItem.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "DictItem.java"), option + "/java/module/system/ent/DictItem.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "File.java"), option + "/java/module/system/ent/File.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "File.java"), option + "/java/module/system/ent/File.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "Resource.java"), option + "/java/module/system/ent/Resource.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), "Tokens.java"), option + "/java/module/system/ent/Tokens.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictItemManager.java"), option + "/java/module/system/mgr/DictItemManager.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictItemManager.java"), option + "/java/module/system/mgr/DictItemManager.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictItemManagerImpl.java"), option + "/java/module/system/mgr/DictItemManagerImpl.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictItemManagerImpl.java"), option + "/java/module/system/mgr/DictItemManagerImpl.java", ctx);
@ -476,6 +482,10 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictManagerImpl.java"), option + "/java/module/system/mgr/DictManagerImpl.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "DictManagerImpl.java"), option + "/java/module/system/mgr/DictManagerImpl.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "FileManager.java"), option + "/java/module/system/mgr/FileManager.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "FileManager.java"), option + "/java/module/system/mgr/FileManager.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "FileManagerImpl.java"), option + "/java/module/system/mgr/FileManagerImpl.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "FileManagerImpl.java"), option + "/java/module/system/mgr/FileManagerImpl.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "ResourceManager.java"), option + "/java/module/system/mgr/ResourceManager.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "ResourceManagerImpl.java"), option + "/java/module/system/mgr/ResourceManagerImpl.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "TokensManager.java"), option + "/java/module/system/mgr/TokensManager.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr.getAbsolutePath(), "TokensManagerImpl.java"), option + "/java/module/system/mgr/TokensManagerImpl.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictItemMapper.java"), option + "/java/module/system/mpr/DictItemMapper.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictItemMapper.java"), option + "/java/module/system/mpr/DictItemMapper.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictItemMapper.xml"), option + "/java/module/system/mpr/DictItemMapper_" + dataBase.toString() + ".xml", ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictItemMapper.xml"), option + "/java/module/system/mpr/DictItemMapper_" + dataBase.toString() + ".xml", ctx);
@ -483,6 +493,10 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictMapper.xml"), option + "/java/module/system/mpr/DictMapper_" + dataBase.toString() + ".xml", ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "DictMapper.xml"), option + "/java/module/system/mpr/DictMapper_" + dataBase.toString() + ".xml", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "FileMapper.java"), option + "/java/module/system/mpr/FileMapper.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "FileMapper.java"), option + "/java/module/system/mpr/FileMapper.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "FileMapper.xml"), option + "/java/module/system/mpr/FileMapper_" + dataBase.toString() + ".xml", ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "FileMapper.xml"), option + "/java/module/system/mpr/FileMapper_" + dataBase.toString() + ".xml", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "ResourceMapper.java"), option + "/java/module/system/mpr/ResourceMapper.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "ResourceMapper.xml"), option + "/java/module/system/mpr/ResourceMapper_" + dataBase.toString() + ".xml", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "TokensMapper.java"), option + "/java/module/system/mpr/TokensMapper.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), "ResourceMapper.xml"), option + "/java/module/system/mpr/ResourceMapper_" + dataBase.toString() + ".xml", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "AuthLoginRequest.java"), option + "/java/module/system/req/AuthLoginRequest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "AuthLoginRequest.java"), option + "/java/module/system/req/AuthLoginRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "DictCreateRequest.java"), option + "/java/module/system/req/DictCreateRequest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "DictCreateRequest.java"), option + "/java/module/system/req/DictCreateRequest.java", ctx);
@ -502,6 +516,19 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileFindRequest.java"), option + "/java/module/system/req/FileFindRequest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileFindRequest.java"), option + "/java/module/system/req/FileFindRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileGetRequest.java"), option + "/java/module/system/req/FileGetRequest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileGetRequest.java"), option + "/java/module/system/req/FileGetRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileUploadRequest.java"), option + "/java/module/system/req/FileUploadRequest.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "FileUploadRequest.java"), option + "/java/module/system/req/FileUploadRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "ResourceCreateRequest.java"), option + "/java/module/system/req/ResourceCreateRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "ResourceDeleteRequest.java"), option + "/java/module/system/req/ResourceDeleteRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "ResourceFindRequest.java"), option + "/java/module/system/req/ResourceFindRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "ResourceGetRequest.java"), option + "/java/module/system/req/ResourceGetRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "ResourceUpdateRequest.java"), option + "/java/module/system/req/ResourceUpdateRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "TokensCreateRequest.java"), option + "/java/module/system/req/TokensCreateRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "TokensDeleteRequest.java"), option + "/java/module/system/req/TokensDeleteRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "TokensFindRequest.java"), option + "/java/module/system/req/TokensFindRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "TokensGetRequest.java"), option + "/java/module/system/req/TokensGetRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(req.getAbsolutePath(), "TokensUpdateRequest.java"), option + "/java/module/system/req/TokensUpdateRequest.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "AuthLoginResponse.java"), option + "/java/module/system/rsp/AuthLoginResponse.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "AuthLoginResponse.java"), option + "/java/module/system/rsp/AuthLoginResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "DictCreateResponse.java"), option + "/java/module/system/rsp/DictCreateResponse.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "DictCreateResponse.java"), option + "/java/module/system/rsp/DictCreateResponse.java", ctx);
@ -521,6 +548,16 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileFindResponse.java"), option + "/java/module/system/rsp/FileFindResponse.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileFindResponse.java"), option + "/java/module/system/rsp/FileFindResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileGetResponse.java"), option + "/java/module/system/rsp/FileGetResponse.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileGetResponse.java"), option + "/java/module/system/rsp/FileGetResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileUploadResponse.java"), option + "/java/module/system/rsp/FileUploadResponse.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "FileUploadResponse.java"), option + "/java/module/system/rsp/FileUploadResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "ResourceCreateResponse.java"), option + "/java/module/system/rsp/ResourceCreateResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "ResourceDeleteResponse.java"), option + "/java/module/system/rsp/ResourceDeleteResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "ResourceFindResponse.java"), option + "/java/module/system/rsp/ResourceFindResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "ResourceGetResponse.java"), option + "/java/module/system/rsp/ResourceGetResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "ResourceUpdateResponse.java"), option + "/java/module/system/rsp/ResourceUpdateResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "TokensCreateResponse.java"), option + "/java/module/system/rsp/TokensCreateResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "TokensDeleteResponse.java"), option + "/java/module/system/rsp/TokensDeleteResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "TokensFindResponse.java"), option + "/java/module/system/rsp/TokensFindResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "TokensGetResponse.java"), option + "/java/module/system/rsp/TokensGetResponse.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp.getAbsolutePath(), "TokensUpdateResponse.java"), option + "/java/module/system/rsp/TokensUpdateResponse.java", ctx);
} }
/** /**
@ -837,6 +874,8 @@ public class SpringBootCallable implements Callable {
Tool.outputResource(option + "/resources/templates/screen/module/system/dict.ftl", Tool.createFile(system.getAbsolutePath(), "dict.ftl")); Tool.outputResource(option + "/resources/templates/screen/module/system/dict.ftl", Tool.createFile(system.getAbsolutePath(), "dict.ftl"));
Tool.outputResource(option + "/resources/templates/screen/module/system/dictItem.ftl", Tool.createFile(system.getAbsolutePath(), "dictItem.ftl")); Tool.outputResource(option + "/resources/templates/screen/module/system/dictItem.ftl", Tool.createFile(system.getAbsolutePath(), "dictItem.ftl"));
Tool.outputResource(option + "/resources/templates/screen/module/system/file.ftl", Tool.createFile(system.getAbsolutePath(), "file.ftl")); Tool.outputResource(option + "/resources/templates/screen/module/system/file.ftl", Tool.createFile(system.getAbsolutePath(), "file.ftl"));
Tool.outputResource(option + "/resources/templates/screen/module/system/resource.ftl", Tool.createFile(system.getAbsolutePath(), "resource.ftl"));
Tool.outputResource(option + "/resources/templates/screen/module/system/tokens.ftl", Tool.createFile(system.getAbsolutePath(), "tokens.ftl"));
{ {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();

@ -18,10 +18,12 @@ public class MySQLDBmapper extends AbstractDBmapper {
if (FieldType.Boolean.name().equals(type.name())) { if (FieldType.Boolean.name().equals(type.name())) {
sb.append("TINYINT(1)"); sb.append("TINYINT(1)");
} else if (FieldType.Dict.name().equals(type.name())) {
sb.append("VARCHAR(10)");
} else if (FieldType.Byte.name().equals(type.name())) { } else if (FieldType.Byte.name().equals(type.name())) {
sb.append("TINYINT(3)"); sb.append("TINYINT(3)");
} else if (FieldType.Bytes.name().equals(type.name())) {
sb.append("BLOB");
} else if (FieldType.Character.name().equals(type.name())) {
sb.append("CHAR(1)");
} else if (FieldType.Short.name().equals(type.name())) { } else if (FieldType.Short.name().equals(type.name())) {
sb.append("SMALLINT(5)"); sb.append("SMALLINT(5)");
} else if (FieldType.Integer.name().equals(type.name())) { } else if (FieldType.Integer.name().equals(type.name())) {
@ -33,11 +35,12 @@ public class MySQLDBmapper extends AbstractDBmapper {
} else if (FieldType.Double.name().equals(type.name())) { } else if (FieldType.Double.name().equals(type.name())) {
sb.append("DOUBLE"); sb.append("DOUBLE");
} else if (FieldType.Date.name().equals(type.name())) { } else if (FieldType.Date.name().equals(type.name())) {
sb.append("INTEGER"); sb.append("DATETIME");
} else if (FieldType.Bytes.name().equals(type.name())) { } else if (FieldType.BigDecimal.name().equals(type.name())) {
sb.append("BLOB"); sb.append("NUMERIC");
} else if (FieldType.Character.name().equals(type.name())) { } else if (FieldType.Dict.name().equals(type.name())) {
sb.append("CHAR(1)"); Integer fieldLength = field.getFieldLength();
sb.append("VARCHAR(" + fieldLength + ")");
} else if (FieldType.String_1.name().equals(type.name())) { } else if (FieldType.String_1.name().equals(type.name())) {
sb.append("CHAR(1)"); sb.append("CHAR(1)");
} else if (FieldType.String_10.name().equals(type.name())) { } else if (FieldType.String_10.name().equals(type.name())) {
@ -102,6 +105,10 @@ public class MySQLDBmapper extends AbstractDBmapper {
return "TINYINT"; return "TINYINT";
} else if (FieldType.Byte.name().equals(type.name())) { } else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT"; return "TINYINT";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.Short.name().equals(type.name())) { } else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT"; return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) { } else if (FieldType.Integer.name().equals(type.name())) {
@ -112,7 +119,11 @@ public class MySQLDBmapper extends AbstractDBmapper {
return "REAL"; return "REAL";
} else if (FieldType.Double.name().equals(type.name())) { } else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT"; return "FLOAT";
} else if (FieldType.Character.name().equals(type.name())) { } else if (FieldType.Date.name().equals(type.name())) {
return "DATETIME";
} else if (FieldType.BigDecimal.name().equals(type.name())) {
return "NUMERIC";
} else if (FieldType.Dict.name().equals(type.name())) {
return "VARCHAR"; return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) { } else if (FieldType.String_1.name().equals(type.name())) {
return "CHAR"; return "CHAR";
@ -132,10 +143,8 @@ public class MySQLDBmapper extends AbstractDBmapper {
return "VARCHAR"; return "VARCHAR";
} else if (FieldType.String_var4000.name().equals(type.name())) { } else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR"; return "VARCHAR";
} else if (FieldType.Date.name().equals(type.name())) { } else if (FieldType.String_super.name().equals(type.name())) {
return "DATETIME"; return "LONGTEXT";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else { } else {
return ""; return "";
} }

@ -14,10 +14,12 @@ public class OracleDBmapper extends AbstractDBmapper {
if (FieldType.Boolean.name().equals(type.name())) { if (FieldType.Boolean.name().equals(type.name())) {
sb.append("CHAR(1)"); sb.append("CHAR(1)");
} else if (FieldType.Dict.name().equals(type.name())) {
sb.append("VARCHAR(10)");
} else if (FieldType.Byte.name().equals(type.name())) { } else if (FieldType.Byte.name().equals(type.name())) {
sb.append("NUMBER(3)"); sb.append("NUMBER(3)");
} else if (FieldType.Bytes.name().equals(type.name())) {
sb.append("BLOB");
} else if (FieldType.Character.name().equals(type.name())) {
sb.append("CHAR(1)");
} else if (FieldType.Short.name().equals(type.name())) { } else if (FieldType.Short.name().equals(type.name())) {
sb.append("NUMBER(5)"); sb.append("NUMBER(5)");
} else if (FieldType.Integer.name().equals(type.name())) { } else if (FieldType.Integer.name().equals(type.name())) {
@ -30,10 +32,11 @@ public class OracleDBmapper extends AbstractDBmapper {
sb.append("NUMBER"); sb.append("NUMBER");
} else if (FieldType.Date.name().equals(type.name())) { } else if (FieldType.Date.name().equals(type.name())) {
sb.append("DATE"); sb.append("DATE");
} else if (FieldType.Bytes.name().equals(type.name())) { } else if (FieldType.BigDecimal.name().equals(type.name())) {
sb.append("BLOB"); sb.append("NUMBER");
} else if (FieldType.Character.name().equals(type.name())) { } else if (FieldType.Dict.name().equals(type.name())) {
sb.append("CHAR(1)"); Integer fieldLength = field.getFieldLength();
sb.append("VARCHAR(" + fieldLength + ")");
} else if (FieldType.String_1.name().equals(type.name())) { } else if (FieldType.String_1.name().equals(type.name())) {
sb.append("CHAR(1)"); sb.append("CHAR(1)");
} else if (FieldType.String_10.name().equals(type.name())) { } else if (FieldType.String_10.name().equals(type.name())) {

@ -36,10 +36,11 @@ public class SQLiteDBmapper extends AbstractDBmapper {
sb.append("DOUBLE"); sb.append("DOUBLE");
} else if (FieldType.Date.name().equals(type.name())) { } else if (FieldType.Date.name().equals(type.name())) {
sb.append("DATETIME"); sb.append("DATETIME");
} else if (FieldType.Dict.name().equals(type.name())) {
sb.append("VARCHAR(10)");
} else if (FieldType.BigDecimal.name().equals(type.name())) { } else if (FieldType.BigDecimal.name().equals(type.name())) {
sb.append("INTEGER"); sb.append("INTEGER");
} else if (FieldType.Dict.name().equals(type.name())) {
Integer fieldLength = field.getFieldLength();
sb.append("VARCHAR(" + fieldLength + ")");
} else if (FieldType.String_1.name().equals(type.name())) { } else if (FieldType.String_1.name().equals(type.name())) {
sb.append("CHAR(1)"); sb.append("CHAR(1)");
} else if (FieldType.String_10.name().equals(type.name())) { } else if (FieldType.String_10.name().equals(type.name())) {

@ -0,0 +1,74 @@
package ${basePackage}.module.system.ent;
import ${basePackage}.frame.excel.annotation.ColumnDescription;
import ${basePackage}.frame.excel.annotation.ColumnName;
import ${basePackage}.frame.excel.annotation.SheetName;
import ${basePackage}.frame.base.BaseEntity;
/**
* RESOURCE -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
@SheetName("资源")
public class Resource extends BaseEntity {
/**
* VALUE -
*/
@ColumnName("资源内容")
@ColumnDescription("")
private String value;
/**
* COMMENT -
*/
@ColumnName("资源描述")
@ColumnDescription("")
private String comment;
/**
* RESOURCE_TYPE -
*/
@ColumnName("资源类型")
@ColumnDescription("")
private String resourceType;
/**
* VALID -
*/
@ColumnName("是否有效")
@ColumnDescription("")
private Boolean valid;
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public String getComment() {
return this.comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getResourceType() {
return this.resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
}

@ -0,0 +1,173 @@
package ${basePackage}.module.system.ent;
import java.util.Date;
import ${basePackage}.frame.excel.annotation.ColumnDescription;
import ${basePackage}.frame.excel.annotation.ColumnName;
import ${basePackage}.frame.excel.annotation.SheetName;
import ${basePackage}.frame.base.BaseEntity;
/**
* TOKENS -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
@SheetName("通行证")
public class Tokens extends BaseEntity {
/**
* USER_ID -
*/
@ColumnName("用户主键")
@ColumnDescription("")
private Long userId;
/**
* USER_NAME -
*/
@ColumnName("用户名称")
@ColumnDescription("")
private String userName;
/**
* LOGIN_TIME -
*/
@ColumnName("登录时间")
@ColumnDescription("")
private Date loginTime;
/**
* VALID_TIME -
*/
@ColumnName("有效时间")
@ColumnDescription("")
private Date validTime;
/**
* VALID -
*/
@ColumnName("是否有效")
@ColumnDescription("")
private Boolean valid;
/**
* DEPT_ID -
*/
@ColumnName("部门主键")
@ColumnDescription("")
private Long deptId;
/**
* DEPT_CODE -
*/
@ColumnName("部门代码")
@ColumnDescription("")
private String deptCode;
/**
* DEPT_NAME -
*/
@ColumnName("部门名称")
@ColumnDescription("")
private String deptName;
/**
* TERMINAL_TYPE -
*/
@ColumnName("终端类型")
@ColumnDescription("")
private String terminalType;
/**
* TERMINAL_IP -
*/
@ColumnName("终端地址")
@ColumnDescription("")
private String terminalIp;
/**
* TERMINAL_INFO -
*/
@ColumnName("终端信息")
@ColumnDescription("")
private String terminalInfo;
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getLoginTime() {
return this.loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getValidTime() {
return this.validTime;
}
public void setValidTime(Date validTime) {
this.validTime = validTime;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
public Long getDeptId() {
return this.deptId;
}
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
public String getDeptCode() {
return this.deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getDeptName() {
return this.deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getTerminalType() {
return this.terminalType;
}
public void setTerminalType(String terminalType) {
this.terminalType = terminalType;
}
public String getTerminalIp() {
return this.terminalIp;
}
public void setTerminalIp(String terminalIp) {
this.terminalIp = terminalIp;
}
public String getTerminalInfo() {
return this.terminalInfo;
}
public void setTerminalInfo(String terminalInfo) {
this.terminalInfo = terminalInfo;
}
}

@ -0,0 +1,60 @@
package ${basePackage}.module.system.mgr;
import ${basePackage}.module.system.req.*;
import ${basePackage}.module.system.rsp.*;
import ${basePackage}.frame.base.Token;
/**
*
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public interface ResourceManager {
/**
*
*
* @param request
* @param token
* @return
*/
ResourceCreateResponse create(ResourceCreateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ResourceDeleteResponse delete(ResourceDeleteRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ResourceUpdateResponse update(ResourceUpdateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ResourceFindResponse find(ResourceFindRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ResourceGetResponse get(ResourceGetRequest request, Token token);
}

@ -0,0 +1,167 @@
package ${basePackage}.module.system.mgr;
import ${basePackage}.frame.utils.IDgenerator;
import ${basePackage}.frame.utils.Message;
import ${basePackage}.frame.base.ErrorType;
import ${basePackage}.frame.base.Token;
import ${basePackage}.frame.utils.MapperUtil;
import ${basePackage}.frame.utils.ValidationUtil;
import ${basePackage}.module.system.ent.Resource;
import ${basePackage}.module.system.mpr.ResourceMapper;
import ${basePackage}.module.system.req.*;
import ${basePackage}.module.system.rsp.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* RESOURCE -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
@Transactional
@Service
public class ResourceManagerImpl implements ResourceManager {
@Autowired
private ResourceMapper resourceMapper;
/**
*
*
* @param request
* @param token
* @return
*/
public ResourceCreateResponse create(ResourceCreateRequest request, Token token) {
ResourceCreateResponse response = new ResourceCreateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long id = IDgenerator.nextId();
Resource entity = MapperUtil.map(request, Resource.class);
entity.setId(id);
long result = resourceMapper.insert(entity, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.CREATE_FAILURE);
return response;
}
response.setId(id);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
public ResourceDeleteResponse delete(ResourceDeleteRequest request, Token token) {
ResourceDeleteResponse response = new ResourceDeleteResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long result = resourceMapper.delete(request, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.DELETE_FAILURE);
return response;
}
response.setResult(result);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
public ResourceUpdateResponse update(ResourceUpdateRequest request, Token token) {
ResourceUpdateResponse response = new ResourceUpdateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long result = resourceMapper.update(request, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.UPDATE_FAILURE);
return response;
}
response.setResult(result);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
@Transactional(readOnly = true)
public ResourceFindResponse find(ResourceFindRequest request, Token token) {
ResourceFindResponse response = new ResourceFindResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
PageHelper.startPage(request.getPageNumber(), request.getPageSize());
if (StringUtil.isNotEmpty(request.getSortKey())) {
PageHelper.orderBy(request.getSortKey() + " " + request.getSortType());
}
PageInfo<Resource> pageInfo = new PageInfo<>(resourceMapper.find(request, token));
response.setResult(pageInfo.getList());
response.setTotalCount(pageInfo.getTotal());
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
@Transactional(readOnly = true)
public ResourceGetResponse get(ResourceGetRequest request, Token token) {
ResourceGetResponse response = new ResourceGetResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
Resource po = resourceMapper.get(request, token);
if (po != null) {
response.setResource(po);
} else {
response.addError(ErrorType.BUSINESS_ERROR, Message.GET_FAILURE);
}
return response;
}
}

@ -0,0 +1,60 @@
package ${basePackage}.module.system.mgr;
import ${basePackage}.module.system.req.*;
import ${basePackage}.module.system.rsp.*;
import ${basePackage}.frame.base.Token;
/**
*
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public interface TokensManager {
/**
*
*
* @param request
* @param token
* @return
*/
TokensCreateResponse create(TokensCreateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
TokensDeleteResponse delete(TokensDeleteRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
TokensUpdateResponse update(TokensUpdateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
TokensFindResponse find(TokensFindRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
TokensGetResponse get(TokensGetRequest request, Token token);
}

@ -0,0 +1,167 @@
package ${basePackage}.module.system.mgr;
import ${basePackage}.frame.utils.IDgenerator;
import ${basePackage}.frame.utils.Message;
import ${basePackage}.frame.base.ErrorType;
import ${basePackage}.frame.base.Token;
import ${basePackage}.frame.utils.MapperUtil;
import ${basePackage}.frame.utils.ValidationUtil;
import ${basePackage}.module.system.ent.Tokens;
import ${basePackage}.module.system.mpr.TokensMapper;
import ${basePackage}.module.system.req.*;
import ${basePackage}.module.system.rsp.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* TOKENS -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
@Transactional
@Service
public class TokensManagerImpl implements TokensManager {
@Autowired
private TokensMapper tokensMapper;
/**
*
*
* @param request
* @param token
* @return
*/
public TokensCreateResponse create(TokensCreateRequest request, Token token) {
TokensCreateResponse response = new TokensCreateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long id = IDgenerator.nextId();
Tokens entity = MapperUtil.map(request, Tokens.class);
entity.setId(id);
long result = tokensMapper.insert(entity, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.CREATE_FAILURE);
return response;
}
response.setId(id);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
public TokensDeleteResponse delete(TokensDeleteRequest request, Token token) {
TokensDeleteResponse response = new TokensDeleteResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long result = tokensMapper.delete(request, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.DELETE_FAILURE);
return response;
}
response.setResult(result);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
public TokensUpdateResponse update(TokensUpdateRequest request, Token token) {
TokensUpdateResponse response = new TokensUpdateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long result = tokensMapper.update(request, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.UPDATE_FAILURE);
return response;
}
response.setResult(result);
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
@Transactional(readOnly = true)
public TokensFindResponse find(TokensFindRequest request, Token token) {
TokensFindResponse response = new TokensFindResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
PageHelper.startPage(request.getPageNumber(), request.getPageSize());
if (StringUtil.isNotEmpty(request.getSortKey())) {
PageHelper.orderBy(request.getSortKey() + " " + request.getSortType());
}
PageInfo<Tokens> pageInfo = new PageInfo<>(tokensMapper.find(request, token));
response.setResult(pageInfo.getList());
response.setTotalCount(pageInfo.getTotal());
return response;
}
/**
*
*
* @param request
* @param token
* @return
*/
@Transactional(readOnly = true)
public TokensGetResponse get(TokensGetRequest request, Token token) {
TokensGetResponse response = new TokensGetResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
Tokens po = tokensMapper.get(request, token);
if (po != null) {
response.setTokens(po);
} else {
response.addError(ErrorType.BUSINESS_ERROR, Message.GET_FAILURE);
}
return response;
}
}

@ -0,0 +1,74 @@
package ${basePackage}.module.system.mpr;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import ${basePackage}.module.system.ent.Resource;
import ${basePackage}.module.system.req.*;
import ${basePackage}.frame.base.Token;
/**
* RESOURCE -
*
* @author author
* @date 2019-12-19
*/
@Mapper
public interface ResourceMapper {
/**
*
*
* @param request
* @param token
* @return
*/
long insert(@Param("request") Resource request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long insertBatch(@Param("list") List<Resource> request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long delete(@Param("request") ResourceDeleteRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long update(@Param("request") ResourceUpdateRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
List<Resource> find(@Param("request") ResourceFindRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
Resource get(@Param("request") ResourceGetRequest request, @Param("token") Token token);
}

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${basePackage}.module.system.mpr.ResourceMapper">
<sql id="table">`SYS_RESOURCE`</sql>
<sql id="entityColumnList">
`ID`,`VALUE`,`COMMENT`,`RESOURCE_TYPE`,`VALID`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
</sql>
<resultMap id="resource" type="${basePackage}.module.system.ent.Resource">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="VALUE" jdbcType="VARCHAR" property="value"/>
<result column="COMMENT" jdbcType="VARCHAR" property="comment"/>
<result column="RESOURCE_TYPE" jdbcType="VARCHAR" property="resourceType"/>
<result column="VALID" jdbcType="BIT" property="valid"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
<result column="IS_DELETED" jdbcType="BIT" property="isDeleted"/>
<result column="CREATE_BY" jdbcType="BIGINT" property="createBy"/>
<result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/>
<result column="LAST_UPDATE_BY" jdbcType="BIGINT" property="lastUpdateBy"/>
<result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
</resultMap>
<select id="find" resultMap="resource">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
<if test="request.value != null and request.value != ''">
AND `VALUE` = ${r"#"}{request.value}
</if>
<if test="request.comment != null and request.comment != ''">
AND `COMMENT` = ${r"#"}{request.comment}
</if>
<if test="request.resourceType != null and request.resourceType != ''">
AND `RESOURCE_TYPE` = ${r"#"}{request.resourceType}
</if>
<if test="request.valid != null">
AND `VALID` = ${r"#"}{request.valid}
</if>
</select>
<select id="search" resultMap="resource">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
<if test="request.keyword != null and request.keyword != ''">
1 = 2
</if>
</select>
<insert id="insert">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
(
${r"#"}{request.id},
${r"#"}{request.value,jdbcType=VARCHAR},
${r"#"}{request.comment,jdbcType=VARCHAR},
${r"#"}{request.resourceType,jdbcType=VARCHAR},
${r"#"}{request.valid,jdbcType=BIT},
0,
0,
${r"#"}{token.userId,jdbcType=NUMERIC},
sysdate(),
NULL,
NULL
)
</insert>
<insert id="insertBatch">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
<foreach collection="list" item= "item" index ="index" separator=",">
(
${r"#"}{item.id},
${r"#"}{item.value,jdbcType=VARCHAR},
${r"#"}{item.comment,jdbcType=VARCHAR},
${r"#"}{item.resourceType,jdbcType=VARCHAR},
${r"#"}{item.valid,jdbcType=BIT},
0,
0,
${r"#"}{token.userId,jdbcType=NUMERIC},
sysdate(),
NULL,
NULL
)
</foreach >
</insert>
<update id="delete">
UPDATE
<include refid="table"/>
SET `IS_DELETED` = 1
WHERE `IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
</update>
<update id="update">
UPDATE
<include refid="table"/>
SET
`VALUE` = ${r"#"}{request.value,jdbcType=VARCHAR},
`COMMENT` = ${r"#"}{request.comment,jdbcType=VARCHAR},
`RESOURCE_TYPE` = ${r"#"}{request.resourceType,jdbcType=VARCHAR},
`VALID` = ${r"#"}{request.valid,jdbcType=BIT},
`ROW_VERSION` = `ROW_VERSION` + 1,
`LAST_UPDATE_BY` = ${r"#"}{token.userId},
`LAST_UPDATE_TIME` = sysdate()
WHERE
`IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
AND `ROW_VERSION` = ${r"#"}{request.rowVersion}
</update>
<select id="get" resultMap="resource">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
</select>
</mapper>

@ -0,0 +1,74 @@
package ${basePackage}.module.system.mpr;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import ${basePackage}.module.system.ent.Tokens;
import ${basePackage}.module.system.req.*;
import ${basePackage}.frame.base.Token;
/**
* TOKENS -
*
* @author author
* @date 2019-12-19
*/
@Mapper
public interface TokensMapper {
/**
*
*
* @param request
* @param token
* @return
*/
long insert(@Param("request") Tokens request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long insertBatch(@Param("list") List<Tokens> request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long delete(@Param("request") TokensDeleteRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
long update(@Param("request") TokensUpdateRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
List<Tokens> find(@Param("request") TokensFindRequest request, @Param("token") Token token);
/**
*
*
* @param request
* @param token
* @return
*/
Tokens get(@Param("request") TokensGetRequest request, @Param("token") Token token);
}

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${basePackage}.module.system.mpr.TokensMapper">
<sql id="table">`SYS_TOKENS`</sql>
<sql id="entityColumnList">
`ID`,`USER_ID`,`USER_NAME`,`LOGIN_TIME`,`VALID_TIME`,`VALID`,`DEPT_ID`,`DEPT_CODE`,`DEPT_NAME`,`TERMINAL_TYPE`,`TERMINAL_IP`,`TERMINAL_INFO`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
</sql>
<resultMap id="tokens" type="${basePackage}.module.system.ent.Tokens">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="USER_ID" jdbcType="BIGINT" property="userId"/>
<result column="USER_NAME" jdbcType="VARCHAR" property="userName"/>
<result column="LOGIN_TIME" jdbcType="TIMESTAMP" property="loginTime"/>
<result column="VALID_TIME" jdbcType="TIMESTAMP" property="validTime"/>
<result column="VALID" jdbcType="BIT" property="valid"/>
<result column="DEPT_ID" jdbcType="BIGINT" property="deptId"/>
<result column="DEPT_CODE" jdbcType="VARCHAR" property="deptCode"/>
<result column="DEPT_NAME" jdbcType="VARCHAR" property="deptName"/>
<result column="TERMINAL_TYPE" jdbcType="VARCHAR" property="terminalType"/>
<result column="TERMINAL_IP" jdbcType="VARCHAR" property="terminalIp"/>
<result column="TERMINAL_INFO" jdbcType="VARCHAR" property="terminalInfo"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
<result column="IS_DELETED" jdbcType="BIT" property="isDeleted"/>
<result column="CREATE_BY" jdbcType="BIGINT" property="createBy"/>
<result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/>
<result column="LAST_UPDATE_BY" jdbcType="BIGINT" property="lastUpdateBy"/>
<result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
</resultMap>
<select id="find" resultMap="tokens">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
<if test="request.userId != null and request.userId != 0">
AND `USER_ID` = ${r"#"}{request.userId}
</if>
<if test="request.userName != null and request.userName != ''">
AND `USER_NAME` = ${r"#"}{request.userName}
</if>
<if test="request.loginTime != null">
AND DATE_FORMAT(`LOGIN_TIME`,"%Y-%m-%d %T") = DATE_FORMAT(${r"#"}{request.loginTime},"%Y-%m-%d %T")
</if>
<if test="request.validTime != null">
AND DATE_FORMAT(`VALID_TIME`,"%Y-%m-%d %T") = DATE_FORMAT(${r"#"}{request.validTime},"%Y-%m-%d %T")
</if>
<if test="request.valid != null">
AND `VALID` = ${r"#"}{request.valid}
</if>
<if test="request.deptId != null and request.deptId != 0">
AND `DEPT_ID` = ${r"#"}{request.deptId}
</if>
<if test="request.deptCode != null and request.deptCode != ''">
AND `DEPT_CODE` = ${r"#"}{request.deptCode}
</if>
<if test="request.deptName != null and request.deptName != ''">
AND `DEPT_NAME` = ${r"#"}{request.deptName}
</if>
<if test="request.terminalType != null and request.terminalType != ''">
AND `TERMINAL_TYPE` = ${r"#"}{request.terminalType}
</if>
<if test="request.terminalIp != null and request.terminalIp != ''">
AND `TERMINAL_IP` = ${r"#"}{request.terminalIp}
</if>
<if test="request.terminalInfo != null and request.terminalInfo != ''">
AND `TERMINAL_INFO` = ${r"#"}{request.terminalInfo}
</if>
</select>
<select id="search" resultMap="tokens">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
<if test="request.keyword != null and request.keyword != ''">
1 = 2
</if>
</select>
<insert id="insert">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
(
${r"#"}{request.id},
${r"#"}{request.userId,jdbcType=BIGINT},
${r"#"}{request.userName,jdbcType=VARCHAR},
${r"#"}{request.loginTime,jdbcType=TIMESTAMP},
${r"#"}{request.validTime,jdbcType=TIMESTAMP},
${r"#"}{request.valid,jdbcType=BIT},
${r"#"}{request.deptId,jdbcType=BIGINT},
${r"#"}{request.deptCode,jdbcType=VARCHAR},
${r"#"}{request.deptName,jdbcType=VARCHAR},
${r"#"}{request.terminalType,jdbcType=VARCHAR},
${r"#"}{request.terminalIp,jdbcType=VARCHAR},
${r"#"}{request.terminalInfo,jdbcType=VARCHAR},
0,
0,
${r"#"}{token.userId,jdbcType=NUMERIC},
sysdate(),
NULL,
NULL
)
</insert>
<insert id="insertBatch">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
<foreach collection="list" item= "item" index ="index" separator=",">
(
${r"#"}{item.id},
${r"#"}{item.userId,jdbcType=BIGINT},
${r"#"}{item.userName,jdbcType=VARCHAR},
${r"#"}{item.loginTime,jdbcType=TIMESTAMP},
${r"#"}{item.validTime,jdbcType=TIMESTAMP},
${r"#"}{item.valid,jdbcType=BIT},
${r"#"}{item.deptId,jdbcType=BIGINT},
${r"#"}{item.deptCode,jdbcType=VARCHAR},
${r"#"}{item.deptName,jdbcType=VARCHAR},
${r"#"}{item.terminalType,jdbcType=VARCHAR},
${r"#"}{item.terminalIp,jdbcType=VARCHAR},
${r"#"}{item.terminalInfo,jdbcType=VARCHAR},
0,
0,
${r"#"}{token.userId,jdbcType=NUMERIC},
sysdate(),
NULL,
NULL
)
</foreach >
</insert>
<update id="delete">
UPDATE
<include refid="table"/>
SET `IS_DELETED` = 1
WHERE `IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
</update>
<update id="update">
UPDATE
<include refid="table"/>
SET
`USER_ID` = ${r"#"}{request.userId,jdbcType=BIGINT},
`USER_NAME` = ${r"#"}{request.userName,jdbcType=VARCHAR},
`LOGIN_TIME` = ${r"#"}{request.loginTime,jdbcType=TIMESTAMP},
`VALID_TIME` = ${r"#"}{request.validTime,jdbcType=TIMESTAMP},
`VALID` = ${r"#"}{request.valid,jdbcType=BIT},
`DEPT_ID` = ${r"#"}{request.deptId,jdbcType=BIGINT},
`DEPT_CODE` = ${r"#"}{request.deptCode,jdbcType=VARCHAR},
`DEPT_NAME` = ${r"#"}{request.deptName,jdbcType=VARCHAR},
`TERMINAL_TYPE` = ${r"#"}{request.terminalType,jdbcType=VARCHAR},
`TERMINAL_IP` = ${r"#"}{request.terminalIp,jdbcType=VARCHAR},
`TERMINAL_INFO` = ${r"#"}{request.terminalInfo,jdbcType=VARCHAR},
`ROW_VERSION` = `ROW_VERSION` + 1,
`LAST_UPDATE_BY` = ${r"#"}{token.userId},
`LAST_UPDATE_TIME` = sysdate()
WHERE
`IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
AND `ROW_VERSION` = ${r"#"}{request.rowVersion}
</update>
<select id="get" resultMap="tokens">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE
`IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
</select>
</mapper>

@ -0,0 +1,75 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;
import ${basePackage}.frame.validation.Dict;
/**
* ResourceCreateRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceCreateRequest extends BaseRequest {
/**
*
*/
@NotEmpty(message = "资源内容不能为空")
@Length(min = 0, max = 100, message = "资源内容长度不合法(0-100)")
private String value;
/**
*
*/
@Length(min = 0, max = 255, message = "资源描述长度不合法(0-255)")
private String comment;
/**
*
*/
@NotEmpty(message = "资源类型不能为NULL")
@Dict(name = "RESOURCE_TYPE")
private String resourceType;
/**
*
*/
@NotNull(message = "是否有效不能为NULL")
private Boolean valid;
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public String getComment() {
return this.comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getResourceType() {
return this.resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
}

@ -0,0 +1,28 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotNull;
/**
* ResourceDeleteRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceDeleteRequest extends BaseUpdateRequest {
/**
*
*/
@NotNull(message = "主键不能为空")
private long id;
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
}

@ -0,0 +1,67 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseFindRequest;
import ${basePackage}.frame.validation.Dict;
/**
* ResourceRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceFindRequest extends BaseFindRequest {
/**
*
*/
private String value;
/**
*
*/
private String comment;
/**
*
*/
@Dict(name = "RESOURCE_TYPE")
private String resourceType;
/**
*
*/
private Boolean valid;
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public String getComment() {
return this.comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getResourceType() {
return this.resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
}

@ -0,0 +1,28 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
/**
* ResourceGetRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceGetRequest extends BaseRequest {
/**
*
*/
@NotNull(message = "主键不能为空")
private long id;
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
}

@ -0,0 +1,89 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import ${basePackage}.frame.validation.Dict;
/**
* ResourceUpdateRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceUpdateRequest extends BaseUpdateRequest {
/**
*
*/
@NotNull(message = "主键不能为NULL")
private Long id;
/**
*
*/
@NotEmpty(message = "资源内容不能为空")
@Length(min = 0, max = 100, message = "资源内容长度不合法(0-100)")
private String value;
/**
*
*/
@Length(min = 0, max = 255, message = "资源描述长度不合法(0-255)")
private String comment;
/**
*
*/
@NotNull(message = "资源类型不能为NULL")
@Dict(name = "RESOURCE_TYPE")
private String resourceType;
/**
*
*/
@NotNull(message = "是否有效不能为NULL")
private Boolean valid;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public String getComment() {
return this.comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getResourceType() {
return this.resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
}

@ -0,0 +1,172 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import ${basePackage}.frame.validation.Dict;
/**
* TokensCreateRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensCreateRequest extends BaseRequest {
/**
*
*/
@NotNull(message = "用户主键不能为NULL")
private Long userId;
/**
*
*/
@NotEmpty(message = "用户名称不能为空")
@Length(min = 0, max = 50, message = "用户名称长度不合法(0-50)")
private String userName;
/**
*
*/
@NotNull(message = "登录时间不能为NULL")
private Date loginTime;
/**
*
*/
@NotNull(message = "有效时间不能为NULL")
private Date validTime;
/**
*
*/
@NotNull(message = "是否有效不能为NULL")
private Boolean valid;
/**
*
*/
private Long deptId;
/**
*
*/
@Length(min = 0, max = 50, message = "部门代码长度不合法(0-50)")
private String deptCode;
/**
*
*/
@Length(min = 0, max = 100, message = "部门名称长度不合法(0-100)")
private String deptName;
/**
*
*/
@Dict(name = "TERMINAL_TYPE")
private String terminalType;
/**
*
*/
@Length(min = 0, max = 50, message = "终端地址长度不合法(0-50)")
private String terminalIp;
/**
*
*/
@Length(min = 0, max = 100, message = "终端信息长度不合法(0-100)")
private String terminalInfo;
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getLoginTime() {
return this.loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getValidTime() {
return this.validTime;
}
public void setValidTime(Date validTime) {
this.validTime = validTime;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
public Long getDeptId() {
return this.deptId;
}
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
public String getDeptCode() {
return this.deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getDeptName() {
return this.deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getTerminalType() {
return this.terminalType;
}
public void setTerminalType(String terminalType) {
this.terminalType = terminalType;
}
public String getTerminalIp() {
return this.terminalIp;
}
public void setTerminalIp(String terminalIp) {
this.terminalIp = terminalIp;
}
public String getTerminalInfo() {
return this.terminalInfo;
}
public void setTerminalInfo(String terminalInfo) {
this.terminalInfo = terminalInfo;
}
}

@ -0,0 +1,28 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotNull;
/**
* TokensDeleteRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensDeleteRequest extends BaseUpdateRequest {
/**
*
*/
@NotNull(message = "主键不能为空")
private long id;
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
}

@ -0,0 +1,159 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseFindRequest;
import java.util.Date;
import ${basePackage}.frame.validation.Dict;
/**
* TokensRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensFindRequest extends BaseFindRequest {
/**
*
*/
private Long userId;
/**
*
*/
private String userName;
/**
*
*/
private Date loginTime;
/**
*
*/
private Date validTime;
/**
*
*/
private Boolean valid;
/**
*
*/
private Long deptId;
/**
*
*/
private String deptCode;
/**
*
*/
private String deptName;
/**
*
*/
@Dict(name = "TERMINAL_TYPE")
private String terminalType;
/**
*
*/
private String terminalIp;
/**
*
*/
private String terminalInfo;
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getLoginTime() {
return this.loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getValidTime() {
return this.validTime;
}
public void setValidTime(Date validTime) {
this.validTime = validTime;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
public Long getDeptId() {
return this.deptId;
}
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
public String getDeptCode() {
return this.deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getDeptName() {
return this.deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getTerminalType() {
return this.terminalType;
}
public void setTerminalType(String terminalType) {
this.terminalType = terminalType;
}
public String getTerminalIp() {
return this.terminalIp;
}
public void setTerminalIp(String terminalIp) {
this.terminalIp = terminalIp;
}
public String getTerminalInfo() {
return this.terminalInfo;
}
public void setTerminalInfo(String terminalInfo) {
this.terminalInfo = terminalInfo;
}
}

@ -0,0 +1,28 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
/**
* TokensGetRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensGetRequest extends BaseRequest {
/**
*
*/
@NotNull(message = "主键不能为空")
private long id;
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
}

@ -0,0 +1,186 @@
package ${basePackage}.module.system.req;
import ${basePackage}.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import ${basePackage}.frame.validation.Dict;
/**
* TokensUpdateRequest -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensUpdateRequest extends BaseUpdateRequest {
/**
*
*/
@NotNull(message = "主键不能为NULL")
private Long id;
/**
*
*/
@NotNull(message = "用户主键不能为NULL")
private Long userId;
/**
*
*/
@NotEmpty(message = "用户名称不能为空")
@Length(min = 0, max = 50, message = "用户名称长度不合法(0-50)")
private String userName;
/**
*
*/
@NotNull(message = "登录时间不能为NULL")
private Date loginTime;
/**
*
*/
@NotNull(message = "有效时间不能为NULL")
private Date validTime;
/**
*
*/
@NotNull(message = "是否有效不能为NULL")
private Boolean valid;
/**
*
*/
private Long deptId;
/**
*
*/
@Length(min = 0, max = 50, message = "部门代码长度不合法(0-50)")
private String deptCode;
/**
*
*/
@Length(min = 0, max = 100, message = "部门名称长度不合法(0-100)")
private String deptName;
/**
*
*/
@Dict(name = "TERMINAL_TYPE")
private String terminalType;
/**
*
*/
@Length(min = 0, max = 50, message = "终端地址长度不合法(0-50)")
private String terminalIp;
/**
*
*/
@Length(min = 0, max = 100, message = "终端信息长度不合法(0-100)")
private String terminalInfo;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getLoginTime() {
return this.loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getValidTime() {
return this.validTime;
}
public void setValidTime(Date validTime) {
this.validTime = validTime;
}
public Boolean getValid() {
return this.valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
public Long getDeptId() {
return this.deptId;
}
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
public String getDeptCode() {
return this.deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getDeptName() {
return this.deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getTerminalType() {
return this.terminalType;
}
public void setTerminalType(String terminalType) {
this.terminalType = terminalType;
}
public String getTerminalIp() {
return this.terminalIp;
}
public void setTerminalIp(String terminalIp) {
this.terminalIp = terminalIp;
}
public String getTerminalInfo() {
return this.terminalInfo;
}
public void setTerminalInfo(String terminalInfo) {
this.terminalInfo = terminalInfo;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* ResourceCreateResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceCreateResponse extends BaseResponse {
/**
* ID
*/
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* ResourceDeleteResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceDeleteResponse extends BaseResponse {
/**
*
*/
private Long result;
public Long getResult() {
return this.result;
}
public void setResult(Long result) {
this.result = result;
}
}

@ -0,0 +1,14 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseFindResponse;
import ${basePackage}.module.system.ent.Resource;
/**
* ResourceFindResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceFindResponse extends BaseFindResponse<Resource> {
}

@ -0,0 +1,27 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.module.system.ent.Resource;
import ${basePackage}.frame.base.BaseResponse;
/**
* ResourceGetResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceGetResponse extends BaseResponse {
/**
*
*/
private Resource resource;
public Resource getResource() {
return this.resource;
}
public void setResource(Resource resource) {
this.resource = resource;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* ResourceUpdateResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class ResourceUpdateResponse extends BaseResponse {
/**
*
*/
private Long result;
public Long getResult() {
return this.result;
}
public void setResult(Long result) {
this.result = result;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* TokensCreateResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensCreateResponse extends BaseResponse {
/**
* ID
*/
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* TokensDeleteResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensDeleteResponse extends BaseResponse {
/**
*
*/
private Long result;
public Long getResult() {
return this.result;
}
public void setResult(Long result) {
this.result = result;
}
}

@ -0,0 +1,14 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseFindResponse;
import ${basePackage}.module.system.ent.Tokens;
/**
* TokensFindResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensFindResponse extends BaseFindResponse<Tokens> {
}

@ -0,0 +1,27 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.module.system.ent.Tokens;
import ${basePackage}.frame.base.BaseResponse;
/**
* TokensGetResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensGetResponse extends BaseResponse {
/**
*
*/
private Tokens tokens;
public Tokens getTokens() {
return this.tokens;
}
public void setTokens(Tokens tokens) {
this.tokens = tokens;
}
}

@ -0,0 +1,26 @@
package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseResponse;
/**
* TokensUpdateResponse -
*
* @author author
* @version 0.0.1
* @since 2019-12-19
*/
public class TokensUpdateResponse extends BaseResponse {
/**
*
*/
private Long result;
public Long getResult() {
return this.result;
}
public void setResult(Long result) {
this.result = result;
}
}

@ -37,7 +37,7 @@ spring.datasource.two.password=two_pwd
spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.main.username=test spring.datasource.main.username=test
spring.datasource.main.password=123456# mybatis spring.datasource.main.password=123456
# 副数据库 # 副数据库
spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver
@ -72,7 +72,7 @@ spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=test spring.datasource.username=test
spring.datasource.password=123456# mybatis spring.datasource.password=123456
</#if> </#if>
<#if dataBase == 'SQLite'> <#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db # SQLite spring.datasource.url=jdbc:sqlite::resource:example.db

@ -37,7 +37,7 @@ spring.datasource.two.password=two_pwd
spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.main.username=test spring.datasource.main.username=test
spring.datasource.main.password=123456# mybatis spring.datasource.main.password=123456
# 副数据库 # 副数据库
spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver
@ -72,7 +72,7 @@ spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=test spring.datasource.username=test
spring.datasource.password=123456# mybatis spring.datasource.password=123456
</#if> </#if>
<#if dataBase == 'SQLite'> <#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db # SQLite spring.datasource.url=jdbc:sqlite::resource:example.db

@ -13,9 +13,9 @@ CREATE TABLE `SYS_DICT` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典';
@ -35,9 +35,9 @@ CREATE TABLE `SYS_DICT_ITEM` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典项'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典项';
@ -50,7 +50,7 @@ PRIMARY KEY (`ID`)
CREATE TABLE `SYS_FILE` ( CREATE TABLE `SYS_FILE` (
`ID` BIGINT(20) NOT NULL COMMENT '主键', `ID` BIGINT(20) NOT NULL COMMENT '主键',
`NAME` VARCHAR(250) COMMENT '文件名称', `NAME` VARCHAR(250) COMMENT '文件名称',
`FILE_TYPE` VARCHAR(10) COMMENT '文件类型', `FILE_TYPE` VARCHAR(20) COMMENT '文件类型',
`ATTRIBUTE1` VARCHAR(50) COMMENT '扩展属性1', `ATTRIBUTE1` VARCHAR(50) COMMENT '扩展属性1',
`ATTRIBUTE2` VARCHAR(50) COMMENT '扩展属性2', `ATTRIBUTE2` VARCHAR(50) COMMENT '扩展属性2',
`LOCATION` VARCHAR(500) COMMENT '存放地址', `LOCATION` VARCHAR(500) COMMENT '存放地址',
@ -59,9 +59,57 @@ CREATE TABLE `SYS_FILE` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件';
-- ----------------------------
-- Table structure for RESOURCE - 资源
-- Target : MySQL
-- Author : author
-- Date: : 2019-12-19
-- ----------------------------
CREATE TABLE `SYS_RESOURCE` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`VALUE` VARCHAR(100) NOT NULL COMMENT '资源内容',
`COMMENT` VARCHAR(250) COMMENT '资源描述',
`RESOURCE_TYPE` VARCHAR(20) NOT NULL COMMENT '资源类型',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资源';
-- ----------------------------
-- Table structure for TOKENS - 通行证
-- Target : MySQL
-- Author : author
-- Date: : 2019-12-19
-- ----------------------------
CREATE TABLE `SYS_TOKENS` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`USER_ID` BIGINT(20) NOT NULL COMMENT '用户主键',
`USER_NAME` VARCHAR(50) NOT NULL COMMENT '用户名称',
`LOGIN_TIME` DATETIME NOT NULL COMMENT '登录时间',
`VALID_TIME` DATETIME NOT NULL COMMENT '有效时间',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`DEPT_ID` BIGINT(20) COMMENT '部门主键',
`DEPT_CODE` VARCHAR(50) COMMENT '部门代码',
`DEPT_NAME` VARCHAR(100) COMMENT '部门名称',
`TERMINAL_TYPE` VARCHAR(20) COMMENT '终端类型',
`TERMINAL_IP` VARCHAR(50) COMMENT '终端地址',
`TERMINAL_INFO` VARCHAR(100) COMMENT '终端信息',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通行证';

@ -73,7 +73,7 @@ COMMENT ON COLUMN "SYS_DICT_ITEM"."LAST_UPDATE_TIME" is '最后更新时间';
CREATE TABLE "SYS_FILE" ( CREATE TABLE "SYS_FILE" (
"ID" NUMBER(19) NOT NULL, "ID" NUMBER(19) NOT NULL,
"NAME" VARCHAR2(250) NULL, "NAME" VARCHAR2(250) NULL,
"FILE_TYPE" VARCHAR(10) NULL, "FILE_TYPE" VARCHAR(20) NULL,
"ATTRIBUTE1" VARCHAR2(50) NULL, "ATTRIBUTE1" VARCHAR2(50) NULL,
"ATTRIBUTE2" VARCHAR2(50) NULL, "ATTRIBUTE2" VARCHAR2(50) NULL,
"LOCATION" VARCHAR2(500) NULL, "LOCATION" VARCHAR2(500) NULL,

@ -7,7 +7,7 @@
CREATE TABLE IF NOT EXISTS SYS_FILE ( CREATE TABLE IF NOT EXISTS SYS_FILE (
"ID" BIGINT PRIMARY KEY NOT NULL, "ID" BIGINT PRIMARY KEY NOT NULL,
"NAME" VARCHAR(250), "NAME" VARCHAR(250),
"FILE_TYPE" VARCHAR(10), "FILE_TYPE" VARCHAR(20),
"ATTRIBUTE1" VARCHAR(50), "ATTRIBUTE1" VARCHAR(50),
"ATTRIBUTE2" VARCHAR(50), "ATTRIBUTE2" VARCHAR(50),
"LOCATION" VARCHAR(500), "LOCATION" VARCHAR(500),

@ -14,8 +14,8 @@ CREATE TABLE `SYS_DICT_ITEM` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典项'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典项';

@ -13,8 +13,8 @@ CREATE TABLE `SYS_DICT` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典';

@ -7,7 +7,7 @@
CREATE TABLE `SYS_FILE` ( CREATE TABLE `SYS_FILE` (
`ID` BIGINT(20) NOT NULL COMMENT '主键', `ID` BIGINT(20) NOT NULL COMMENT '主键',
`NAME` VARCHAR(250) COMMENT '文件名称', `NAME` VARCHAR(250) COMMENT '文件名称',
`FILE_TYPE` VARCHAR(10) COMMENT '文件类型', `FILE_TYPE` VARCHAR(20) COMMENT '文件类型',
`ATTRIBUTE1` VARCHAR(50) COMMENT '扩展属性1', `ATTRIBUTE1` VARCHAR(50) COMMENT '扩展属性1',
`ATTRIBUTE2` VARCHAR(50) COMMENT '扩展属性2', `ATTRIBUTE2` VARCHAR(50) COMMENT '扩展属性2',
`LOCATION` VARCHAR(500) COMMENT '存放地址', `LOCATION` VARCHAR(500) COMMENT '存放地址',
@ -16,8 +16,8 @@ CREATE TABLE `SYS_FILE` (
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本', `ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除', `IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户', `CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` INTEGER NOT NULL COMMENT '创建时间', `CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户', `LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` INTEGER DEFAULT NULL COMMENT '最后更新时间', `LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件';

@ -7,7 +7,7 @@
CREATE TABLE "SYS_FILE" ( CREATE TABLE "SYS_FILE" (
"ID" NUMBER(19) NOT NULL, "ID" NUMBER(19) NOT NULL,
"NAME" VARCHAR2(250) NULL, "NAME" VARCHAR2(250) NULL,
"FILE_TYPE" VARCHAR(10) NULL, "FILE_TYPE" VARCHAR(20) NULL,
"ATTRIBUTE1" VARCHAR2(50) NULL, "ATTRIBUTE1" VARCHAR2(50) NULL,
"ATTRIBUTE2" VARCHAR2(50) NULL, "ATTRIBUTE2" VARCHAR2(50) NULL,
"LOCATION" VARCHAR2(500) NULL, "LOCATION" VARCHAR2(500) NULL,

@ -7,7 +7,7 @@
CREATE TABLE IF NOT EXISTS SYS_FILE ( CREATE TABLE IF NOT EXISTS SYS_FILE (
"ID" BIGINT PRIMARY KEY NOT NULL, "ID" BIGINT PRIMARY KEY NOT NULL,
"NAME" VARCHAR(250), "NAME" VARCHAR(250),
"FILE_TYPE" VARCHAR(10), "FILE_TYPE" VARCHAR(20),
"ATTRIBUTE1" VARCHAR(50), "ATTRIBUTE1" VARCHAR(50),
"ATTRIBUTE2" VARCHAR(50), "ATTRIBUTE2" VARCHAR(50),
"LOCATION" VARCHAR(500), "LOCATION" VARCHAR(500),

@ -0,0 +1,20 @@
-- ----------------------------
-- Table structure for RESOURCE - 资源
-- Target : MySQL
-- Author : author
-- Date: : 2019-12-19
-- ----------------------------
CREATE TABLE `SYS_RESOURCE` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`VALUE` VARCHAR(100) NOT NULL COMMENT '资源内容',
`COMMENT` VARCHAR(250) COMMENT '资源描述',
`RESOURCE_TYPE` VARCHAR(20) NOT NULL COMMENT '资源类型',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资源';

@ -0,0 +1,27 @@
-- ----------------------------
-- Table structure for TOKENS - 通行证
-- Target : MySQL
-- Author : author
-- Date: : 2019-12-19
-- ----------------------------
CREATE TABLE `SYS_TOKENS` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`USER_ID` BIGINT(20) NOT NULL COMMENT '用户主键',
`USER_NAME` VARCHAR(50) NOT NULL COMMENT '用户名称',
`LOGIN_TIME` DATETIME NOT NULL COMMENT '登录时间',
`VALID_TIME` DATETIME NOT NULL COMMENT '有效时间',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`DEPT_ID` BIGINT(20) COMMENT '部门主键',
`DEPT_CODE` VARCHAR(50) COMMENT '部门代码',
`DEPT_NAME` VARCHAR(100) COMMENT '部门名称',
`TERMINAL_TYPE` VARCHAR(20) COMMENT '终端类型',
`TERMINAL_IP` VARCHAR(50) COMMENT '终端地址',
`TERMINAL_INFO` VARCHAR(100) COMMENT '终端信息',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`CREATE_BY` BIGINT(20) NOT NULL COMMENT '创建用户',
`CREATE_TIME` DATETIME NOT NULL COMMENT '创建时间',
`LAST_UPDATE_BY` BIGINT(20) DEFAULT NULL COMMENT '最后更新用户',
`LAST_UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通行证';

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project> <project>
<projectName>EXAMPLE-WEB</projectName> <projectName>wadmin</projectName>
<projectBasePackage>com.example</projectBasePackage> <projectBasePackage>com.example</projectBasePackage>
<projectAuthor>author</projectAuthor> <projectAuthor>author</projectAuthor>
<multiDB>false</multiDB> <multiDB>false</multiDB>
@ -8,7 +8,7 @@
<module> <module>
<moduleComment>系统</moduleComment> <moduleComment>系统</moduleComment>
<modulePrefix>SYS_</modulePrefix> <modulePrefix>SYS_</modulePrefix>
<moduleName>system</moduleName> <moduleName>system_</moduleName>
<hasSysFields>true</hasSysFields> <hasSysFields>true</hasSysFields>
<tables> <tables>
<table create="true" delete="true" find="true" get="true" html="true" search="false" sys="true" tableComment="用户" tableName="USER" update="true"> <table create="true" delete="true" find="true" get="true" html="true" search="false" sys="true" tableComment="用户" tableName="USER" update="true">
@ -18,7 +18,7 @@
<field IsSystem="false" defaultValue="NULL" fieldComment="用户代码" fieldLength="50" fieldName="USER_CODE" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户代码" fieldLength="50" fieldName="USER_CODE" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="用户别名" fieldLength="50" fieldName="USER_ALIAS" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户别名" fieldLength="50" fieldName="USER_ALIAS" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="用户密码" fieldLength="50" fieldName="USER_PWD" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户密码" fieldLength="50" fieldName="USER_PWD" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="用户状态" fieldLength="0" fieldName="USER_STATUS" fieldType="Dict" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户状态" fieldLength="20" fieldName="USER_STATUS" fieldType="Dict" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门主键" fieldLength="0" fieldName="DEPT_ID" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门主键" fieldLength="0" fieldName="DEPT_ID" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门代码" fieldLength="50" fieldName="DEPT_CODE" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门代码" fieldLength="50" fieldName="DEPT_CODE" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门名称" fieldLength="100" fieldName="DEPT_NAME" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门名称" fieldLength="100" fieldName="DEPT_NAME" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
@ -52,6 +52,7 @@
<field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="角色名称" fieldLength="50" fieldName="ROLE_NAME" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="角色名称" fieldLength="50" fieldName="ROLE_NAME" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="角色代码" fieldLength="50" fieldName="ROLE_CODE" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="角色代码" fieldLength="50" fieldName="ROLE_CODE" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="角色描述" fieldLength="50" fieldName="ROLE_COMMENT" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
@ -77,8 +78,8 @@
<fields> <fields>
<field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="资源内容" fieldLength="100" fieldName="VALUE" fieldType="String_var100" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="资源内容" fieldLength="100" fieldName="VALUE" fieldType="String_var100" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="资源描述" fieldLength="255" fieldName="DESCRIPTION" fieldType="String_var255" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="资源描述" fieldLength="255" fieldName="COMMENT" fieldType="String_var255" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="资源类型" fieldLength="0" fieldName="RESOURCE_TYPE" fieldType="Dict" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="资源类型" fieldLength="20" fieldName="RESOURCE_TYPE" fieldType="Dict" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
@ -107,12 +108,12 @@
<field IsSystem="false" defaultValue="NULL" fieldComment="用户主键" fieldLength="0" fieldName="USER_ID" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户主键" fieldLength="0" fieldName="USER_ID" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="用户名称" fieldLength="50" fieldName="USER_NAME" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="用户名称" fieldLength="50" fieldName="USER_NAME" fieldType="String_var50" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="登录时间" fieldLength="0" fieldName="LOGIN_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="登录时间" fieldLength="0" fieldName="LOGIN_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="有效时间" fieldLength="0" fieldName="EFFECTIVE_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="有效时间" fieldLength="0" fieldName="VALID_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门主键" fieldLength="0" fieldName="DEPT_ID" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门主键" fieldLength="0" fieldName="DEPT_ID" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门代码" fieldLength="50" fieldName="DEPT_CODE" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门代码" fieldLength="50" fieldName="DEPT_CODE" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="部门名称" fieldLength="100" fieldName="DEPT_NAME" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="部门名称" fieldLength="100" fieldName="DEPT_NAME" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="终端类型" fieldLength="0" fieldName="TERMINAL_TYPE" fieldType="Dict" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="终端类型" fieldLength="20" fieldName="TERMINAL_TYPE" fieldType="Dict" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="终端地址" fieldLength="50" fieldName="TERMINAL_IP" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="终端地址" fieldLength="50" fieldName="TERMINAL_IP" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="终端信息" fieldLength="100" fieldName="TERMINAL_INFO" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/> <field IsSystem="false" defaultValue="NULL" fieldComment="终端信息" fieldLength="100" fieldName="TERMINAL_INFO" fieldType="String_var100" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
@ -123,6 +124,55 @@
<field IsSystem="true" defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/> <field IsSystem="true" defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
</fields> </fields>
</table> </table>
<table create="true" delete="true" find="true" get="true" html="true" search="false" sys="true" tableComment="字典" tableName="DICT" update="true">
<fields>
<field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典名称" fieldLength="50" fieldName="DICT_NAME" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典描述" fieldLength="50" fieldName="DICT_COMMENT" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典版本" fieldLength="50" fieldName="VERSION" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="NULL" fieldComment="创建时间" fieldLength="0" fieldName="CREATE_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
</fields>
</table>
<table create="true" delete="true" find="true" get="true" html="true" search="false" sys="true" tableComment="字典项" tableName="DICT_ITEM" update="true">
<fields>
<field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典名称" fieldLength="50" fieldName="DICT_NAME" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典键" fieldLength="20" fieldName="KEY" fieldType="String_var" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="字典值" fieldLength="50" fieldName="VALUE" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="排序" fieldLength="0" fieldName="SORT" fieldType="Integer" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="是否有效" fieldLength="0" fieldName="VALID" fieldType="Boolean" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="NULL" fieldComment="创建时间" fieldLength="0" fieldName="CREATE_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
</fields>
</table>
<table create="true" delete="true" find="true" get="true" html="true" search="false" sys="true" tableComment="文件" tableName="FILE" update="true">
<fields>
<field IsSystem="true" defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="文件名称" fieldLength="255" fieldName="NAME" fieldType="String_var255" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="文件类型" fieldLength="20" fieldName="FILE_TYPE" fieldType="Dict" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="扩展属性1" fieldLength="50" fieldName="ATTRIBUTE1" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="扩展属性2" fieldLength="50" fieldName="ATTRIBUTE2" fieldType="String_var50" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="存放地址" fieldLength="500" fieldName="LOCATION" fieldType="String_var500" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="访问地址" fieldLength="500" fieldName="URL" fieldType="String_var500" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="false" defaultValue="NULL" fieldComment="下载地址" fieldLength="500" fieldName="URL_DOWNLOAD" fieldType="String_var500" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="NULL" fieldComment="创建时间" fieldLength="0" fieldName="CREATE_TIME" fieldType="Date" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
<field IsSystem="true" defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false"/>
</fields>
</table>
</tables> </tables>
</module> </module>
</modules> </modules>

@ -18,6 +18,8 @@
</template> </template>
<el-menu-item index="${tool.uuid()}" @click="addTab({title: '字典管理', name: 'dict', url: '${r'${context}'}/system/dict.htm'})">字典管理</el-menu-item> <el-menu-item index="${tool.uuid()}" @click="addTab({title: '字典管理', name: 'dict', url: '${r'${context}'}/system/dict.htm'})">字典管理</el-menu-item>
<el-menu-item index="${tool.uuid()}" @click="addTab({title: '文件管理', name: 'file', url: '${r'${context}'}/system/file.htm'})">文件管理</el-menu-item> <el-menu-item index="${tool.uuid()}" @click="addTab({title: '文件管理', name: 'file', url: '${r'${context}'}/system/file.htm'})">文件管理</el-menu-item>
<el-menu-item index="${tool.uuid()}" @click="addTab({title: '资源管理', name: 'resource', url: '${r'${context}'}/system/resource.htm'})">资源管理</el-menu-item>
<el-menu-item index="${tool.uuid()}" @click="addTab({title: '登录管理', name: 'tokens', url: '${r'${context}'}/system/tokens.htm'})">登录管理</el-menu-item>
</el-submenu> </el-submenu>
<#list modules as item> <#list modules as item>
<#if item.hasHtml()> <#if item.hasHtml()>

@ -185,11 +185,11 @@
}, },
formRules: { formRules: {
key: [ key: [
{required: true, message: '请输入字典名称', trigger: 'blur'}, {required: true, message: '请输入字典', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 3 到 5 个字符', trigger: 'blur'} {min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur'}
], ],
value: [ value: [
{required: true, message: '请输入字典代码', trigger: 'blur'}, {required: true, message: '请输入字典', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'} {min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
], ],
sort: [ sort: [

@ -0,0 +1,238 @@
<div id="app" v-cloak>
<el-card class="box-card search">
<el-form :inline="true" :model="vm" ref="vm" label-position="left" label-width="90px">
<el-form-item label="资源内容" prop="value">
<el-input v-model="vm.value" clearable size="small" placeholder="请输入资源内容"></el-input>
</el-form-item>
<el-form-item label="资源描述" prop="comment">
<el-input v-model="vm.comment" clearable size="small" placeholder="请输入资源描述"></el-input>
</el-form-item>
<el-form-item label="资源类型" prop="resourceType">
<el-input-dict v-model="vm.resourceType" clearable size="small" placeholder="请输入资源类型" dict-name="RESOURCE_TYPE" ></el-input-dict>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-radio-group v-model="vm.valid" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="onSearch">搜索</el-button>
<el-button type="warning" size="small" icon="el-icon-refresh-left" @click="onReset('vm')">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="box-card">
<el-row>
<el-col :span="12">
<el-button type="success" size="small" icon="el-icon-plus" @click="onCreate">新增</el-button>
<el-button type="warning" size="small" icon="el-icon-download" @click="onExport">导出</el-button>
<el-dialog class="form" :title="form.title" :visible.sync="form.dialog">
<el-form :model="form" :inline="true" :rules="formRules" ref="form" label-position="left" label-width="90px">
<el-form-item label="资源内容" prop="value">
<el-input v-model="form.value" clearable size="small" placeholder="请输入资源内容"></el-input>
</el-form-item>
<el-form-item label="资源描述" prop="comment">
<el-input v-model="form.comment" clearable size="small" placeholder="请输入资源描述"></el-input>
</el-form-item>
<el-form-item label="资源类型" prop="resourceType">
<el-input-dict v-model="form.resourceType" clearable size="small" placeholder="请输入资源类型" dict-name="RESOURCE_TYPE" ></el-input-dict>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-radio-group v-model="form.valid" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="form.dialog = false">取 消</el-button>
<el-button size="small" type="primary" @click="onSave">保存</el-button>
</span>
</el-dialog>
</el-col>
<el-col :span="12">
<el-button-group style="float: right;">
<el-tooltip effect="dark" content="Excel模板下载" placement="bottom">
<el-button size="small" icon="el-icon-date" @click="onTemplate"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="Excel导入" placement="bottom">
<el-button size="small" icon="el-icon-upload2" @click="onImport"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="批量删除" placement="bottom">
<el-button size="small" icon="el-icon-delete" @click="onBitchDelete"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="刷新" placement="bottom">
<el-button size="small" icon="el-icon-refresh" @click="onFind"></el-button>
</el-tooltip>
</el-button-group>
</el-col>
</el-row>
<el-table
style="margin-top: 10px"
@selection-change="onSelectionChange"
empty-text="无数据"
:data="result"
size="mini"
style="width: 100%">
<el-table-column
align="center"
type="selection"
width="40">
</el-table-column>
<el-table-column
align="center"
prop="id"
label="主键"
width="140">
</el-table-column>
<el-table-column
align="center"
prop="valid"
label="是否有效">
<template slot-scope="scope">
<el-tag size="mini" v-if="scope.row.valid">有效</el-tag>
<el-tag size="mini" type="danger" v-if="!scope.row.valid">无效</el-tag>
</template>
</el-table-column>
<el-table-column
align="center"
prop="value"
label="资源内容">
</el-table-column>
<el-table-column
align="center"
prop="comment"
label="资源描述">
</el-table-column>
<el-table-column
align="center"
prop="resourceType"
label="资源类型">
</el-table-column>
<el-table-column
align="center"
prop="createTime"
width="140"
label="创建时间">
</el-table-column>
<el-table-column
align="center"
fixed="right"
width="120"
label="操作">
<template slot-scope="scope">
<el-dropdown size="mini" split-button type="primary" @click="onCommand(['edit',scope.row])"
@command="onCommand">
<i class="el-icon-edit"></i>编辑
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="['delete',scope.row]" icon="el-icon-delete">删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-pagination
background
v-if="vm.totalCount > vm.pageSize"
style="margin-top: 10px"
@current-change="onPage"
:current-page="vm.pageNumber"
:page-size="vm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="vm.totalCount">
</el-pagination>
</el-card>
</div>
<script>
var app = new Vue({
mixins: [mixin],
el: "#app",
data: {
module: 'system',
target: 'resource',
vm: {//条件及分页参数
value: "",
comment: "",
resourceType: "",
valid: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
sortKey:'CREATE_TIME',
sortType:'DESC'
},
form: {//待提交表单
title: "",
dialog: false,
id: '',
value: "",
comment: "",
resourceType: "",
valid: "",
rowVersion: ""
},
formRules: {
value: [
{required: true, message: '资源内容不能为空', trigger: 'blur'},
{min: 1, max: 100, message: '资源内容长度在 1 到 100 个字符', trigger: 'blur'}
],
comment: [
{min: 1, max: 255, message: '资源描述长度在 1 到 255 个字符', trigger: 'blur'}
],
resourceType: [
{required: true, message: '资源类型不能为空', trigger: 'blur'},
],
valid: [
{required: true, message: '是否有效不能为空', trigger: 'blur'},
],
}
},
methods: {
onCreate: function () {
this.form.title = "资源新增";
this.form.dialog = true;
this.form.id = "";
this.form.value = "";
this.form.comment = "";
this.form.resourceType = "";
this.form.valid = true;
},
onCommand: function (arg) {
const cmd = arg[0];
const item = arg[1];
switch (cmd) {
case "edit":
this.form.title = "资源编辑";
this.form.dialog = true;
this.form.id = item.id;
this.form.value = item.value;
this.form.comment = item.comment;
this.form.resourceType = item.resourceType;
this.form.valid = item.valid;
this.form.rowVersion = item.rowVersion;
break;
case "delete":
this.onDelete(item);
break;
default:
this.w("未找到对应的命令");
break;
}
},
},
mounted: function () {
this.onFind();
},
})
</script>

@ -0,0 +1,368 @@
<div id="app" v-cloak>
<el-card class="box-card search">
<el-form :inline="true" :model="vm" ref="vm" label-position="left" label-width="90px">
<el-form-item label="用户主键" prop="userId">
<el-input v-model="vm.userId" clearable size="small" placeholder="请输入用户主键"></el-input>
</el-form-item>
<el-form-item label="用户名称" prop="userName">
<el-input v-model="vm.userName" clearable size="small" placeholder="请输入用户名称"></el-input>
</el-form-item>
<el-form-item label="登录时间" prop="loginTime">
<el-date-picker
size="small"
v-model="vm.loginTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-radio-group v-model="vm.valid" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
<el-input v-model="vm.deptName" clearable size="small" placeholder="请输入部门名称"></el-input>
</el-form-item>
<el-form-item label="终端类型" prop="terminalType">
<el-input-dict v-model="vm.terminalType" clearable size="small" placeholder="请输入终端类型" dict-name="TERMINAL_TYPE" ></el-input-dict>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="onSearch">搜索</el-button>
<el-button type="warning" size="small" icon="el-icon-refresh-left" @click="onReset('vm')">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="box-card">
<el-row>
<el-col :span="12">
<el-button type="success" size="small" icon="el-icon-plus" @click="onCreate">新增</el-button>
<el-button type="warning" size="small" icon="el-icon-download" @click="onExport">导出</el-button>
<el-dialog class="form" :title="form.title" :visible.sync="form.dialog">
<el-form :model="form" :inline="true" :rules="formRules" ref="form" label-position="left" label-width="90px">
<el-form-item label="用户主键" prop="userId">
<el-input-number v-model="form.userId" clearable size="small" placeholder="请输入用户主键" :step="1" step-strictly></el-input-number>
</el-form-item>
<el-form-item label="用户名称" prop="userName">
<el-input v-model="form.userName" clearable size="small" placeholder="请输入用户名称"></el-input>
</el-form-item>
<el-form-item label="登录时间" prop="loginTime">
<el-date-picker
size="small"
v-model="form.loginTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有效时间" prop="validTime">
<el-date-picker
size="small"
v-model="form.validTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-radio-group v-model="form.valid" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="部门主键" prop="deptId">
<el-input-number v-model="form.deptId" clearable size="small" placeholder="请输入部门主键" :step="1" step-strictly></el-input-number>
</el-form-item>
<el-form-item label="部门代码" prop="deptCode">
<el-input v-model="form.deptCode" clearable size="small" placeholder="请输入部门代码"></el-input>
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
<el-input v-model="form.deptName" clearable size="small" placeholder="请输入部门名称"></el-input>
</el-form-item>
<el-form-item label="终端类型" prop="terminalType">
<el-input-dict v-model="form.terminalType" clearable size="small" placeholder="请输入终端类型" dict-name="TERMINAL_TYPE" ></el-input-dict>
</el-form-item>
<el-form-item label="终端地址" prop="terminalIp">
<el-input v-model="form.terminalIp" clearable size="small" placeholder="请输入终端地址"></el-input>
</el-form-item>
<el-form-item label="终端信息" prop="terminalInfo">
<el-input v-model="form.terminalInfo" clearable size="small" placeholder="请输入终端信息"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="form.dialog = false">取 消</el-button>
<el-button size="small" type="primary" @click="onSave">保存</el-button>
</span>
</el-dialog>
</el-col>
<el-col :span="12">
<el-button-group style="float: right;">
<el-tooltip effect="dark" content="Excel模板下载" placement="bottom">
<el-button size="small" icon="el-icon-date" @click="onTemplate"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="Excel导入" placement="bottom">
<el-button size="small" icon="el-icon-upload2" @click="onImport"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="批量删除" placement="bottom">
<el-button size="small" icon="el-icon-delete" @click="onBitchDelete"></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="刷新" placement="bottom">
<el-button size="small" icon="el-icon-refresh" @click="onFind"></el-button>
</el-tooltip>
</el-button-group>
</el-col>
</el-row>
<el-table
style="margin-top: 10px"
@selection-change="onSelectionChange"
empty-text="无数据"
:data="result"
size="mini"
style="width: 100%">
<el-table-column
align="center"
type="selection"
width="40">
</el-table-column>
<el-table-column
align="center"
prop="id"
label="主键"
width="140">
</el-table-column>
<el-table-column
align="center"
prop="valid"
label="是否有效">
<template slot-scope="scope">
<el-tag size="mini" v-if="scope.row.valid">有效</el-tag>
<el-tag size="mini" type="danger" v-if="!scope.row.valid">无效</el-tag>
</template>
</el-table-column>
<el-table-column
align="center"
prop="userId"
label="用户主键">
</el-table-column>
<el-table-column
align="center"
prop="userName"
label="用户名称">
</el-table-column>
<el-table-column
align="center"
prop="loginTime"
label="登录时间">
</el-table-column>
<el-table-column
align="center"
prop="validTime"
label="有效时间">
</el-table-column>
<el-table-column
align="center"
prop="deptId"
label="部门主键">
</el-table-column>
<el-table-column
align="center"
prop="deptCode"
label="部门代码">
</el-table-column>
<el-table-column
align="center"
prop="deptName"
label="部门名称">
</el-table-column>
<el-table-column
align="center"
prop="terminalType"
label="终端类型">
</el-table-column>
<el-table-column
align="center"
prop="terminalIp"
label="终端地址">
</el-table-column>
<el-table-column
align="center"
prop="terminalInfo"
label="终端信息">
</el-table-column>
<el-table-column
align="center"
prop="createTime"
width="140"
label="创建时间">
</el-table-column>
<el-table-column
align="center"
fixed="right"
width="120"
label="操作">
<template slot-scope="scope">
<el-dropdown size="mini" split-button type="primary" @click="onCommand(['edit',scope.row])"
@command="onCommand">
<i class="el-icon-edit"></i>编辑
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="['delete',scope.row]" icon="el-icon-delete">删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-pagination
background
v-if="vm.totalCount > vm.pageSize"
style="margin-top: 10px"
@current-change="onPage"
:current-page="vm.pageNumber"
:page-size="vm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="vm.totalCount">
</el-pagination>
</el-card>
</div>
<script>
var app = new Vue({
mixins: [mixin],
el: "#app",
data: {
module: 'system',
target: 'tokens',
vm: {//条件及分页参数
userId: "",
userName: "",
loginTime: "",
validTime: "",
valid: "",
deptId: "",
deptCode: "",
deptName: "",
terminalType: "",
terminalIp: "",
terminalInfo: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
sortKey:'CREATE_TIME',
sortType:'DESC'
},
form: {//待提交表单
title: "",
dialog: false,
id: '',
userId: "",
userName: "",
loginTime: "",
validTime: "",
valid: "",
deptId: "",
deptCode: "",
deptName: "",
terminalType: "",
terminalIp: "",
terminalInfo: "",
rowVersion: ""
},
formRules: {
userId: [
{required: true, message: '用户主键不能为空', trigger: 'blur'},
],
userName: [
{required: true, message: '用户名称不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '用户名称长度在 1 到 50 个字符', trigger: 'blur'}
],
loginTime: [
{required: true, message: '登录时间不能为空', trigger: 'blur'},
],
validTime: [
{required: true, message: '有效时间不能为空', trigger: 'blur'},
],
valid: [
{required: true, message: '是否有效不能为空', trigger: 'blur'},
],
deptId: [
],
deptCode: [
{min: 1, max: 50, message: '部门代码长度在 1 到 50 个字符', trigger: 'blur'}
],
deptName: [
{min: 1, max: 100, message: '部门名称长度在 1 到 100 个字符', trigger: 'blur'}
],
terminalType: [
],
terminalIp: [
{min: 1, max: 50, message: '终端地址长度在 1 到 50 个字符', trigger: 'blur'}
],
terminalInfo: [
{min: 1, max: 100, message: '终端信息长度在 1 到 100 个字符', trigger: 'blur'}
],
}
},
methods: {
onCreate: function () {
this.form.title = "通行证新增";
this.form.dialog = true;
this.form.id = "";
this.form.userId = "";
this.form.userName = "";
this.form.loginTime = "";
this.form.validTime = "";
this.form.valid = "";
this.form.deptId = "";
this.form.deptCode = "";
this.form.deptName = "";
this.form.terminalType = "";
this.form.terminalIp = "";
this.form.terminalInfo = "";
},
onCommand: function (arg) {
const cmd = arg[0];
const item = arg[1];
switch (cmd) {
case "edit":
this.form.title = "通行证编辑";
this.form.dialog = true;
this.form.id = item.id;
this.form.userId = item.userId;
this.form.userName = item.userName;
this.form.loginTime = item.loginTime;
this.form.validTime = item.validTime;
this.form.valid = item.valid;
this.form.deptId = item.deptId;
this.form.deptCode = item.deptCode;
this.form.deptName = item.deptName;
this.form.terminalType = item.terminalType;
this.form.terminalIp = item.terminalIp;
this.form.terminalInfo = item.terminalInfo;
this.form.rowVersion = item.rowVersion;
break;
case "delete":
this.onDelete(item);
break;
default:
this.w("未找到对应的命令");
break;
}
},
},
mounted: function () {
this.onFind();
},
})
</script>

@ -37,7 +37,7 @@ spring.datasource.two.password=two_pwd
spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver spring.datasource.main.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.main.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.main.username=test spring.datasource.main.username=test
spring.datasource.main.password=123456# mybatis spring.datasource.main.password=123456
# 副数据库 # 副数据库
spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver
@ -72,7 +72,7 @@ spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=test spring.datasource.username=test
spring.datasource.password=123456# mybatis spring.datasource.password=123456
</#if> </#if>
<#if dataBase == 'SQLite'> <#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db # SQLite spring.datasource.url=jdbc:sqlite::resource:example.db

Loading…
Cancel
Save

Powered by TurnKey Linux.